0

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

go = 'y'

while go == 'y':

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

    y = x * 4

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

go = input()
4

2 回答 2

1

Python 3 的input函数总是返回一个字符串。这是与 Python 2 的一个变化,后者input根据用户输入的内容返回不同类型的 Python 对象。Python 3 的版本等同于 Python 2 的raw_input.

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

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

于 2013-02-27T03:46:56.657 回答
0

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

于 2013-02-27T03:46:40.243 回答