[英]Why am i getting this error "name is not defined" when it is?
為什么我收到這個錯誤? 圖片有細節。 我需要獲取 _spent 值來打印適當的次數。 所以,假設它通過循環 3 次,我需要它打印 3。我認為這就是 1 的來源。 我不喜歡!
pennies = 10
nickels = 10
dimes = 10
quarters = 10
print("\nWelcome to change-making program.")
in_str = input("\nEnter the purchase price (xx.xx) or `q' to quit: ")
while in_str.lower() != 'q':
dollar_str, cents_str = in_str.split(".")
if in_str.lower() == 'q':
quit()
in_int = int(float(in_str) * 100)
if in_int < 0:
print("Error: purchase price must be non-negative.")
in_str = input("\nEnter the purchase price (xx.xx) or `q' to quit: ")
if in_int > 0:
payment = input("\nInput dollars paid: ")
payment_int = int(float(payment) * 100)
change = payment_int - in_int
#determines if there payment input
if payment_int < in_int:
print("Error: Insufficient payment.")
payment = input("\nInput dollars paid: ")
payment_int = int(float(payment) * 100)
if change == 0:
print("No change.")
#determines how many quarters, dimes, nickels, and pennies are left
while change >= 25 and quarters > 0:
change = change - 25
quarters_spent = 0
quarters_spent += 1
quarters = quarters - quarters_spent
print(quarters_spent)
while change >= 10 and dimes > 0:
change = change - 10
dimes_spent = 0
dimes_spent += 1
dimes = dimes - dimes_spent
print(dimes_spent)
while change >= 5 and nickels > 0:
change = change - 5
nickels_spent = 0
nickels_spent += 1
nickels = nickels - nickels_spent
print(nickels_spent)
while change >= 1 and pennies > 0:
change = change - 1
pennies_spent = 0
pennies_spent += 1
pennies = pennies - pennies_spent
if quarters == 0 and dimes == 0 and nickels == 0 and pennies == 0:
print("Error: ran out of coins.")
quit()
print("\nCollect Payment Below:")
print(10 - quarters, "Quarters")
print("\nStock: ", quarters, "Quarters, ", dimes, " Dimes, ", nickels, " Nickels, ", pennies, " Pennies ")
in_str = input("\nEnter the purchase price (xx.xx) or `q' to quit: ")
pennies = pennies
nickels = nickels
dimes = dimes
quarters = quarters
此錯誤意味着您在嘗試使用它之前沒有定義值nickels_spent
。
我猜錯誤在這一行: print (nickels_spent)
。
可能發生的情況是,當您嘗試運行該變量時,用於為該變量賦值的while
語句條件不正確,因此未定義它,但您仍然嘗試使用它。
在while
循環之前嘗試調試以查看那里到底發生了什么。
您只在 while 循環中定義並初始化了這個變量nickels_spent
但是,如果不滿足條件,程序將跳過循環並跳轉到此變量尚未定義的print(nickels_spent)
語句執行。
你可以
或者
取決於你的程序的目的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.