Python學習記 (5)for迴圈和List

2021-08-20 14:11:10 字數 4811 閱讀 7711

for語句

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

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

可迭代物件包括:

------以下以後再講------

語法:

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

語句塊1

else:

語句塊2

示例:

s = 'abcde'

for ch in s:

print('ch-->>',ch)

else:

print('可迭代物件已經不能再提供資料了!')

print('程式結束')

#輸出結果如下:

ch-->> a

ch-->> b

ch-->> c

ch-->> d

ch-->> e

可迭代物件已經不能再提供資料了!

程式結束

練習:

1、任意輸入乙個字串:

mystr = input('輸入一串字串:')

a_count = 0

for char in mystr:

if char == 'a':

a_count += 1

else:

print('空格的數量是:',mystr.count(' '))

print('a的數量是:',a_count)

mystr = input('輸入一串字串:')

a_count = 0

i=0while i< len(mystr)

char =mystr[i]

if char == 'a':

a_count += 1

i+=1

else:

print('空格的數量是:',mystr.count(' '))

print('a的數量是:',a_count)

range函式

格式:見》help(range)

函式range(stop):從零開始,每次生成乙個整數後加1操作,直到stop為止(不包含)

range(star,stop[,step]):從start開始,每次生成乙個整數後移動step,直到stop為止(不包含stop,且step可以是負整數)

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

示例

range(4)             #生成 0,1,2,3

range(3,6) #生成 3,4,5

range(1,10,2) #生成 1,3,5,7,9

for i in range(5):

print(i)

練習:用for語句列印1~20,列印在一行內

用for語句列印1~20,每5個列印在一行內

for i in range(1, 21):

print(i, end=' ')

else:

print()

for i in range(1, 21):

print(i, end=' ')

if i % 5 == 0:

print()

練習:求100以內在那些數與自身+1的乘積對11求餘的結果等於8

計算1+3+5+7+....+97+99的和分別用for迴圈和while語句來實現

for i in range(100):

if (i * (i + 1)) % 11 == 8:

print( i )

#for

sum=0

for i in range(1,100,2):

sum+=i

else:

print(sum)

#while

sum=0

i=1while i< 100:

sum+=i

i+=2

else:

print(sum)

for語句的注意事項:

請問下面程式的列印結果是什麼:

i=6

for x in range(1, i):

print('x=',x,'i=',i)

i -= 1 #<<<---注意此處

結果:x= 1 i= 6

x= 2 i= 5

x= 3 i= 4

x= 4 i= 3

x= 5 i= 2

range函式為一次性函式,執行過一次之後,返回結果後,不再執行

for語句的巢狀

示例:

for x in 'abc':

for y in '123':

print(x + y)

練習:

輸入乙個整數n,列印乙個對應的正方形:

如:請輸入5

列印:1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

輸入乙個整數n,列印乙個對應的正方形:

如:請輸入5

列印:1 2 3 4 5

2 3 4 5 6

3 4 5 6 7 

4 5 6 7 8

n = int(input('請輸入乙個數字:'))

for i in range(1,n+1):

for j in range(1,n+1):

print(j, end=' ')

print()

n = int(input('請輸入乙個數字:'))

for i in range(n):

for j in range(i + 1,i + n + 1):

print('%02d' % j, end=' ')

print()

continue語句

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

說明:在for語句中執行continue語句,將會從迭代物件中取下乙個元素,繫結變數後再次執行

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

練習:輸入乙個起始數用start繫結,輸入乙個結束數用stop繫結,列印start到stop(不包含stop)內的所有奇數(用什麼方法都可以)

start=int(input('start:'))

stop=int(input('stop:'))

for i in range(start,stop):

if i%2==1:

print(i)

for i in range(start,stop):

if i%2==0:

continue

print(i)

練習:求1~100之間所有不能被5/7/11整除的數以及這些數的和

sum=0

i=1while i<100:

if (i%5==0) or (i%7==0) or (i%11==0):

i+=1

continue

print(i)

sum+=i

i+=1

print(sum)

列表的定義:

建立空列表的字面值

l=     #l變數繫結空列表
建立非空列表的字面值

l=[1,2,3,4]

l=['beijing','shanghai','shenzhen']

l=[1,'two',3.14,'四']

列表的建構函式 list

list()              #生成乙個空的列表

list(iteable) #用可迭代物件建立乙個列表

方法

意義

l.index(v [, begin[, end]])

返回對應元素的索引下標, begin為開始索引,end為結束索引,當 value 不存在時觸發valueerror錯誤

l.insert(index, obj)

將某個元素插放到列表中指定的位置

l.count(x)

返回列表中元素的個數

l.remove(x)

從列表中刪除第一次出現在列表中的值

l.copy()

複製此列表(只複製一層,不會複製深層物件)

向列表中追加單個元素

l.extend(lst)

向列表追加另乙個列表

l.clear()

清空列表,等同於 l[:] =

l.sort(reverse=false)

將列表中的元素進行排序,預設順序按值的小到大的順序排列

l.reverse()

列表的反轉,用來改變原列表的先後順序

l.pop([index])

刪除索引對應的元素,如果不加索引,預設刪除最後元素,同時返回刪除元素的引用關係

python學習筆記(5) for和while

可以讓計算機重複和自動的執行 一 for.in.迴圈語句 for i in range 1,5 print str i 取錢 print i 4 列表 for in in 1,2,3,4,5 print str i 取錢 print i 5 字典city for i in city print i ...

python3筆記5 迴圈語句

在python中的迴圈語句有for迴圈和while迴圈。一 for迴圈 for迴圈可以遍歷自己想要的任何序列的專案,比如列表,字典,元組,字串等。1 for迴圈的一般格式for 變數 in 序列 塊 如下舉例 names alice tom rose edison for name in names...

go學習記 (8)迴圈

字串遍歷package main import fmt func main 解決辦法 var str1 string 你好 str2 rune str1 for i 0 i len str2 i for range 預設使用字元方式遍歷,因此有中文也是ok的 for index,val range ...