1. 程式人生 > >Python-常用語句-列表

Python-常用語句-列表

for語句

作用:

用來遍歷可迭代物件的資料元素

可迭代物件是指能依次獲取資料元素的物件

可迭代物件包括

Str字串

list列表

tople元祖

dict字典

set 集合 整數不能用for語句迭代,只能用while

for語句用法:

for 變數列表 in可迭代物件:

​ 語句塊1

else:

​ 語句塊2

練習

任意輸入一個字串,判斷這個字串有幾個“”空格

用for語句

s=input(“請輸入字串:”)

p=0

for i in s:

​ if i==" ":,

​ p+=1

print(“有”,p,“個空格”)

for 語法說明:

\1. 可迭代物件每次提供一個元素一次賦值給變數列表中的變數,賦值完畢後執行語句塊1,重複此步驟,直到可迭代物件不能提供資料為止

\2. 可迭代物件提供完所有元素後,執行else子句部分的語句塊2,然後退出此for語句

\3. else子句部分可省略,同while語句類似

\4. 當在迴圈內部用break語句終止迴圈時,else子句部分的語句不會執行

range函式

格式見:>>>help

函式:

range(stop) 從零開始,每次生成一個整數後加1操作

直到stop為止,(不包含stop)

range[start,stop[,step] 從star開始,每次生成一個整數後移動step,直到stop為止

,不包含stop,且step可以是負整數

作用:

​ 用來建立一個生成一系列整數的可迭代物件,也叫整數序列生成器

說明:

​ range返回的物件是可迭代物件,可以用於for語句中、

range(4) 0,1,2,3

range(3,6)3,4,5,

range(1,10,2)1,3,5,7,9

range(5,1,-2) 5,3,1

range(4,0) 空

練習:

用for語句列印1-20語句列印在一行

求100以內有哪些整數與自身+1的成績在對11求餘結果等於8

計算1,+3+5+7+…99的和

用while 和for兩種語句實現

for語句的巢狀:

for語句內部可以放任意語句,包括for語句和while語句

示例:

for x in “asf”:

​ for y in “1234”:

print(x+y)

​ Count=0

​ for x in range(5): 0,1,2,3,4

​ for y in range(10): 0 1 2 3 4 5 6 7 8 9

​ Count+=1

​ print(count)

​ print(4,9)

continue 語句

作用:

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

說明:

在while語句中,執行continue語句將會直接跳轉到while語句的真值表達式出重新判斷迴圈條件

在for語句中,執行continue語句,將會從可迭代物件取下一個元素,繫結變數之後再次進行迴圈

示例:見continue.py

​ for x in range(5):

​ If x==2:

​ continue

​ print(x)

練習:

輸入一個整數,用begin繫結再輸入一個整數用end繫結,打印出從begin到end的所有整數

用while迴圈列印十以內的偶數

求1-100(包括100)之間所有不能被5,7,11,整除的數的和是多少

迴圈總結:

While

For

​ -字串

​ -range()函式

​ -break語句

​ -continue語句

練習:

輸入一個整數n,判斷這個整數是否是素數(只能被1和自身整除的數)

如:

​ 2,3,5,7,11.。。。

方法:

用排除法 一旦 n能被2~n-1整除就不是素數,否則就一定是素數

列表list:

​ 列表是由以一系列特定元素組成的,元素和元素之間沒有任何關聯關係,

​ 但是他們之間有先後順序關係

​ 列表是一種容器

​ 列表是序列的一種

​ 列表是可以被改變的序列

Python中的序列型別簡介

字串

列表

元祖

位元組串

位元組陣列

建立空列表的字面值:

L=[]

​ 建立非空列表:

​ L=[1,2,3,4]

​ L=[“北極”,“浙江”,“上海”]

​ L=[1,“2”,“是的”,5]

​ L=[1,2,34,”sds”[1,2,36,8,”wefwe”],45,56]

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

list() 生成一個空的列表 等同於[]

list(iterable)用可迭代物件建立一個列表

示例:

L=list() L=空列表

L=list(“ABCD”)à[”A” ”B” “C” “d”]

L=list(range(1,10,2))

>>> l=list(“asdf”)

>>> l

[‘a’, ‘s’, ‘d’, ‘f’]

列表運算:

+ += * *=

+ 用於拼接列表

X=[1,2,3]

Y=[3,5,6]

Z=x+y=[1,2,3,3,5,6]

+= 用於原列表左側可迭代物件進行拼接,生成新的列表

X=[1,2,3]

X +=[4,5,6] à x=[1,2,3,4,5,6]

X=[1,2,3]

X+=”qwe” à??

* 生成重複列表

X=[1,2,3]*2 x=[1,2,3,1,2,3]

*=生成重複列表,同時用變數繫結新列表

X=[1,2]

X*=3 x=[1,2,1,2,1,2]

列表的比較運算:

​ 運算子:

​ < <= > >= == !=

​ x=[1,2,3]

​ y=[2,3,4]

x!=y True

x>[1,2] True

x<y True

[1,3,2]>[1,2,3] True

[“ab”,”cd”]>[“ac”,”bd”] False

[1,”two”] >[“two”,1] TypeError

練習:

1/1 1/3 1/5 1/7…

i=int(input(“請輸入一個數:”))

m=1

sum=0.0

while m<=i:

​ sum+=1/m

​ m+=2

print(sum)

輸入一個整數 代表樹幹的高度

列印一顆聖誕樹

i=int(input("請輸入一個數:"))

m=1

s=1

while m<=i:

​    print((i-m)*" ",(2*m-1)*"*")

​    m+=1

else:

​    while s<= i:

​        print((i-1)*" ","*")

​        s+=1

算出 100~999以內的水仙花數(水仙花數是指百位的三次方加上視為的三次方加上格紋的三次方等於原數的數字))

153 =13+53+3**3,370

i=100

while 100<=i<=999:

​    if (i%10)**3+((i//10)%10)**3+((i//100)%10)**3==i:

​        print(i)

​        i+=1

​    i+=1