Python3语法错误

时间:2013-10-10 00:50:51

标签: python python-3.x syntax while-loop syntax-error

我已经在这里待了几个小时,搜索问题,甚至问我的兄弟,他是EE的高年级学生,甚至他也很难过。这是针对今晚午夜之前到期的项目,我似乎无法摆脱这个错误。任何人都可以看看我的代码,并弄清楚为什么我一直收到这个错误?谢谢,是的,它们在while语句下正确缩进。

# Initialize Variables
count = 0

#First Customer Input
cus = input("Enter customer's name: ")
custype = input("Enter customer's service type (R for Residential. B for Business): ")
location = input("Enter customer's service location (C for City. P for Parish): ")
kwh = eval(input("Enter customer's number of Kilowatt Hours Used: ")

#Repeat loop based on input items NOT being the sentinel value
while (count < 10):
    if custype == 'R' and location1 == 'C':
        rate = residentialCity
    elif custype == 'R' and location1 == 'P':
        rate = residentialParish
    elif custype == 'B' and location1 == 'C' or 'P':
        rate = business

2 个答案:

答案 0 :(得分:5)

kwh = eval(input("Enter customer's number of Kilowatt Hours Used: ")

计算括号。

正如D.Shawley在评论中指出的那样,将用户输入传递给eval可以做任意不好的事情。你为什么还在那里使用eval

答案 1 :(得分:3)

如上所述,你在那里遗漏了一个括号:

kwh = eval(input("Enter customer's number of Kilowatt Hours Used: ")

为什么需要eval声明?好像你期待一个数字,并希望将字符串更改为整数。为什么不这样做?

kwh = int(input("Enter customer's number of Kilowatt Hours Used: "))

只是一个建议,但除非没有更好的方法,否则不要使用eval。这是不安全和不稳定的,有人可能无意或无意地输入代码并弄乱你的程序。