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