这个脚本在python2中工作但在python3中不工作,即使我输入了正确的答案,输入问题仍然显示:
correct = "no"
while correct == "no":
answer = input("15 x 17? ")
if answer == 15*17:
correct = "yes"
print 'good!' #for python2
else:
correct = "no"
如何在不使用和使用功能的情况下解决这个问题?
答案 0 :(得分:0)
在Python 3中input
返回一个字符串(在Python 2 input
中评估输入),因此answer == 15*17
将永远不会为真,除非您将answer
转换为int或{ {1}}为字符串。
此外,12*17
不是有效的Python 3语法,因为print "good"
是一个函数:print
。
答案 1 :(得分:0)
为了在Py2.7和Py3中使用,语言版本之间存在一些差异 - 请参阅What’s New In Python 3.0:
input()
相当于py2 raw_input()
print
不再是py3中的语句,而是函数要使这段代码在py2.7和py3上都能正常工作,你可以这样做:
from __future__ import print_function
try:
input = raw_input
except NameError:
pass
while True:
answer = int(input("15 x 17? "))
if answer == 15*17:
print('good!')
break