所以每当我运行这个程序时,我都会收到语法错误,说明如下: 文件“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()
我拉着我的头发想知道为什么它不会让我定义一个该死的功能。呃...唉,我来找你寻求帮助。
答案 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()似乎是一个教程任务。不要气馁在这里张贴,每个人都从某个地方开始。