没有达到部分代码

时间:2016-06-08 18:19:00

标签: python

我的下面的代码没有达到预期的目的。

print("Welcome to the Stockroom\n")    
print("The following products need new stock:\n")
f = open("lowstock","r")
print(f.read())
choice = input("\nTo update the stock levels of the above products, type 1. To cancel, enter anything else.")
if choice == '1':
    with open('stockcontrol.csv',newline='') as f:
        for line in f:
            data = line.split(",")
            productcode = int(data[0])
            target = int(data[2])
            stocklevel = int(data[1])
            if stocklevel <= 5:
                target = str(target)
                import sys
                import csv
                data=[]
               # code = code
                newval= target
                newtlevel = "0"
                f=open("stockcontrol.csv")
                reader=csv.DictReader(f,fieldnames=['code','level', 'target', 'distancefromtarget'])
                for line in reader:
                    line['level']= newval
                    line['distancefromtarget']= newtlevel
                    data.append('%s,%s,%s,%s'%(line['code'],line['level'],line['target'],line['distancefromtarget']))
                    f.close()
                    f=open("stockcontrol.csv","w")
                    f.write("\n".join(data))
                    f.close()
                    print("The stock levels were updated successfully")
else:
    print("Goodbye")

如果在选择输入上输入1,程序就会终止 - 任何想法为什么它不替换csv等中的字符串?什么阻止它到达这个阶段?

1 个答案:

答案 0 :(得分:1)

在Python 3中,input函数始终返回一个字符串。因此,如果用户输入1,则choice将为"1",而不是您正在测试的整数1

由于我不明白的原因,您似乎编辑了问题以改变错误的方向。您要么int(input()),要么需要针对"1"进行测试。 (可能还有其他一些问题,但这是目前出现的代码中的主要问题。)