所以我重新制作了我的骰子游戏代码的一部分并且它的作品有点体面,但是在ROLL骰子并尝试显示用户得分后,我跑进去了错误在哪里说'名称p1_score未定义'。它对变量p2_score说同样的事情。但是我将p1_score定义为ran_num + ran_num,所以我不知道为什么我会收到错误。
<input name="expires_on" [(ngModel)]="note.expires_on" ngbDatepicker #datePicker="ngbDatepicker">
答案 0 :(得分:4)
这是一个变量范围问题,您需要使用全局(如果使用不正确,全局变量可能是危险的),与使用player_1和player_2的方式相同,或者从该函数返回并使用返回的值作为输出。
http://python-textbok.readthedocs.io/en/1.0/Variables_and_Scope.html
&#34;不隶属于该网站,只是做了一个快速谷歌,看看我是否能找到一个资源供您阅读,以便您能理解&#34;
import random
import time
def rollDice():
ran_num = random.randint(1,6)
print("You rolled a " + str(ran_num))
raw_input()
resolved_score = ran_num+ran_num
return str(resolved_score)
player_1 = raw_input("Enter player one name: ")
player_2 = raw_input("Enter player two name: ")
print("Please press ENTER to roll the dice")
raw_input()
p1_result = rollDice()
print("Good job "+player_1)
print("Your score is now "+p1_result)
time.sleep(5)
print(player_2+" Press ENTER to roll the dice")
raw_input()
p2_result = rollDice()
print("Nice work "+player_2)
print("Your score is now "+p2_result)
我对你的代码进行了一些合理化处理,但存在一些逻辑错误。请注意,在def中我有一个return语句,return语句将两个数字相加,使用str()将其转换为字符串,然后使用RETURN将值吐回到调用代码中。在这种情况下,我们首先遇到调用代码:
p1_result = rollDice()
现在p1_result将等于ran_num + ran_num解析到函数内的任何内容。