为什么即使满足条件,循环也不会执行?

时间:2020-09-06 09:38:16

标签: python list loops csv file

我正在开发一个程序,用于更新/更改CSV文件夹中的元素。它首先按列表读取CSV文件列表,并检查序列号是否与用户提供的序列号匹配。如果是这样,它将要求用户更改下一个元素。

但是在我的程序中,即使满足条件,第一个IF循环也没有运行。我尝试输入的序列号已出现在列表中,但仍然无法执行。请调查这个问题。

这是我的代码。

def update():
    f=open("daily.csv",'r')
    r=csv.reader(f)
    sno=int(input("WHICH RECORD DO YOU WANT TO UPDATE? (ENTER THE SERIAL NO.)"))
    next(r)
    for i in r:
        if i[0]==sno:
            ch=int(input("1.CHANGE CATEGORY (PRESS 1)2.CHANGE AMOUNT (PRESS 2)3.CHANGE DATE (PRESS 3)"))
            if ch==1:
                nc=input("PLEASE ENTER NEW CATEGORY")
                i[1]=nc
                print(i)
            elif ch==2:
                na=int(input("PLEASE ENTER THE NEW AMOUNT"))
                i[2]=na
                print(i)
            elif ch==3:
                nd=int(input("PLEASE ENTER THE NEW DATE"))
                i[3]=nd
                print(i)
        else:
            print("INVALID SERIAL NO")
    f.close()

1 个答案:

答案 0 :(得分:0)

我认为问题在于文件中的值被读取为字符串。尝试先将s [0]转换为int然后进行比较。另外,如果您使用的是像pycharm这样的IDE,请使用内置调试器查看这些值以及它们为何失败。 问题也可能与您尝试访问的索引“ s”有关。如果没有调试器,请尝试打印值和值的类型,因为这可能有助于调试过程。