在print()中使用str()

  • 本文关键字:str print python
  • 更新时间 :
  • 英文 :


如果我使用:

>>> n = input("What is your name? ")
What is your name? 23
>>> print("Hello " + n)

输出为

Hello 23

然后它正确打印。但是如果我使用:

>>> n = 1
>>> print("Hello" + n)

结果:

Traceback (most recent call last):   File "<pyshell#74>", line 1, in
<module>
    print("Hello" + n) TypeError: can only concatenate str (not "int") to str

然后给出一个错误。我知道不使用str()函数就不允许使用字符串打印数字,因此在第一种情况下,为什么不给出错误?

因为 input() 始终返回 str

在您的第一个示例中,n"23",而不是23,因此串联有效。

input函数始终返回字符串,因此,即使用户输入一个数字, input仍然在字符串中返回数字,因此可以将其与另一个字符串串联。

那是因为 input()返回一个字符串,即在您的示例中,字符串'23'

检查:

>>> n = input("What is your name? ")
What is your name? 23
>>> print(type(n))
<class 'str'>

操作员+的动作取决于操作数的类型,但两者都需要相同的type。对于字符串,它是用于串联的,因此,两种操作数都是相同类型的string。但是,python仍然可以使用,在同一行上打印两种不同类型的操作数。

例如,

print("Hello ",n)

最新更新