我正在掷骰子游戏,但我的代码不起作用

时间:2016-10-31 19:26:10

标签: python

当滚动数字1出来后,我希望显示以下文本:你滚动1

如果出现任何其他号码,我想看到以下文字: 它不是第1名

这是我的代码:

import random

def roll (sides=6):
    num_rolled = random.randint(1,sides)
    return num_rolled

def main():
    sides = 6
    rolling = True
    while rolling:
        roll_again = input("Ready to roll? ENTER=Roll. Q=QUIT. ")
        if roll_again.lower() != "q":
            num_rolled = roll(sides)
            if num_rolled == "1"
             print("You rolled a", num_rolled)
        else:
            print("its not number 1")
        else:
            rolling = False


    print ("Thanks for playing.")

main()

但它不起作用我收到以下消息:语法无效

请有人帮帮我。

1 个答案:

答案 0 :(得分:2)

您的语法有一些不正确之处,请参阅我在您的代码片段中的评论:

while rolling:
    roll_again = input("Ready to roll? ENTER=Roll. Q=QUIT. ")
    if roll_again.lower() != "q":
        num_rolled = roll(sides)
        if num_rolled == "1" #1
         print("You rolled a", num_rolled) #2
    else: #3
        print("its not number 1") #4
    else:
        rolling = False
  1. 在if语句结尾处缺少冒号:
  2. 行没有像其余的那样缩进(这是4个空格)*。
  3. 此行不会缩进与其(明显)相应的if语句相同的数量。
  4. 见评论2。
  5. 我强烈建议您回顾一下您对Python中超级关键的indentation的理解。 我相信你很快就能成功!

    * 从技术上讲,这不是语法错误,但我选择提及它,因为它反映了破坏代码的其他错误。