为什么在python中print("i"*5)可以运算但print("i"+5)会报错?
这个问题是这样的,Python 为字元串这个数量类型定义了 和整数的乘法运算,没有定义字元串和整数的加法运算。
"*"和"+"符号既可以是 Python 算术运算符,也可以是 Python 字元串运算符。
"*"符号当它作为算术运算符的时候,表示两个数相乘,符号两边是数字;当它作为字元串运算符时,表示返回一个被重复若干次的字元串,符号两边必须是 int 类型的数字和字元串。
"+"符号当它作为算术运算符的时候,表示两个数字相加,符号两边是数字;当它作为字元串运算符时,表示字元串连接,符号两边是字元串。
在 Python 中字元串有专门的运算符,以下简单列一些,设变数 a 值为字元串 "Hello",b 变数值为 "Python",详情请参阅官方文档或相关书籍:
- +,字元串连接
a + b
# HelloPython
2. *,重复输出字元串
a * 2
# HelloHello
3. [],通过索引获取字元串中字元
a[1]
# e
4. r/R,输出原始字元串:所有的字元串都是直接按照字面的意思来使用,没有转义特殊或不能列印的字元。 原始字元串除在字元串的第一个引号前加上字母"r"(可以大小写)以外,与普通字元串有著几乎完全相同的语法。
print(r
)
#
以上主要包括 Python 算术运算符,Python 字元串操作的一些知识。很多 Python 书籍都会对 Python 字元串操作有专门的章节介绍,同时也可以阅读 Python 官方文档相关章节,好像从 Python 3.6 起官方文档直接支持中文了,对中文学习者也非常友好。
因为不同类型的不可以相加,"i"*5代表五个「i」
print(i * 5)
&>&>&>
iiiii
本质上是输出五个字元i
print(i + 5)
&>&>&>
TypeError: can only concatenate str (not "int") to str
因为i是str类型,5是int类型,类型不同不能相加
可改为
print(i + str(5))
&>&>&>
i5
推荐阅读: