嗨,我是非常新的编码,我不知道为什么这不起作用!我们必须制作一个程序,用户要么选择一个硬币,然后显示一个随机抛硬币的结果,要么他们选择一张卡片,然后随机显示一套卡片套装和号码。它一直在说 回溯(最近一次呼叫):
File "\\fs1epa\intake2010data$\cresm011.311\My Documents\Year 11\Computer Science\Python Practise question\Card_or_coin.py", line 30, in <module>
program()
File "\\fs1epa\intake2010data$\cresm011.311\My Documents\Year 11\Computer Science\Python Practise question\Card_or_coin.py", line 9, in program
if r == (1):
UnboundLocalError: local variable 'r' referenced before assignment
这是我的代码:
^{pr2}$正如你所见,我不是最擅长编码,但有什么帮助吗?同样,当我输入'硬币'它工作,但仍然计算一个随机卡号,当我键入'卡'它给我上述错误。另外,我还没有为随机套装添加代码。在
我添加了一个人代码,现在它工作了!!!不过,当我键入“硬币”时,它也会得到一个随机卡号。在
def program():
Choice = input("Pick either 'Card' or 'Coin' ")
if Choice == "Coin":
import random
r = random.randint(1,2)
if r == (1):
print ("Heads!")
elif r == (2):
print ("Tails!")
if Choice == "Card":
import random
card_number = random.randint(1,13)
if card_number == 1:
print("Ace")
elif card_number == 11:
print("Jack")
elif card_number == 12:
print("Queen")
elif card_number == 13:
print("King")
else:
print(card_number)
flag = True
while flag:
program()
flag = input('Would you like to run the program again? [yes/no]') == 'yes'
print ("The program will now terminate.")
您对
r
的赋值超出了初始if-on选择的范围。在实际上,您是在声明
r
之前调用if r == 1
。这导致了你的错误。在请记住Python使用空格,因此需要相应地缩进。在
我已经为你重写了(添加了2个缩进)你的代码并进行了测试。在
正如错误消息所说:
我想这已经足够让你看到错误了。在
通常,如果运行}是一个局部变量,如果它看到类似{}的赋值,那么抛出{}。在
if r == 1:
,您将得到NameError: name 'r' is not defined
,但是Python认为{您的程序有许多错误,对于您询问的错误,更正是:
你想要的是在
行。在
像这样,每次运行程序时都要检查r==(1)。如果你写“卡片”,你想跳过它。在
编辑者抱怨的是,他不做作业
^{pr2}$行,因为如果选择不是“硬币”,他会跳过if
然后他试着把它和(1)做比较,但他不能,因为他没有做作业。在
相关问题 更多 >
编程相关推荐