这个问题是这样的,Python 为字元串这个数量类型定义了 和整数的乘法运算,没有定义字元串和整数的加法运算。


"*"和"+"符号既可以是 Python 算术运算符,也可以是 Python 字元串运算符。

"*"符号当它作为算术运算符的时候,表示两个数相乘,符号两边是数字;当它作为字元串运算符时,表示返回一个被重复若干次的字元串,符号两边必须是 int 类型的数字和字元串。

"+"符号当它作为算术运算符的时候,表示两个数字相加,符号两边是数字;当它作为字元串运算符时,表示字元串连接,符号两边是字元串。

在 Python 中字元串有专门的运算符,以下简单列一些,设变数 a 值为字元串 "Hello",b 变数值为 "Python",详情请参阅官方文档或相关书籍:

  1. +,字元串连接

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 起官方文档直接支持中文了,对中文学习者也非常友好。

Python 在线官方文档
https://docs.python.org/zh-cn/3.6/tutorial/introduction.html#strings?

docs.python.org


因为不同类型的不可以相加,"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


推荐阅读:
相关文章