无法解决Python错误消息
代码来自K.Pollari Malmi的“编程入门”课程讲稿:无法解决Python错误消息,python,Python,代码来自K.Pollari Malmi的“编程入门”课程讲稿: def main(): print "Ohjelma laskee asuntolainan kuukausierat." rivi = raw_input("Anna lainasumma: ") lainasumma = float(rivi) rivi = raw_input("Anna laina-aika vuosina: ") laina_aika = int(rivi)
def main():
print "Ohjelma laskee asuntolainan kuukausierat."
rivi = raw_input("Anna lainasumma: ")
lainasumma = float(rivi)
rivi = raw_input("Anna laina-aika vuosina: ")
laina_aika = int(rivi)
if laina_aika < 1:
print "liian lyhyt laina-aika"
else:
kk_lkm = 12 * laina_aika
rivi = raw_input("Anna korkoprosentti: ")
korko = float(rivi)
lyhennys = lainasumma / kk_lkm
paaoma = lainasumma
i = 0
print " lyhennys korko yhteensa"
while i < kk_lkm:
i = i + 1
korkoera = korko / 1200.0 * paaoma
paaoma = paaoma - lyhennys
kuukausiera = korkoera + lyhennys
print "%2d. %8.2f %8.2f %8.2f" % \ # mistake probably here
(i, lyhennys, korkoera, kuukausiera)
main()
如何解决错误消息?尝试修改以下行:
print "%2d. %8.2f %8.2f %8.2f" % \ # mistake probably here
(i, lyhennys, korkoera, kuukausiera)
关于这一行:
print "%2d. %8.2f %8.2f %8.2f" % (i, lyhennys, korkoera, kuukausiera)
另外,请注意,以反斜杠结尾的行不能包含注释。因此,您的
#错误可能是这里的注释造成的 尝试修改这些行:
print "%2d. %8.2f %8.2f %8.2f" % \ # mistake probably here
(i, lyhennys, korkoera, kuukausiera)
关于这一行:
print "%2d. %8.2f %8.2f %8.2f" % (i, lyhennys, korkoera, kuukausiera)
另外,请注意,以反斜杠结尾的行不能包含注释。因此,您的#错误可能是这里的注释造成的 行连续字符后面不能有任何内容,甚至不能有空格
请删除空格,或将整行用括号括起来:
行连续字符后不能有任何内容,甚至不能有空格
请删除空格,或将整行用括号括起来:
请尝试重写以下内容:
print "%2d. %8.2f %8.2f %8.2f" % \ # mistake probably here
(i, lyhennys, korkoera, kuukausiera)
为此:
print ("%2d. %8.2f %8.2f %8.2f" %
(i, lyhennys, korkoera, kuukausiera))
\
也应该可以,但在我看来,它的可读性较差。尝试重写以下内容:
print "%2d. %8.2f %8.2f %8.2f" % \ # mistake probably here
(i, lyhennys, korkoera, kuukausiera)
为此:
print ("%2d. %8.2f %8.2f %8.2f" %
(i, lyhennys, korkoera, kuukausiera))
\
也应该可以,但在我看来,它的可读性较差。替换:
print "%2d. %8.2f %8.2f %8.2f" % \
(i, lyhennys, korkoera, kuukausiera)
作者:
一般备注:标识符始终使用英语替换:
print "%2d. %8.2f %8.2f %8.2f" % \
(i, lyhennys, korkoera, kuukausiera)
作者:
一般备注:标识符始终使用英语几个答案已经为您提供了问题的症结所在,但我想在可行的情况下,为我最喜欢的在Python中获取逻辑行连续性的方法制作一个插件:
print "%2d. %8.2f %8.2f %8.2f" % ( # no mistake here
i, lyhennys, korkoera, kuukausiera)
i、 例如,不必像一些答案所建议的那样使用额外的括号,您可以利用您自然拥有的任何括号——这将告诉Python您也需要逻辑行继续;-) 几个答案已经为您提供了问题的症结所在,但我想在可行的情况下,为我最喜欢的在Python中获得逻辑行连续性的方法制作一个插件:
print "%2d. %8.2f %8.2f %8.2f" % ( # no mistake here
i, lyhennys, korkoera, kuukausiera)
i、 例如,不必像一些答案所建议的那样使用额外的括号,您可以利用您自然拥有的任何括号——这将告诉Python您也需要逻辑行继续;-) 一般来说,我发现在Python中不使用行延续。您可以使用括号等使其更简洁。一般来说,我发现在Python中不使用行继续。你可以用括号等使它更干净。“\”表示“这一行继续到下一行”,后面不能有任何字符。后面可能有一个空格
两种解决方案:
确保之后没有空间
在一行上重写语句:
print "%2d. %8.2f %8.2f %8.2f" % (i, lyhennys, korkoera, kuukausiera)
您甚至可以使用括号使其适合多行:
print "%2d. %8.2f %8.2f %8.2f" % (
i, lyhennys, korkoera, kuukausiera)
“\”表示“这一行继续到下一行”,后面不能有任何字符。后面可能有一个空格
两种解决方案:
确保之后没有空间
在一行上重写语句:
print "%2d. %8.2f %8.2f %8.2f" % (i, lyhennys, korkoera, kuukausiera)
您甚至可以使用括号使其适合多行:
print "%2d. %8.2f %8.2f %8.2f" % (
i, lyhennys, korkoera, kuukausiera)
我个人同意英语,但Python的共识是:实际上,在Python 3中,您也可以在标识符中使用非ASCII字母数字,以使您的标识符“适当”非英语。当时我对此抱怨不已,但圭多态度坚决@Blauchr,非英语标识符限制您与一个相对较小的本地社区明智地讨论和共享代码,英语让您在全球范围内轻松合作(包括有意义地提问和接受建议)。我不是以英语为母语的人,但我可以帮助那些使用英语标识符的人,比那些使用芬兰语、普通话、阿拉伯语、日语等的人要好得多——这很常见!)我个人同意英语,但Python的共识是:实际上,在Python 3中,您也可以在标识符中使用非ASCII字母数字,以使您的标识符“适当”非英语。当时我对此抱怨不已,但圭多态度坚决@Blauchr,非英语标识符限制您与一个相对较小的本地社区明智地讨论和共享代码,英语让您在全球范围内轻松合作(包括有意义地提问和接受建议)。我不是以英语为母语的人,但我可以帮助那些使用英语标识符的人,比那些使用芬兰语、普通话、阿拉伯语、日语等的人要好得多——这很常见!)@亚历克斯:谢谢你的回答!我知道你的方式是最好的。第一行的那个孤寡老人让我很烦恼。不过要小心。如果在Python 3.0实现中使用该代码,它将崩溃——给定了新的打印语法。现在对您来说不是什么问题,只是需要注意的事项。@mettadore:您能举一个例子,说明我们如何使用Python 3.1中的打印来达到同样的目的吗?--我正在阅读Python2.6附带的2to3代码转换工具的文档,Python3将Python2的print statement转换为Python3的print函数调用(在本例中,它将插入print函数需要而print语句不需要的括号)。@Alex:谢谢你的回答!我知道你的方式是最好的。第一行的那个孤寡老人让我很烦恼。不过要小心。如果在Python 3.0实现中使用该代码,它将崩溃——给定了新的打印语法。现在对您来说不是什么问题,只是需要注意的事项。@mettadore:您能举一个例子,说明我们如何使用Python 3.1中的打印来达到同样的目的吗?--我正在阅读Python2.6附带的2to3代码转换工具中的文档,Python3将Python2的print statement转换为Python3的print函数调用没有问题(在本例中,它将插入print函数需要的括号和print语句)