有人可以帮我调试我的python程序吗?

时间:2014-11-28 22:26:56

标签: python python-3.x

所以每当我运行这个程序时,我都会收到语法错误,说明如下:  文件“dice.py”,第17行     def dice(diceAmount):       ^ SyntaxError:语法无效

以下是该计划:

# dice.py
# written for python 3.4
# by Will Jones

import os
import platform
import random

opSys = platform.system()

if opSys == "Windows":
    system.os("cls")
else:
    system.os("clear")

print("This program gives you a number based on 1 or more dice rolls\n")
diceAmount = eval(input("Enter an amount of dice to roll")

def dice(diceAmount):

    rolls = diceAmount

    while rolls > 0
        rolls = rolls - 1
        dieRoll = random.randint(0,6)
        sum = 0 + dieRoll
        print("The number is:", sum)

def main():

    pie = 4
    dice(diceAmount)
    input("Enter any key to quit")
    system.os("exit")

main()

我拉着我的头发想知道为什么它不会让我定义一个该死的功能。呃...唉,我来找你寻求帮助。

2 个答案:

答案 0 :(得分:3)

您缺少一个括号

diceAmount = eval(input("Enter an amount of dice to roll")

应该是

diceAmount = eval(input("Enter an amount of dice to roll"))

此外,你在while循环中缺少一个冒号

while rolls > 0

应该是

while rolls > 0:

答案 1 :(得分:1)

同意David,但我不会保留eval()。那个论点是另一天。

现在,每当你遇到任何类型的语法错误时,你应该在代码中向后工作,以评估最后一块可能被扫描过的非空格。

一个优秀的C程序员这样做是第二天性,有时它在一个包含的文件中,有时候会有一些评论页面。

这是因为行号通常反映编译器/解释器对前一行上未完成或不正确构造的异议。它"认为"您的函数定义是前一个语句的一部分。它必须阅读" good"知道前一行是不完整的。

一个好的LSE应该匹配大括号。 Notepad ++动态执行此操作,因此它是被动指示器。

这是你的作业吗?导入os并使用system.os()(sic)而不是os.system()似乎是一个教程任务。

不要气馁在这里张贴,每个人都从某个地方开始。