Python 这个字符串如何添加到此int

Python 这个字符串如何添加到此int,python,string,int,Python,String,Int,我的印象是,在Python中,在将int转换为str时,有必要编写(str),但在这种情况下,如果用户输入一个数字,它仍然可以正常执行 print('Enter a name.') name = input() if name: print('Thank you for entering a name, ' + name) else: print('You did not enter a name.') 例如,当输入为1(或任何数字)时,我不需要在第4行写入+str(name)

我的印象是,在Python中,在将int转换为str时,有必要编写(str),但在这种情况下,如果用户输入一个数字,它仍然可以正常执行

print('Enter a name.')
name = input()
if name:
    print('Thank you for entering a name, ' + name)
else:
    print('You did not enter a name.')

例如,当输入为1(或任何数字)时,我不需要在第4行写入+str(name)。

因为Python在后台做了一些事情来确定变量类型。另外,来自
input
的输入总是一个字符串。您刚刚连接了两个字符串

函数
input
始终返回字符串。你刚才看到的是一场悲剧

如果要将
input
的结果转换为其他类型,例如整数,则可以执行以下操作:

x=int(输入(“输入数字”))


如果输入不能表示为
int
类型,则会引发错误。根据所需输入的复杂性,您可以执行额外的解析或类型测试(例如,
isinstance()
type()是…
),具体取决于所需输入的复杂性。

如果您阅读了
input
上的文档,那么您将看到这一行内容,其中涉及到您的场景:

函数从输入中读取一行,将其转换为字符串(去掉尾随的换行符),然后返回该字符串

我们也可以在解释器中看到这一点:

>>> type(input())

<class 'str'>
>>> type(input())
5
<type 'int'>
>>> type(raw_input())
5
<type 'str'>

因为您使用的是Python3,其中
input()
总是返回字符串类型的对象(与python2.x不同),所以如果这是我们仍在使用的python2,我需要做什么不同的事情呢?如果您对编写独立于Python版本的代码感兴趣,您可以使用
input()简单地执行
str(name)
。铸造它没有害处again@MatthewH是的,Python2输入的工作方式不同,它相当于
eval(raw\u input())
,它只是。。。危险的经常使用
raw\u输入
。@MoinuddinQuadri一点也没有害处:(或者改用
格式
哦,我明白了。输入总是一个字符串。因为当用户输入
5
时,Python会得到
'5'
。这就是
input
的工作原理。在将其转换为其他内容之前,您键入的任何内容都将是python的字符串。