0

我一直在这几个小时,搜索问题,甚至问我的兄弟,他是 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
4

2 回答 2

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

计算括号。

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

于 2013-10-10T00:54:11.907 回答
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. 它不安全且不稳定,有人可能会不小心输入代码并弄乱您的程序。

于 2013-10-10T01:16:17.217 回答