而Python中的循环将整数转换为字符串?

时间:2013-02-27 03:37:54

标签: string python-3.x while-loop integer

所以我似乎无法得到这个。没有'while'循环,这段代码工作正常,但是一旦我应用循环,它就会停止正常工作。从某种原因,它将x视为一个字符串。就像x是2,它会打印为'2222'而不是16。我还是新手,有人可以告诉我为什么?谢谢!

go = 'y'

while go == 'y':

    print('enter x')
    x = input()

    y = x * 4

    print(y)
print('go again?')

go = input()

2 个答案:

答案 0 :(得分:1)

Python 3的input函数始终返回一个字符串。这是对Python 2的更改,其中input根据用户输入的内容返回了不同类型的Python对象。 Python 3的版本相当于Python 2的raw_input

考虑到这一背景,您可以轻松修复代码。只需调用int构造函数将字符串转换为整数即可。或者,如果您想支持非整数值(例如1.4),请改用float

顺便说一句,由于您的代码目前在问题中已格式化,因此它具有无限循环。您的逻辑是否真的在顶级更改go变量?如果是这样,它将不会在循环期间发生变化,循环将永远运行。

答案 1 :(得分:0)

这实际上取决于你的python版本。如果找到一个字符串,input会自动将您的字符串转换为整数。要防止这种情况,请使用python中的raw_input函数< 3.对于python 3及更高版本,我相信这是默认行为。