0
我需要比较2个值:列表中的第一个变量和用户的输入。用户的输入已经是一个整数,但代码不会让我将另一个值转换为整数形式。为什么我无法将此数字设置为整数?
我试过“int”,“float”和“complex”只是为了看,但没有成功。
这里是我的代码:
Stock = open("stock.txt","r")
Next = False
print("Products avaliable are: ")
for loop in range (10):
StockProduct = Stock.readline()
product = StockProduct.split("\t")
print(product[0] , product[1])
while Next != True:
USERproduct = int(input("Which product did you buy? "))
Amount = int(input("How many did you buy? "))
for loop in range (10):
StockProduct = Stock.readline()
product = StockProduct.split("\t")
productONE = product[0]
if USERproduct == int(productONE) :
USER2 == product
print(USER2)
Next = True
else:
USERproduct = int(input(" 2 Which product did you buy? "))
# Amount = int(input("2 How many did you buy? "))
,输出是:
Traceback (most recent call last):
File "C:\Users\User\Documents\Task 3.py", line 20, in <module>
if USERproduct == int(productONE) :
ValueError: invalid literal for int() with base 10: ''
>>>
这是在学校控制的评估。
您有一行以制表符开头的行。当您在制表符分隔符上分割该行时,第一个元素是一个空字符串,它不是数字。 – TigerhawkT3
就在坏行之前,添加'print(product)'。在发生程序崩溃之前,您可能会获得几张不错的照片。但看看坏的第一个元素,然后看看输入文本中的哪一行是坏的。您可以尝试检测坏行 - 但如果您的程序需要严格有效的输入,则在此处崩溃也是合法的。例如,Python不会尝试修复输入的坏行,它会引发语法错误。 – tdelaney
你的输入文件有多大? readline()在到达文件末尾时返回一个空字符串。而分割一个空字符串最后是'['']',这看起来很像你的错误。 – tdelaney