這個問題是這樣的,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


推薦閱讀:
相關文章