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

2024-06-02 08:46:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个更新/更改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条回答
网友
1楼 · 发布于 2024-06-02 08:46:39

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

相关问题 更多 >