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

  • 針對邏輯運算的進⼀步研究:
  1. 在沒有()的情況下not 優先級⾼於 and,and優先級⾼於or,即優先級關係為( )>not>and>or,同⼀優先級從左往右計算。
    • () > not > and > or
  2. 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