(D04) Python- 字串切片 格式化表示式 while語句 break for語句 range函式 列表
阿新 • • 發佈:2018-12-08
字串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
- while 真值表達式:
練習:
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 ~ 20的整數,列印在一行(用for語句實現)
-
計算 1 + 2 + 3 + 4 + … + 99 + 100的和
(用for和range實現) -
計算 1 + 3 + 5 + 7 + … + 97 + 99的和
(用for語句實現)
for語句巢狀:
- 示例:
- for x in “ABC”:
- for y in “123”:
- print(x + y)
- for y in “123”:
- for x in “ABC”:
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