1 回答

TA貢獻(xiàn)1794條經(jīng)驗 獲得超8個贊
您將i變量檢查為字符串 ( if i == '':),但它在前一行 ( i = int(input(prompt))) 中被強(qiáng)制轉(zhuǎn)換為整數(shù)。您應(yīng)該檢查列表的長度而不是這一行:elif i != total_order[i]:。由于這個問題,您的腳本無法正常工作。我寫了一個工作代碼,我已經(jīng)測試了它。請參閱下面我的代碼/測試。
此外,您的貨車會改進(jìn)您的代碼(例如:檢查輸入是否可以轉(zhuǎn)換為整數(shù)。)。
代碼:
def check_valid(prompt):
while True:
try:
i = input(prompt)
if not i:
print("You must enter a value for the doughnut item you would like to change.")
print()
elif int(i) > len(total_order)-1:
print("Invalid")
else:
break
except:
break
return int(i)
total_order = [['Cream', 6, 18], ['Cookies', 5, 20], ['Jam', 6, 16]]
for i in range(len(total_order)):
print("{} {} {} Doughnuts = ${:.2f}".format(i, total_order[i][1], total_order[i][0],
total_order[i][2]))
doughnuts_gone = check_valid(
"Enter the number associated with the doughnut order you would like to remove? ")
print("Valid value! Selected one: {}".format(total_order[doughnuts_gone]))
輸出:
>>> python3 test.py
0 6 Cream Doughnuts = $18.00
1 5 Cookies Doughnuts = $20.00
2 6 Jam Doughnuts = $16.00
Enter the number associated with the doughnut order you would like to remove? 3
Invalid
Enter the number associated with the doughnut order you would like to remove?
You must enter a value for the doughnut item you would like to change.
Enter the number associated with the doughnut order you would like to remove? 0
Valid value! Selected one: ['Cream', 6, 18]
添加回答
舉報