我的印象是在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(名称)。
答案 0 :(得分:1)
如果你阅读了input
上的文档,那么你会看到这一行引用你的场景:
该函数从输入中读取一行,将其转换为
string
(剥离尾随换行符),然后返回。
我们也可以在翻译中看到这一点:
>>> type(input())
<class 'str'>
而且,为了澄清,Python 永远不会从int
返回input()
,如果你想进行算术运算,你总是需要转换。
请注意,Python 2 中的行为不同,后者提供input()
和raw_input()
。第一个将输入转换为适当的数据类型(例如int
),而后者的功能与Python 3 中的input()
相同。
这可以再次在口译员中进行测试:
>>> type(input())
5
<type 'int'>
>>> type(raw_input())
5
<type 'str'>
答案 1 :(得分:0)
因为Python在后台做了一些事情来弄清楚变量类型是什么。另外,input
的输入始终是一个字符串。你刚刚连接了两个字符串。
答案 2 :(得分:0)
函数input
总是返回一个字符串。您刚刚目睹的是string concatenation。
如果您想将input
的结果转换为其他类型,比如整数,那么您可以这样做:
x = int(input("Enter a number"))
如果输入无法表示为int
类型,则会引发错误。您可以执行其他解析或类型测试(例如isinstance()
或type() is...
),具体取决于您期望的输入的复杂程度。