Python3 While语法错误

Python3 While语法错误,python,python-3.x,syntax,while-loop,syntax-error,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 se

我已经做了几个小时了,搜索问题,甚至问我的哥哥,他是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
数一数括号


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

正如上面的答案所述,这里缺少一个括号:

kwh = eval(input("Enter customer's number of Kilowatt Hours Used: ")
你为什么需要一份评估报告?似乎您需要一个数字,并希望将字符串更改为整数。为什么不这样做呢

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

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

您能编辑您的帖子,使其包含代码中的精确缩进吗?Python对此相当挑剔。看起来kwh=evalinput中缺少一个右括号。。。线顺便说一句,这是一个非常糟糕的主意。您的代码没有格式化为我们为您修复的代码。要正确格式化代码,请选择它并单击{}图标,或将其缩进4列。@D.Shawley是正确的。如果要输入数字,请使用intinput…或floatinput…。Python在3.0中放弃了自动求值输入函数是有原因的;不要把它带回来。eval对程序的健康有害!!while循环是无限的,除非有一段代码没有显示。一般来说,任何时候在一行上出现一个看起来完全有效的SyntaxError,并且无论从该行中删除多少,都会得到相同的SyntaxError,复制并粘贴到其他地方的同一行也可以……问题是上面的行缺少结束符、括号、大括号或引号,或者有多余的反斜杠。谢谢。这就成功了。我不敢相信我错过了,不过,公平地说,那是“错误”中的4行。@DanielBoudreaux:这是调试几次后你学到的东西之一,然后它就变成了第二天性。希望你已经知道了这个诀窍,你只需要经历一次。有人已经写了这个问题的答案,并且评论注意了eval的使用。你甚至引用了另一个答案。这个答案没有提供真正的价值,这就是为什么我投反对票。好吧,在我的辩护中,我只建议他使用int,因为这可能是他想要的。不过我很重视你的意见。谢谢。通常我不介意答案提供额外的信息——但问题本身的评论提供了额外的细节,这使得我不需要这个答案,尽管这是一个很好的建议。干杯。谢谢你的编辑,我也犯了同样的错误。。哈哈哈
kwh = int(input("Enter customer's number of Kilowatt Hours Used: "))