Python基础教程(10)while\for循环语句
一、Python while循环
while语句通过设置一个初始条件开始进行循环,每次循环都要判断循环条件的布尔值以决定循环是否继续,如果循环条件布尔值为False才会终止循环,所以在使用while循环的时候一定要设置好退出条件,比如满足xxx时就不再循环,否则就是无限循环。while语句适合循环次数未知的场景。
while [条件式]: [条件成立时执行的代码块] #通过变量来作为判断条件 flag = True while flag: [代码] flag = False
Python while循环示例
#案例1,进行0到100数字累加
sum=0
num=1
while num <= 100:
sum = sum + num
num += 1
print (sum)
#案例2
input_number = int(input("请输入一个需要从1开始累加求和的数字:"))
#相加之前数字为0
sum = 0
#用于循环计数
count = 1
while count <= input_number:
sum += count
count += 1
print({sum})
#案例3
input_number = int(input("请输入一个数字,当该数字能被2整除或者包含2时就相加求和:"))
sum = 0
count = 1
while count <= input_number:
if count %2 == 0:
sum += count
elif '2' in str(count):
sum += count
count += 1
print(sum)
Python还支持while...else...的语法,当while的条件不成立时会执行else后面的语句
age = 30
count = 0
while count < 5: #如果要永远为真,可以写为while True:
input_age=int(input("please guess my age:"))
if input_age == age:
print ("you are smart")
break
elif input_age > age:
print ("think smaller")
else:
print ("think bigger")
count +=1
else:
print ("you have tried too many times")
二、for循环
for语句相比while循环来说,更适合去循环一些次数已知的场景,比如去遍历列表、集合或者字典中的每个元素(需要注意部分数据类型是无序的)。通常还可以配合range函数去循环指定次数
1、Python for循环语法格式
#语法格式 for [变量名] in [可遍历对象]: #如果遍历对象是列表或字典等类型,变量名可以同时写多个来接收 [循环体] else: [当循环正常结束时执行部分] #可以理解为循环结束后的收尾工作,非必须 #示例 fruit = ['apple','banana','orange'] for i in fruit: print (i) for temp_element in range(1,10): print(temp_element) #遍历字典的值 movie = {"name":"环太平洋","language":"En","Sessions":8} for i in movie.values(): print(i) #获取字典中的key和value movie = {"name":"环太平洋","language":"En","Sessions":8} for x,y in movie.items(): print(i)
2、Python for循环推导式
alist = []
for i in range(1,100):
if ( i % 2 == 0 ):
alist.append( i )
print (alist)
#下面代码和上面效果是一样的
blist = [i for i in range(1,100) if(i % 2) == 0] #简单来说就是开头i的值从后面代码中取
print (blist)
3、Python for循环嵌套循环
#使用了isinstance函数来对数据类型进行判断,如果是list则遍历其中每个元素再进行打印 a=[1,2,3,[10,20,30],[50,60,70]] for i in a: print(i) if isinstance(i,list) for x in i: print(x)
4、使用嵌套for循环实现冒泡算法
numbers = [1,3,5,6,2,3,1,5] for i in range(0,len(numbers)-1): #外层循环控制轮数,len-1的原因是因为len是从1开始算range是从0开始算,不减1的话range的下标就越界了 for j in range(0,len(numbers) -1 -i): #内层循环完成两两比较,每一轮比较完成后会取到一个最大的数字放在列表最后,并且该数字不再参与后面的比较了 if numbers[j] > numbers[j+1]: #第一次循环取出0和0+1进行比较,即1和3 a = numbers[j] #下面三行用于交换两个数字的位置 numbers[j] = numbers[j+1] #下面三行用于交换两个数字的位置 numbers[j+1] = a #下面三行用于交换两个数字的位置 print(numbers)
版权声明:本文章版权归数据库运维网(www.ywdba.cn)所有。如需引用本站内容,请注明来源及作者。
评论