随机整数并接收并保存

时间:2018-07-04 13:45:21

标签: python

因此,我对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.")

3 个答案:

答案 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.")