Python學習筆記:第2天while循
- 2020 年 1 月 19 日
- 筆記
目錄
1. while循環
while循環的使用:
while 條件: while語句 ... 其他語句
while循環是先判斷給的條件是否為真,如果真則執行循環體中的while語句,否則跳出循環;執行循環體之後再次判斷條件是否為真。
使用while循環一定要有某種機制修改調製使其退出循環,通常是在循環體里修改條件
sum = 0 num = 1 while num <= 100: # 使用while循環求1-100所有數的和 sum += num num += 1 else: print('num的值為 %s' %sum)
continue、break和else語句
continue和break用於終止或跳過循環,else是當循環沒有提前退出時,循環結束後執行的語句:
- continue: 跳過本次循環,直接進行下一次循環;
- break: 直接跳出本層循環,提前終止
- else: else是在循環結束後執行的語句
如果循環是通過break退出的. 那麼while後⾯的else將不會被執⾏, 只有在while條件判斷是假的時候才會執⾏這個 else
tryTimes = 0 while tryTimes < 3: num = int(input('請輸入您理想的數字(輸入-1退出程序):')) if num == -1: break if num > 66: print('您猜測的結果大了!') elif num < 66: print('您猜測的結果小了!') else: print('恭喜您猜對了') break # 輸入的數字正確時,直接使用break跳出語句 tryTimes += 1 else: # 循環結束後執行的語句,而如果是break跳出的循環,這裡的語句就不會執行 print('你太笨了')
2. 格式化輸出
在字符串中使用佔位符在格式化字符串的輸出,%s就是代表字符串佔位符,除此之外,還有%d, 是數字佔位符
name = input("Name:") age = input("Age:") job = input("Job:") hobby = input("Hobbie:") info = ''' ------------ info of %s ----------- #這⾥的每個%s就是⼀個佔位符,本⾏的代表 後⾯拓號⾥的 name Name : %s #代表 name Age : %s #代表 age job : %s #代表 job Hobbie: %s #代表 hobbie ------------- end -----------------''' % (name,name,age,job,hobbie) # 這⾏的 % 號就是 把前⾯的字符串 與拓號 後⾯的 變量 關聯起來
3. 運算符
計算機可以進⾏的運算有很多種,可不只加減乘除這麼簡單,運算按種類可分為:
- 算數運算、
- ⽐較運算、
- 賦值運算
- 邏輯運算、
- 賦值運算、
- 成員運算、
- 身份運算、
- 位運算. 這裡學習算數運算、⽐較運算、賦值運算、邏輯運算、成員運算符:
3.1 算數運算
以下假設變量: a=10,b=20:
運算符 |
描述 |
實例 |
---|---|---|
+ |
加-兩個對象相加 |
a + b 輸出結果 30 |
– |
減 – 得到負數或是一個數減去另一個數 |
a – b 輸出結果 -10 |
* |
乘 – 兩個數相乘或是返回一個被重複若干次的字符串 |
a * b 輸出結果 200 |
/ |
除 – x除以y |
b / a 輸出結果 2 |
% |
取模 – 返回除法的餘數 |
b % a 輸出結果 0 |
** |
冪 – 返回x的y次冪 |
a**b 為10的20次方, 輸出結果 100000000000000000000 |
// |
取整除 – 返回商的整數部分(向下取整) |
9//2 輸出結果 4 , 9.0//2.0 輸出結果 4.0 |
3.2 比較運算符
以下假設變量a為10,變量b為20:
運算符 |
描述 |
實例 |
---|---|---|
== |
等於 – 比較對象是否相等 |
(a == b) 返回 False。 |
!= |
不等於 – 比較兩個對象是否不相等 |
(a != b) 返回 true. |
<> |
不等於 – 比較兩個對象是否不相等 |
(a <> b) 返回 true。這個運算符類似 != 。 |
> |
大於 – 返回x是否大於y |
(a > b) 返回 False。 |
< |
小於 – 返回x是否小於y。返回1表示真,返回0表示假。與True和False等價。 |
(a < b) 返回 true。 |
>= |
大於等於 – 返回x是否大於等於y。 |
(a >= b) 返回 False。 |
<= |
小於等於 – 返回x是否小於等於y。 |
(a <= b) 返回 true。 |
3.3 賦值運算符
以下假設變量a為10,變量b為20:
運算符 |
描述 |
實例 |
---|---|---|
= |
簡單的賦值運算符 |
c = a + b 將 a + b 的運算結果賦值為 c |
+= |
加法賦值運算符 |
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 |
3.4 邏輯運算符
Python語言支持邏輯運算符,以下假設變量 a 為 10, b為 20:
運算符 |
邏輯表達式 |
描述 |
實例 |
---|---|---|---|
and |
x and y |
布爾"與" – 如果 x 為 False,x and y 返回 False,否則它返回 y 的計算值。 |
(a and b) 返回 20。 |
or |
x or y |
布爾"或" – 如果 x 是非 0,它返回 x 的值,否則它返回 y 的計算值。 |
(a or b) 返回 10。 |
not |
not x |
布爾"非" – 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。 |
not(a and b) 返回 False |
- 針對邏輯運算的進⼀步研究:
- 在沒有()的情況下not 優先級⾼於 and,and優先級⾼於or,即優先級關係為( )>not>and>or,同⼀優先級從左往右計算。
- () > not > and > or
- x or y , x為真,值就是x,x為假,值是y;
- x and y, x為真,值是y,x為假,值是x。

下面是邏輯運算符計算的一些例子:
1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 # True not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 # False 8 or 3 and 4 or 2 and 0 or 9 and 7 # 8 0 or 2 and 3 and 4 or 6 and 0 or 3 # 4 6 or 2 > 1 # 6 3 or 2 > 1 # 3 0 or 5 < 4 # False 5 < 4 or 3 # 3 2 > 1 or 6 # Ture 3 and 2 > 1 # True 0 and 3 > 1 # 0 2 > 1 and 3 # 3 3 > 1 and 0 # 0 3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2 # 2
3.5 成員運算符
除了以上的一些運算符之外,Python還支持成員運算符,測試實例中包含了一系列的成員,包括字符串,列表或元組。
運算符 |
描述 |
實例 |
---|---|---|
in |
如果在指定的序列中找到值返回 True,否則返回 False。 |
x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in |
如果在指定的序列中沒有找到值返回 True,否則返回 False。 |
x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
3.6 身份運算符
身份運算符用於比較兩個對象的存儲單元
運算符 |
描述 |
實例 |
---|---|---|
is |
is 是判斷兩個標識符是不是引用自一個對象 |
x is y, 類似 id(x) == id(y) , 如果引用的是同一個對象則返回 True,否則返回 False |
is not |
is not 是判斷兩個標識符是不是引用自不同對象 |
x is not y , 類似 id(a) != id(b)。如果引用的不是同一個對象則返回結果 True,否則返回 False。 |
3.7 運算符優先級
以下表格列出了從最高到最低優先級的所有運算符:
運算符 |
描述 |
---|---|
** |
指數 (最高優先級) |
~ + – |
按位翻轉, 一元加號和減號 (最後兩個的方法名為 +@ 和 -@) |
* / % // |
乘,除,取模和取整除 |
+ – |
加法減法 |
<= < > >= |
比較運算符 |
<> == != |
等於運算符 |
= %= /= //= -= += *= **= |
賦值運算符 |
is is not |
身份運算符 |
in not in |
成員運算符 |
not and or |
邏輯運算符 |
4. 字符編碼
Python3字符串默認使用utf-8編碼,所有的編碼都是以ASCII碼為基礎的。
幾種編碼的介紹:
- ASCII : 8bit 一個位元組(實際上只用到7個位元組).
- GB-2312 :國標碼,僅能存儲簡體中文字符
- GBK:國標碼的擴展碼,佔用16bit 2byte
- UNICODE:萬國碼, 32bit 4byte
- UTF-8:utf-8 可變長度的unicode
- 英文佔用1byte
- 歐洲文字 佔用2byte
- 中文 佔用3byte