python基础学习笔记(三)——循环for and while

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

猜你喜欢

转载自blog.csdn.net/AndesStay/article/details/82530901