虽然Python中的循环将整数转换为字符串?
问题描述:
所以我似乎无法得到这个。如果没有'while'循环,这段代码可以正常工作,但只要我应用循环就会停止正常工作。由于某种原因,它将x当作一个字符串来处理。就像x是2一样,它会将y打印为'2222'而不是16个。我仍然对此有所了解,有人可以告诉我为什么?谢谢!虽然Python中的循环将整数转换为字符串?
go = 'y'
while go == 'y':
print('enter x')
x = input()
y = x * 4
print(y)
print('go again?')
go = input()
答
Python 3的input
函数总是返回一个字符串。这是从Python 2的变化,其中input
根据用户输入的内容返回不同种类的Python对象。 Python 3的版本相当于Python 2的raw_input
。
考虑到这种背景,修复代码很容易。只需调用int
构造函数即可将您的字符串转换为整数。或者,如果您要支持非整数值(如1.4
),请改为使用float
。
另外,由于您的代码目前在问题中已格式化,因此它具有无限循环。您的逻辑是否真的在顶层更改go
变量?如果是这样,在循环过程中永远不会改变,这将永远运行。
答
这实际上取决于你的python版本。如果找到一个字符串,input
会自动将您的字符串转换为整数。为了防止这种情况,请在python <中使用raw_input
函数3.对于Python 3及以上版本,我相信这是默认行为。
谢谢Blckknight!我现在知道了,我只是用'x = int(input())'。我看到了这个东西哈哈。我只是不明白为什么相同的代码在while循环之外工作... – user2113766 2013-02-27 03:55:20