Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Python中的While循环将整数转换为字符串?_String_Python 3.x_While Loop_Integer - Fatal编程技术网

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

String Python中的While循环将整数转换为字符串?,string,python-3.x,while-loop,integer,String,Python 3.x,While Loop,Integer,所以我似乎无法理解这一点。如果没有“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() 这实际

所以我似乎无法理解这一点。如果没有“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()

这实际上取决于您的python版本<代码>输入将自动将字符串转换为整数(如果找到)。要防止出现这种情况,请在python<3中使用
raw\u input
函数。对于Python3及以上版本,我认为这是默认行为

Python3的
input
函数总是返回字符串。这与Python2有所不同,Python2中的
input
根据用户输入的内容返回不同类型的Python对象。Python3的版本相当于Python2的
原始输入

有了这些背景知识,修复代码就很容易了。只需调用
int
构造函数即可将字符串转换为整数。或者,如果希望支持非整数值(如
1.4
),请改用
float


另一方面,由于问题中的代码当前是格式化的,因此它有一个内循环。您更改
go
变量的逻辑真的处于顶层吗?如果是这样的话,它在循环过程中永远不会改变,它将永远运行。

谢谢Blckknight!我现在知道了,我只是用了“x=int(input())”。我看到了go的东西,哈哈。我只是不明白为什么相同的代码在while循环之外工作。。。