運算符
算術(數學)運算符
運算符 | 描述 | 執行個體 |
+ | 加 | 兩個對象相加 a + b 輸出結果 30 |
- | 減 | 得到負數或是一個數減去另一個數 a - b 輸出結果 -10 |
* | 乘 | 兩個數相乘或是傳回一個被重複若幹次的字元串 a * b 輸出結果 200 |
/ | 除 | b / a 輸出結果 2 |
// | 取整除 | 傳回商的整數部分 9//2 輸出結果 4 , 9.0//2.0 輸出結果 4.0 |
% | 取餘 | 傳回除法的餘數 b % a 輸出結果 0 |
** | 指數 | a**b 為10的20次方, 輸出結果 100000000000000000000 |
算術運算符的示範
加減乘除和求平方,我們在前面已經使用過啦。
現在在帶上:整除以及求餘數,一起試一試吧。
指派運算符
運算符 | 描述 | 執行個體 |
= | 指派運算符 | 把 = 号右邊的結果 賦給 左邊的變量,如 num = 1 + 2 * 3,結果num的值為7 |
複合指派運算符
運算符 | 描述 | 執行個體 |
+= | 加法指派運算符 | c += a 等效于 c = c + a |
-= | 減法指派運算符 | c -= a 等效于 c = c - a |
*= | 乘法指派運算符 | c *= a 等效于 c = c * a |
/= | 除法指派運算符 | c /= a 等效于 c = c / a |
%= | 取模指派運算符 | c %= a 等效于 c = c % a |
**= | 幂指派運算符 | c **= a 等效于 c = c ** a |
//= | 取整除指派運算符 | c //= a 等效于 c = c // a |
字元串擴充
字元串的三種定義方式
字元串在Python中有多種定義形式:
單引号定義法
雙引号定義法
三引号定義法
三引号定義法,和多行注釋的寫法一樣,同樣支援換行操作。 使用變量接收它,它就是字元串 不使用變量接收它,就可以作為多行注釋使用。
字元串的引号嵌套
思考:如果我想要定義的字元串本身,是包含:單引号、雙引号自身呢?如何寫?
單引号定義法,可以内含雙引号
雙引号定義法,可以内含單引号
可以使用轉移字元(\)來将引号解除效用,變成普通字元串
字元串拼接
如果我們有兩個字元串(文本)字面量,可以将其拼接成一個字元串,通過+号即可完成
a="123"
b="456"
print(a+b)
不過一般,單純的2個字元串字面量進行拼接顯得很呆,一般,字面量和變量或變量和變量之間會使用拼接
字元串格式化
我們會發現,這個拼接字元串也不好用啊 變量過多,拼接起來實在是太麻煩了
字元串無法和數字或其它類型完成拼接。
是以,有沒有其它方式,即友善又支援拼接其它類型呢?
這個方式,就是字元串的格式化
我們可以通過如下文法,完成字元串和變量的快速拼接。
其中的,%s
% 表示:我要占位
s 表示:将變量變成字元串放入占位的地方
是以,綜合起來的意思就是:我先占個位置,等一會有個變量過來,我把它變成字元串放到占位的位置
那,數字類型呢?可以不可以占位? 那必須可以,我們來嘗試如下代碼:
多個變量占位 變量要用括号括起來 并按照占位的順序填入
數字也能用%s占位嗎? 可以的哦,這裡是将數字 轉換成了 字元串哦 也就是數字57,變成了字元串"57"被放入占位的地方
數字類型,也太沒有地位了吧,竟然要被轉成字元串拼接。
有沒有體面一點的方式,讓數字以其原本的面貌拼接進去呢?
安排。 Python中,其實支援非常多的資料類型占位 最常用的是如下三類
格式符号 | 轉化 |
%s | 将内容轉換成字元串,放入占位位置 |
%d | 将内容轉換成整數,放入占位位置 |
%f | 将内容轉換成浮點型,放入占位位置 |
如下代碼,完成字元串、整數、浮點數,三種不同類型變量的占位
格式化的精度控制
如下代碼,完成字元串、整數、浮點數,三種不同類型變量的占位
細心的同學可能會發現: 浮點數19.99,變成了19.990000輸出 這裡我們就要講解一下,字元串格式化之“數字精度控制”
我們可以使用輔助符号"m.n"來控制資料的寬度和精度
m,控制寬度,要求是數字(很少使用),設定的寬度小于數字自身,不生效 .
n,控制小數點精度,要求是數字,會進行小數的四舍五入
示例: %5d:表示将整數的寬度控制在5位,如數字11,被設定為5d,就會變成:[空格][空格][空格]11,用三個空格補足寬度。
%5.2f:表示将寬度控制為5,将小數點精度設定為2 小數點和小數部分也算入寬度計算。如,對11.345設定了%7.2f 後,結果是:[空格][空格]11.35。2個空格補足寬度,小數部分限制2位精度後,四舍五入為 .35
%.2f:表示不限制寬度,隻設定小數點精度為2,如11.345設定%.2f後,結果是11.35
字元串格式化方式2
目前通過%符号占位已經很友善了,還能進行精度控制。 可是追求效率和優雅的Python,是否有更加優雅的方式解決問題呢?
那當然:有 通過文法:f"内容{變量}"的格式來快速格式化 看如下代碼
這種寫法不做精度控制
也不理會類型
适用于快速格式化字元串
對表達式進行格式化
剛剛的示範,都是基于變量的。
可是,我想更加優雅些,少寫點代碼,直接對“表達式”進行格式化是否可行呢?
那麼,我們先了解一下什麼是表達式。
表達式:一條具有明确執行結果的代碼語句 如: 1 + 1、5 * 2,就是表達式
,因為有具體的結果,結果是一個數字 又或者,常見的變量定義: name = “張三” age = 11 + 11 等号右側的都是表達式呢,因為它們有具體的結果,結果指派給了等号左側的變量。
那麼,對于字元串格式化,能否直接格式化一個表達式呢? 可以,上代碼: