chapter6 迭代和循环
- for语句
在python中最常用的循环是for语句,常与列表list共同使用,注意for语句的格式。
计算列表中元素的平均值
for value in [0,1,2,3,4,5]:
print(value*value)
0
1
4
9
16
25
计算列表中所有元素的和
mylist=[1,5,7]
s=0
for val in mylist:
s=s+val
print(s)
13
利用列表的索引。range(n)函数,生成0:n的一个列表,包括0不包括n.
mylist=[1,5,7]
for i in range(len(mylist)):
print("Index:",i,"Value:",mylist[i])
Index: 0 Value: 1
Index: 1 Value: 5
Index: 2 Value: 7
枚举函数enumerate(),同时考虑到一个列表的索引和对应的元素。
mylist=[1,5,7]
for i,val in enumerate(mylist):
print("Index:",i,"Value:",mylist[i])
Index: 0 Value: 1
Index: 1 Value: 5
Index: 2 Value: 7
choose_max(list)函数,选择列表中元素的最大值
l=[3,1,6,2]
def choose_max(ls):
m=0
for i in ls:
if i>m:
m=i
return m
print(choose_max(l))
6
返回列表中元素最大值,及其位置
l=[3,1,6,2]
def choose_max(ls):
m=0
for i,val in enumerate(ls):
if val>m:
m=val
index=i
return [m,index]
print(choose_max(l))
[6, 2]
reverse(list)函数,将列表换向(原来在末尾的元素放置最前)
l=[1,2,3,4,5,6]
def reverse(ls):
sl=[]
for val in ls:
sl.insert(0,val)
return sl
print(reverse(l))
[6, 5, 4, 3, 2, 1]
is_sorted(list)函数,判断列表中的元素是否按升序排列。
l1=[1,2,3,4,4]
l2=[1,2,3,4,3]
def is_sorted(ls):
flag=True
for i in range(len(ls)):
if i!=0:
if ls[i-1]>ls[i]:
flag=False
return flag
print(is_sorted(l1))
print(is_sorted(l2))
True
False
has_duplicates(list)函数,判断一个列表中是否有重复的元素。 range(a,b)函数,生成a-b的整数列,包括a不包括b.
l1=[1,2,3,4,5]
l2=[1,2,3,2,4]
def has_duplicates(ls):
flag=False
for i in range(len(ls)):
for m in range(i+1,len(ls)):
if ls[i]==ls[m]:
flag=True
return flag
print(has_duplicates(l1))
print(has_duplicates(l2))
False
True
- while语句
while后的条件为真时,进行循环,不为真退出。
注意:循环的语句要对判断条件有所影响,否则会陷入死循环。
n=10
while n>0:
print(n)
n=n-1
10
9
8
7
6
5
4
3
2
1
判断奇偶
n=10
while n>0:
if n%2==0:
print("Even number:",n)
else:
print("Odd number:",n)
n=n-1
Even number: 10
Odd number: 9
Even number: 8
Odd number: 7
Even number: 6
Odd number: 5
Even number: 4
Odd number: 3
Even number: 2
Odd number: 1