因此,我对Python还是很陌生,我一直在上一节课的骰子掷骰子,我真的很坚持。除了掷骰子的点,我的代码工作得很好。如果您掷出6,则应该印出我赢了。但是它打印出我迷路了。我不知道为什么会这样,任何帮助将不胜感激。它旨在询问您的名字,给您一个用户名,然后询问您是否要玩。但是,最后给您号码的那一切都出错了。就像我说的那样,我很感激测试
from random import randint
print ("Hello, whats is your first name?")
first_name = input()
print ("What is your second name?")
second_name = input()
username = first_name[0] + first_name[1] + second_name[0] + second_name[1]
print (username + ", I want to play a game. Do you accept?")
game = input()
if game == ("yes") or ("Yes") or :
print ("Great, let's play. I'm going to roll a dice, if it lands on a 6, you win. If")
print ("not, you lose.")
dice_roll = print (randint(1,6))
if dice_roll == 6:
print ("Congrats, you win.")
elif dice_roll != 6:
print ("Sorry. You lose.")
elif game == ("no") or ("No"):
print ("Ok, Bye.")
else:
print ("Ok, Bye.")
答案 0 :(得分:3)
为什么要执行以下操作
dice_roll = print (randint(1,6))
这将打印到控制台,并且不返回任何内容。因此,dice_roll始终为None。因此,将其更改为以下
dice_roll = randint(1,6)
要打印,只需将其打印在单独的行上。
另外,下一行是一个问题
if game == ("yes") or ("Yes") or :
您不能那样做。您必须在“或”之后提及一些内容。因此,将其更改为以下
if game == "yes" or game == "Yes" :
答案 1 :(得分:1)
您需要更改此行:
dice_roll = print (randint(1,6))
如果您使用以下方法,则将dice_roll参数分配给print语句:
dice_roll = (randint(1,6))
print(dice_roll)
一切都应该没事。
此外,您可以通过更改(并消除两个“或”语句)来简化代码:
if game == ("yes") or ("Yes") or :
至:
if game.lower() == "yes":
这将处理出色的字母异常
答案 2 :(得分:0)
更改滚动部分,例如打印结果,而不是将打印内容分配给变量-而是值本身:
dice_roll = randint(1,6)
print(dice_roll)
if dice_roll == 6:
print ("Congrats, you win.")
elif dice_roll != 6:
print ("Sorry. You lose.")
elif game == ("no") or ("No"):
print ("Ok, Bye.")
else:
print ("Ok, Bye.")