You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python字符串与整数如何拼接?为何输入数字无需str()转换?

Python字符串与整数拼接的疑问解答

嘿,这个问题刚好戳中了不少Python新手容易混淆的点!咱们好好拆解一下:

首先,你代码里的name = input()是核心关键——Python的input()函数不管用户输入的是数字还是文字,都会把输入内容转换成字符串类型返回。哪怕你输入的是数字1,程序拿到的其实是字符串'1',不是整数1。所以你直接用'Thank you for entering a name, ' + name拼接时,两边都是字符串类型,自然不会报错,完全不需要额外用str()转换。

那什么时候才必须用str()呢?当你要拼接的是真正的整数类型变量时,比如你直接定义了整数、或者通过运算得到了整数,这时候就必须把整数转成字符串才能和其他字符串拼接:

score = 95
# 正确写法:把整数转成字符串
print('你的考试分数是:' + str(score))
# 更简洁的写法:用f-string(Python3.6+支持)
print(f'你的考试分数是:{score}')
# 错误写法:直接拼接整数和字符串会抛出TypeError
# print('你的考试分数是:' + score)

如果你想验证这一点,可以在你的代码里加一行测试:在name = input()后面加上print(type(name)),不管你输入数字还是文字,输出结果都会是<class 'str'>,这就实锤了输入内容已经是字符串啦。

最后总结下字符串和整数拼接的正确姿势:

  • 若要拼接的"数字"是用户通过input()输入的,直接用就行,因为它本身就是字符串
  • 若要拼接的是真正的整数类型变量,必须用str()转换,或者用f-string、format()这类更便捷的方式实现拼接

内容的提问来源于stack exchange,提问作者JustAkid

火山引擎 最新活动