目錄
- 輸入輸出和運算子
- 一、輸入和輸出
- 1.1 輸出
- 1.2 輸入
- 二、運算子和運算式
- 2.1 運算式
- 2.2 運算子
- 2.2.1 算術運算子
- 加法:+
- 減法:-
- 乘法:*
- 冪:**
- 除法:/
- 整除(經典除法)://
- 取余(取模):%
- 2.2.2 賦值運算子
- 2.2.3 比較運算子
- 2.2.1 算術運算子
- 注意:
- 2.2.4 邏輯運算子
- 邏輯非:not
- 邏輯與:and
- 邏輯或:or
- 2.2.4 邏輯運算子
- 一、輸入和輸出
- 三、運算子的優先級
- 2.2.7 與數字型別相關的幾個內置函式
輸入輸出和運算子
一、輸入和輸出
1.1 輸出
`print()`函式用來向終端輸出資料(其實也可以向檔案輸出資料,后面再講)
-
可以傳遞多個引數,則輸出的時候 python 會把多個引數的值用空格隔開,
print("hell", "world", "你好")
-
print()函式默認會在末尾自動添加一個\n,如果不想換行則可以傳遞一個引數end=""print("hell", "world", "你好", end="") print("哈哈哈")
1.2 輸入
input() 可以獲取用戶在鍵盤的輸入,輸入的資料都會成為字串,
name = input() # 把從鍵盤輸入的資料存盤到變數 name 中
print("你的名字是:", name)

如果在用戶輸入前給用戶一個提示語,可以在 input 中傳入引數,則 python 會把傳入的引數先使用 print() 函式輸出,然后再等待用戶輸入資料,
name = input("請輸入你的姓名:")
print("你的名字是:", name)

二、運算子和運算式
2.1 運算式
我們前面撰寫的大多數代碼都包含了運算式(Expressions), 比如 2 + 3 就是一個運算式,
運算式可以可以進一步拆分為運算子(Operators)和運算元(Operands)
例如:
運算式:2 + 3 * 4
其中:
? +、* 就是運算子
? 2、3、4 就是運算元
python 提供了各種各樣的運算子,
任何的資料型別都可以作為運算元,
2.2 運算子
2.2.1 算術運算子
加法:+
當 + 的兩端都是數字時,則就是數學中的加法運算,
當 + 兩端都是字串時,則就是把兩端的字串連接起來,
注意:
- 布林值
True可以作為數字1來使用,False可以作為數字0,所以他們可以和數字相加,(學完面向物件你就是清楚, 其實bool繼承自int) - python 不允許字串和數字相加
add1 = 3 + 4
print(add1) # 7
add2 = 3 + True
print(add2) # 4
add3 = 3 + False
print(add3) # 3
add4 = True * 0
print(add4) # 0
# add5 = "a" + 3 # 錯誤!不允許字串和數字相加

減法:-
減法只能用于運算元字,
乘法:*
得到兩個數的乘積,如果有一個是字串一個是整數,則得到的重復整數次的字串,
result1 = 3 * 4.1
print(result1)
result2 = 2 * "Hello "
print(result2)
result3 = "world " * 3
print(result3)

冪:**
x ** y 回傳 x 的 y 次方 x^y
除法:/
/ 就是指的數學上的除法(也叫真除法),總能得到浮點數的值,和其他語言差別較大,
result1 = 10 / 2
print(result1)
result2 = 10 / 3
print(result2)
result3 = -11.3 / 3
print(result3)

整除(經典除法)://
整除一般用來操作兩個整數,(雖然也可以操作浮點數,但是沒人這么做)
result1 = 10 // 2
print(result1)
result2 = 10 // 3
print(result2)
result3 = -10 // 3
print(result3)
result4 = 10 // -3
print(result4)

取余(取模):%
回傳除法運算后的余數,一般用于整數取模,浮點數也可以用
result1 = 10 % 2
print(result1)
result2 = 10 % -3 # 余數的符號與除數的符號相同,
print(result2)
result3 = -10 % 3
print(result3)
result4 = -2.4 % 2 # 取模一般用于整數運算,浮點數意義不大
print(result4)

2.2.2 賦值運算子
= 賦值運算子最常見的,
還有一種叫做復合賦值運算子的,
+=
a = 3
a += 2 # 等價于 a = a + 2
print(a) # 5
算術運算子都有對應的復合賦值運算子,
2.2.3 比較運算子
比較兩個運算元大小關系,
- 如果是兩個數字則比較他們數學上的大小,
- 如果是兩個字串比較,則是比較的他們在碼表中的順序,先比較第一個字母,如果相等再比較第二個...
- 如果有布林值參與比較,則
True做1來用,False做0來用, - 數字和字串不能進行比較!
- 比較運算子計算的結果一定是布林值,
比較運算子包括以下運算子:
> 、< 、>=、<=、==、!=
其中: == 判斷兩個運算元是否相等、!= 用來判斷兩個運算元是否不等,
r1 = 3 > 2
print(r1) # True
r2 = "ab" > "b1"
print(r2) # False
r3 = True > False
print(r3) # True
r4 = 1 == True
print(r4) # True
注意:
python 中的比較運算子與其他語言最大的一個不同點是,python 中的比較運算子可以組成鏈接,只有每個運算子計算的結果都是 True ,最終的結果才會為 True,否則就是 False
r1 = 5 > 4 > 3
print(r1) # True 因為 5 大于 4是 True,并且 4 大于 3 是 True
r2 = 5 > 4 == (2 + 1)
print(r2) # False 因為 5 大于 4 是 True,但是 4 == 2 + 1 是 False
2.2.4 邏輯運算子
python 共支持 3 種邏輯運算子,
and、or、not(與,或,非)
邏輯非:not
r1 = not True
print(r1) # False
r2 = not False
print(r2) # True
注意:
- 對
not來說,結果總是True 或 False,但是運算元可以是任意型別的, - 內容為空的資料,會作為
False來對待,所以not之后會成為True
r1 = not True
print(r1) # False
r2 = not False
print(r2) # True
print(not 1) # False
print(not 0) # True
print(not "") # True
print(not []) # True
print(not ()) # True
print(not {}) # True
邏輯與:and
有一個是 False 結果就是 False
由于任何型別都可以參與運算,所以更加準確的規則應該是:
? 如果第一個是 False 或者相當于 False ,則結果就是第一個資料,否則最終的結果就應該是第二個資料,
print(False and True) # False
print(False and False) # Fasle
print(0 and True) # 0
print([] and False) # []
print([1] and 20) # 20
print("a" and [])
and 具有短路的效果,也就是說,如果第一個運算式是 False 或者相當于 False, 則不會再去判斷第二個運算式,
print(True and print("abc"))
print(False and print("bcd")) # 由于第一個運算式是 False,所以不會計算第二個運算式的值

備注:是 False 的7種資料
False、None、0、""、[]、()、{}
邏輯或:or
有一個是 True 結果就是 True
由于任何型別都可以參與運算,所以更加準確的規則應該是:
? 如果第一個是 True 或者相當于 True ,則結果就是第一個資料,否則最終的結果就應該是第二個資料,
print(True or False)
print(False or True)
print(False or False)
print(1 or False)
print("" or 100)
print([] or (2,))

or 也具有短路的效果,也就是說,如果第一個運算式是 True 或者相當于 True, 則不會再去判斷第二個運算式,
三、運算子的優先級
lambda |
Lambda expression |
|---|---|
if – else |
Conditional expression |
or |
Boolean OR |
and |
Boolean AND |
not x |
Boolean NOT |
in, not in, is, is not, <, <=, >, >=, !=, == |
Comparisons, including membership tests and identity tests |
| |
Bitwise OR |
^ |
Bitwise XOR |
& |
Bitwise AND |
<<, >> |
Shifts |
+, - |
Addition and subtraction |
*, @, /, //, % |
Multiplication, matrix multiplication division, remainder [5] |
+x, -x, ~x |
Positive, negative, bitwise NOT |
** |
Exponentiation [6] |
await x |
Await expression |
x[index], x[index:index], x(arguments...), x.attribute |
Subscription, slicing, call, attribute reference |
(expressions...), [expressions...], {key: value...}, {expressions...} |
Binding or tuple display, list display, dictionary display, set display |
優先級是從上往下越來越高,
實際使用的時候,對于不是很明確的地方,建議添加圓括號(())來更改優先級,從而可讀性更強,
比如:雖然你知道 * 的優先級高于 +,但是 代碼1 明顯要好于代碼 2
代碼1:
2 + (3 * 4)
代碼2:
2 + 3 * 4
但是括號的使用也不要濫用,比如下面的就有點濫用了,最外面的完全不需要,
(2 + (3 * 4))
2.2.7 與數字型別相關的幾個內置函式
abs(x) 回傳 x 的絕對值
引數 x 必須是整數或浮點數
int(x) 把 x 轉換為整數
x 可以說浮點數和整數,如果傳入的是字串,則字串中的字符必須是整數
float(x)把 x 轉換為 float
x 可以是浮點數、整數、字串,
pow(x, y)等價于 x ** y
print(abs(-20))
print(int(20.3))
print(int("40"))
print(float("20.4"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/162022.html
標籤:Python
下一篇:Python第四章-流程控制
