为什么 Python 3 在定义名称时给我一个名称错误?
Why is Python 3 giving me a name error when the name is defined?
我项目的目标是使用决策块找到确切的变化。我的所有代码都返回正确的答案,但预期结果为 "No Change".
的答案除外
解决方案如预期的那样 "No Change",但后面跟着一个错误代码,指出
Traceback (most recent call last):
File "main.py", line 21, in <module>
if dollars == 1:
NameError: name 'dollars' is not defined
知道为什么会这样吗?我的代码如下。
print("This program asks the user to enter a change amount using integers only,")
print("and outputs the change using the fewest coins.")
input_val = int(input("Enter the change amount as integer:"))
if input_val <= 0:
print("No Change")
else:
dollars = input_val // 100
input_val %= 100
quarters = input_val // 25
input_val %= 25
dimes = input_val // 10
input_val %= 10
nickels = input_val // 5
input_val %= 5
pennies = input_val
if dollars == 1:
print('%d dollar' % dollars)
elif dollars > 1:
print('%d dollars' % dollars)
if quarters > 1:
print('%d quarters' % quarters)
elif quarters == 1:
print('%d quarter' % quarters)
if dimes > 1:
print('%d dimes' % dimes)
elif dimes == 1:
print('%d dime' % dimes)
if nickels > 1:
print('%d nickels' % nickels)
elif nickels == 1:
print('%d nickel' % nickels)
if pennies > 1:
print('%d pennies' % pennies)
elif pennies == 1:
print('%d penny' % pennies)
您需要在使用前声明变量。
在您的代码中,变量 dollars, quarters, dimes, nickels, pennies
在 else
块外不可见
...
input_val = int(input("Enter the change amount as integer:"))
dollars = 0
quarters = 0
dimes = 0
nickels = 0
pennies = 0
if input_val <= 0:
print("No Change")
...
我项目的目标是使用决策块找到确切的变化。我的所有代码都返回正确的答案,但预期结果为 "No Change".
的答案除外解决方案如预期的那样 "No Change",但后面跟着一个错误代码,指出
Traceback (most recent call last):
File "main.py", line 21, in <module>
if dollars == 1:
NameError: name 'dollars' is not defined
知道为什么会这样吗?我的代码如下。
print("This program asks the user to enter a change amount using integers only,")
print("and outputs the change using the fewest coins.")
input_val = int(input("Enter the change amount as integer:"))
if input_val <= 0:
print("No Change")
else:
dollars = input_val // 100
input_val %= 100
quarters = input_val // 25
input_val %= 25
dimes = input_val // 10
input_val %= 10
nickels = input_val // 5
input_val %= 5
pennies = input_val
if dollars == 1:
print('%d dollar' % dollars)
elif dollars > 1:
print('%d dollars' % dollars)
if quarters > 1:
print('%d quarters' % quarters)
elif quarters == 1:
print('%d quarter' % quarters)
if dimes > 1:
print('%d dimes' % dimes)
elif dimes == 1:
print('%d dime' % dimes)
if nickels > 1:
print('%d nickels' % nickels)
elif nickels == 1:
print('%d nickel' % nickels)
if pennies > 1:
print('%d pennies' % pennies)
elif pennies == 1:
print('%d penny' % pennies)
您需要在使用前声明变量。
在您的代码中,变量 dollars, quarters, dimes, nickels, pennies
在 else
块外不可见
...
input_val = int(input("Enter the change amount as integer:"))
dollars = 0
quarters = 0
dimes = 0
nickels = 0
pennies = 0
if input_val <= 0:
print("No Change")
...