如何解决Python中简单代码中“ SyntaxError:无效语法”背后的原因是未使用逗号
运行此代码时出现SyntaxError:语法无效
total = int(input("compra total: "))
if total > 700000: totald = total - total*0.2
elif total > 300000: totald = total - total*0.15
elif total > 150000: totald = total -total*0.10
else: totald = total*1
print("Centro Comercial Unaleño\n" "Compra Más y Gasta Menos\n" "NIT: 899.999.063\n" "Total:$"+str(int(totald)) "En esta compra tu descuento fue $"+str(int(total-totald)))
我意识到错误不是在此处放置逗号或总和符号:
......"Total: $"+str(int**(totald)),"\nEn** esta compra tu descuento fue $"+str(int(total-totald)))
但是我不明白必须放置两个选项中任何一个的原因。 为什么我不能只在其他字符串中放置一个空格,这两个符号中的任何一个的目的是什么?
感谢您的帮助!
解决方法
total = int(input("compra total: "))
if total > 700000: totald = total - total*0.2
elif total > 300000: totald = total - total*0.15
elif total > 150000: totald = total -total*0.10
else: totald = total*1
print("Centro Comercial Unaleño\n" "Compra Más y Gasta Menos\n" "NIT: 899.999.063\n" "Total:$"+str(int(totald)) + "En esta compra tu descuento fue $"+str(int(total-totald)))
在打印语句中连接字符串时,您省略了+。
,我建议这样设置文本格式:
print("Centro Comercial Unaleño\r\nCompra Más y Gasta Menos\r\nNIT: 899.999.063\r\nTotal:${} En esta compra tu descuento fue ${}".format(totald,totald))
因为对于字符串分隔的文字,您依赖于字符串-文字串联。参见documentation。
这仅适用于字符串文字。编译器无法将字符串连接到由空格(仅文字)分隔的任意表达式。
>>> "foo" "bar"
'foobar'
>>> 'foo' frobnicate()
File "<stdin>",line 1
'foo' frobnicate()
^
SyntaxError: invalid syntax
这是在编译时发生的,
>>> import dis
>>> dis.dis("'foo' 'bar'")
1 0 LOAD_CONST 0 ('foobar')
2 RETURN_VALUE
因此它不能依赖运行时结果。
逗号起作用是因为它随后成为print
的另一个参数。
例如
>>> print('hello')
hello
>>> print('hello','world')
hello world
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。