1. 程式人生 > >(D04) Python- 字串切片 格式化表示式 while語句 break for語句 range函式 列表

(D04) Python- 字串切片 格式化表示式 while語句 break for語句 range函式 列表

字串Str


字串的 索引,切片

  • 索引
    • 取出一個字元
  • 切片:
    • 取出一些字元重新組成字串
  • 索引的語法:
    • 字串[整數表示式]
  • 切片的語法:
    • 字串[開始索引:結束索引:步長]

函式:

  • chr(整數) # 轉為字串(只包含一個字元)

  • ord(一個字元) # 轉為整數編碼值

  • bin(i) # 二進位制

  • oct(i) # 八進位制

  • hex(i) # 十六進位制

  • str(obj) 將物件轉為字串

字串常用的方法:

  S.isdigit()
  S.isalpha()
  S.islower()
  S.isupper()
  S.isspace()
  S.center(width, fill=' ')
  S.count(sub, start, end)
  S.find(...)
  S.strip([char]) / S.lstrip()  S.rstrip()
  S.upper()  / S.lower()
  S.replace(old, new)
  S.startswith(字串)  / S.endswith(字串)

字串的格式化表示式

   "姓名: %s, 姓別:%s, 年齡:%d" % ("小張", "男",20)
   常用的佔位符和型別碼:
      %s
      %d
      %f  %7.2f  %-7.2f  %+7.2f %07.2f

while 語句 (迴圈語句)

  • 語法:
    • while 真值表達式:
      • 可能重複執行的語句塊
    • else:
      • 語句塊2

練習:

  1. 輸入一個整數n代表結束的數值,求下列表達式的和
    1 + 2 + 3 + 4 + .... + (n-1) + n的和
    如:
      請輸入: 100
    列印:
       5050

while語句的注意事項:

1. 要控制迴圈的真值表達式的值來防止死迴圈
2. 通常用真值表達式內的迴圈變數來控制迴圈條件
3. 通常在語句內部改變迴圈變數

while 語句巢狀:

  • while 語句本身就是語句,和其它語句一樣,可以巢狀到
    任何的複合語句中

示意:

  while 真值表達式:
      ....
      while 真值表達式2:
          ....
      else:
          ...
      ...
  else:
      ...

練習:

  輸入一個整數n,列印指定寬度的正方形
  如:
    請輸入: 5
  列印:
    1 2 3 4 5
    1 2 3 4 5
    1 2 3 4 5
    1 2 3 4 5
    1 2 3 4 5
  如:
    請輸入: 3
  列印:
    1 2 3
    1 2 3
    1 2 3

break 語句

  • 問題:
    • 如果在迴圈過程中不想再繼續迴圈語句的執行了,怎麼辦?

作用:

  • 用於迴圈語句(while,for語句)中,用來終止當前迴圈語句的執行.

說明:

  • 當break語句執行後,此迴圈語句break之後的語句將不再執行
  • break 語句通常和if語句組合使用
  • break 語句終止迴圈時,迴圈語句的else子句的語句不會執行
  • break 語句只能終止當前迴圈語句的執行,如果有迴圈巢狀時,不會跳出巢狀的外重迴圈
  • break語句只能在迴圈語句(while,for語句)的內部使用

死迴圈

  • 死迴圈是指迴圈條件一直成立的迴圈
  • 死迴圈能通常用break語句來終止迴圈
  • 死迴圈的else子句永遠不會執行


迴圈語句:

  • while語句
  • for語句

for語句

  • 作用:
    • 用來遍歷可迭代物件的資料元素
      • 可迭代物件是指能依次獲取資料元素的物件

如:

  • 字串,列表,元組,range函式返回的物件等

語法:

for 變數列表 in 可迭代物件:
    語句塊1(此處是可能重複執行的語句塊)
else:
    語句塊2

說明:

  • 當在迴圈體內用break終止迴圈時,else子句部分的語
    句不會執行
  • else子句部分可以省略

練習:

  任意輸入一段字串
    1) 計算出字串中空格的個數
    2) 計算出字串中中文字元的個數
       (注: 中文 字元的編碼值一定大於128,可用ord判斷)

range() 函式:

  • range(stop) 用來生成0~stop區間內的整數,直到stop為
    止(不包含stop)
  • range(start, stop[,step]) 用來生成start~stop區
    間內的整數,直到stop為止(不包含stop),
    每個整數間隔step

作用:
- 用來建立一個生成一系列整數的可迭代物件(也叫整數序列
生成器)
示意:

    range(4)       生成 0, 1, 2, 3
    range(3, 6)     生成 3, 4, 5
    range(1, 10, 2) 生成 1, 3, 5, 7, 9
    range(5, 0, -1) 生成 5, 4, 3, 2, 1
    range(5, 0, -2) 生成 5, 3, 1
    range(4, 0)     生成 空

練習:

  1. 列印 1 ~ 20的整數,列印在一行(用for語句實現)

  2. 計算 1 + 2 + 3 + 4 + … + 99 + 100的和
    (用for和range實現)

  3. 計算 1 + 3 + 5 + 7 + … + 97 + 99的和
    (用for語句實現)

for語句巢狀:

  • 示例:
    • for x in “ABC”:
      • for y in “123”:
        • print(x + y)

continue 語句
問題:

  • 如何讓程式不再向下執行,重新開始一次新的迴圈?

作用:

  • 用於迴圈語句(while,for)中,不再執行本次迴圈內
  • continue之後的語句,重新開始一次新的迴圈

說明:
1. 在while語句中執行continue語句,將會直接跳轉到
while語句的真值表達式處,重新判斷迴圈條件
2. 在for語句中執行continue語句,將會從可迭代物件
中取下一個資料繫結變數後再次進行迴圈

練習:
求:1 ~ 100之間所有不能被 2, 3, 5, 7整除的數的和

迴圈總結:

  while 語句
  for 語句
      字串str
      range() 函式返回的物件
  break 語句
  continue 語句

問題:

  • 容器
    • 如何將計算機運算的資料臨時存入一個地方,同時又
      方便新增,刪除,修改,檢視等操作

列表 list

  • 列表是一種容器
  • 列表是可以被改變的序列容器

建立空列表的字面值

  • L = [] # L 繫結一個新建立的空列表

建立非空列表的字面值:

  • L = [1, 2, 3, 4]
  • L = [“北京”, “上海”, “深圳”]
  • L = [1, “二”, 3.14, “Four”]
  • L = [1, 2, [3.1, 3.2, 3.3], 4]

列表的構造(建立)函式 list

  • list() 建立一個空的列表,等同於[]
  • list(iterable) 用可迭代物件建立一個列表
    示例:
    • L = list() # L繫結空列表
    • L = list(“hello”) #L繫結[‘h’,‘e’,‘l’,‘l’,‘o’]
    • L = list(range(10)) # L繫結[0,1,2,3…9]

列表的運算:

  • 算術運算子
    • += * *=

示例:

    • 加號用於拼接列表
  • x = [1, 2, 3]
  • y = [4, 5, 6]
    -z = x + y # z = [1, 2, 3, 4, 5, 6]
  • += 用於原列表與右側可迭代物件進行拼接,用變數繫結列表

語法:

  • x += 可迭代物件

如:

  • x = [1, 2, 3]
  • y = [4, 5, 6]
  • x += y # x繫結[1, 2, 3, 4, 5, 6]

生成重複的列表

  • = 讓原列表重複n次再用原變數繫結
  • x = [1, 2] * 3 # x =[1, 2, 1, 2, 1, 2]
  • x = [1, 2]
  • x *= 2 # x = [1, 2, 1, 2]

練習:

		  1.輸入一個整數n,此整數代表三角形的直角邊長
		     根據整數n列印如下四種三角形
		       請輸入: 3
		    列印如下:
		      1)
		        *
		        **
		        ***
		      2)
		          *
		         **
		        ***
		      3)
		        ***
		        **
		        *
		      4)
		        ***
		         **
		          *
		
		 2. 寫一個程式,任意輸入一個整數,判斷這個整數是否是素數(prime)
		   素數(也叫質數), 只能被1和自身整除的正整數
		     如:   2 3 5 7 11 13 17 19
		    提示:
		      用排除法,當判斷x是否為素數時,只要讓x分別除以
		      2, 3, 4, ... x-1 ,只要有一個能整除,則x不是
		      素數,否則x是素數
		
		  3. 輸入一個正整數代表正方形的寬和高,列印如下正方形
		    如
		      請輸入: 5
		    列印:
		      1 2 3 4 5
		      2 3 4 5 6
		      3 4 5 6 7
		      4 5 6 7 8
		      5 6 7 8 9
		    如
		      請輸入: 3
		    列印:
		      1 2 3
		      2 3 4
		      3 4 5