python循环语句(第十节)

落爺英雄遲暮 提交于 2019-12-03 21:07:23

(一)while循环

代码:

a = ('我是谁?','我在哪里?','我在做什么?')
i = 0
while i < len(a):
    print(a[i],end='')
    i+=1

结果:

我是谁?我在哪里?我在做什么?

  

(二)for循环

(1)求50到100的质数:

代码:

'''求50到100之间的质数
求一个数是否质数,将这个数n,循环与 2 到 这个n的开平方 进行相除
如果这个区间内的所有整数不能整除n,则n为质数。'''
import math#导入math为了开方
for i in range(50, 100 + 1):
    for j in range(2, int(math.sqrt(i)) + 1):
        #range()函数产生的是一个从 m至n-1的整数列表,因而需要‘+1’
        if i % j == 0:#能整除不是质数
            break
    else:
        print (i,end=' ')

结果:

53 59 61 67 71 73 79 83 89 97 

  

2)isinstance() 函数用于判断某个变量是否为指定类型的实例。

代码:

a = (1,2,3,4,5,6,7,8,9,'a','s','d')
count = 0
sum = 0
for ele in a:
    if isinstance(ele,int) or isinstance(ele,float):
        print(ele,end='')
        #累加该元素
        sum += ele
        #count加1
        count += 1
print('\n')
print('总和:',sum)
print('平均数:',sum/count)

结果:

123456789

总和: 45
平均数: 5.0

  

(三)循环中的else

代码:

a = ('A:看我干啥?','B:看你咋的!','A:干啊!','B:干!')
for ele in a:
    print(ele)
else:#访问循环计数器的值,依然等于最后一个元素的值
    print(ele)

结果:

A:看我干啥?
B:看你咋的!
A:干啊!
B:干!
B:干!

  

 (四)循环嵌套

代码:

a = range(0,3)
for i in a:
    j = 0
    while j < 3:
        print("i的值为:%d,j的值为:%d"%(i,j))
        j+=1

结果:

i的值为:0,j的值为:0
i的值为:0,j的值为:1
i的值为:0,j的值为:2
i的值为:1,j的值为:0
i的值为:1,j的值为:1
i的值为:1,j的值为:2
i的值为:2,j的值为:0
i的值为:2,j的值为:1
i的值为:2,j的值为:2

 

(五)跳出当前循环体

break 用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到 break,系统就将完全结束该循环,开始执行循环之后的代码。

代码:

a = range(0,5)
print('a的序列为:')
for j in a:
    print(j,end='')
print(j)
for i in a:
   print('i的值是:%d'%i)
   if i == 2:
       #执行该语句时将结束循环
    break

结果:

a的序列为:
012344
i的值是:0
i的值是:1
i的值是:2

 

(六)直接执行下次循环

continue 语句的作用则没有break那么强大,它只能终止本次循环而继续执行下一次循环。

代码:

a = ('你是傻子吗?','不是','不!你是')
for i in a :
        print(i)
        #如果i==‘不是’,则不执行内部语句,直接跳出,进行下次循环
        if i == '不是' :
            # 忽略本次循环的剩下语句
            continue
        print("接下来要执行的语句")

结果:

你是傻子吗?
接下来要执行的语句
不是
不!你是
接下来要执行的语句

  

(七)循环搭配使用的函数

(1)zip函数

zip() 函数可以把两个列表“压缩”成一个 zip 对象(可迭代对象),这样就可以使用一个循环并行遍历两个列表。

代码:

a = ['我是小可爱吗?','我是小仙女吗?','我是小瘦子吗?']
b = ['不!你不是!','不!你不是!','不!你真的不是!']
#使用zip()函数压缩两个列表,从而实行并行便利
for a1,b1,in zip(a,b):
    print('A:%s\nB:%s'%(a1,b1))

结果:

A:我是小可爱吗?
B:不!你不是!
A:我是小仙女吗?
B:不!你不是!
A:我是小瘦子吗?
B:不!你真的不是!

  

2)reversed函数

reversed()函数用于反向遍历。

代码:

a = ['sd','df',2,3,5]
for x in reversed(a):
    print(x,end=' ')

结果:

5 3 2 df sd

  

(3)sorted函数

sorted()函数用于从小到大排序。

代码:

a = ['我','我和','我和我的祖国','我和我','我和我的祖']
#key = len 按照字符串的长度排序
for a1 in sorted(a,key=len):
    print(a1)

代码:

我
我和
我和我
我和我的祖
我和我的祖国

  

  

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!