Python 语法错误:扫描字符串文字时下线
我写道:Python 语法错误:扫描字符串文字时下线,python,Python,我写道: def compute_bill(food): total = 0 while item in food: if item's stock count > 0: total += prices[item] item's stock count = item's stock count - 1 然后,我得到了语法错误:扫描字符串文字时出现EOL 有人能帮帮我吗 这个“开始一个字符串,您已经在三个地方使用了它。这将导
def compute_bill(food):
total = 0
while item in food:
if item's stock count > 0:
total += prices[item]
item's stock count = item's stock count - 1
然后,我得到了语法错误:扫描字符串文字时出现EOL
有人能帮帮我吗 这个
“
开始一个字符串,您已经在三个地方使用了它。这将导致两个字符串:一个在开始和结束处有撇号,另一个未闭合。未关闭的代码会导致EOL错误
,因为python解释器在字符串完成之前已用完了要检查的代码
要解决此问题,请不要在变量名中使用撇号(或空格):
def compute_bill(food):
total = 0
while item in food:
if item_stock_count > 0:
total += prices[item]
item_stock_count = item_stock_count - 1
看起来
项目的库存计数是一个变量名。但在Python或我猜大多数/所有语言中,变量名不能用空格分隔,也不应该包含单引号“
或双引号”
等等。您的“item's stock count”是一个变量,Python变量必须遵守一些规则(请参阅):
- 必须以字母(大写或小写)或下划线(
)开头
- 以下字符可以是字母、数字或下划线
因此,不允许使用空格或引号;它们被解释为其他内容,而不是变量名。因此出现错误
另请参见。请将实际代码以良好的格式放置(即在每行代码前放置4个空格)你必须初始化item\u stock\u count
,你缺少if
后面的行缩进。示例中的item\u stock\u count
没有初始化。这是一个错误。是的,但这不是问题所在。@Matthias好吧,有更多的错误,例如while语句是完全错误的(它将无限运行)。Matthew只修复OP询问的错误是正确的。