Python两种循环语句
while循环+for循环
1.用法
while
语法:
初始化表达式
while 条件表达式:
循环体
循环之后操作表达式s = 0 # 用于求和 i = 1 # 循环的初始值 while i <= 100: # 循环的条件 # print(i) s += i i += 1 # 循环改变量,用于跳出循环 print(s)
for
语法:
for 变量名 in 序列:
循环体for i in range(1, 101): print(i) s += i print(s)
2.range
range([start,]end[,step]) 注:[]表示start和step可写可不写
start:开始数字
end;结束数字
step;步长
start默认为0,step默认为1
功能:生成具有一定规律的序列
代码演示:
#range() """ range([start,]end[,step]) l例如: range(100) 可以生成一个0~99的整数序列【不包含100】 range(1,100) 可以生成一个1~99的整数序列 range(1,100,2) 可以生成一个1~99之间的奇数序列 print(list(range(10))) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(list(range(1, 11))) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(list(range(1, 11, 2))) # [1, 3, 5, 7, 9] print(list(range(11, 1, -1))) # [11, 10, 9, 8, 7, 6, 5, 4, 3, 2] """ #需求1:计算1~100之间所有整数的和 num1 = 1 sum1 = 0 while num1 <= 100: sum1 += num1 num1 += 1 sum11 = 0 #借助于range生成一个1~100之间所有整数的序列,然后使用for循环进行遍历这个序列 for x in range(1,101): sum11 += x #需求2:计算1~100之间所有偶数的和 num2 = 1 sum2 = 0 while num2 <= 100: if num2 % 2 == 0: sum2 += num2 num2 += 1 num2 = 0 sum2 = 0 while num2 <= 100: sum2 += num2 num2 += 2 sum22 = 0 for y in range(0,101,2): sum22 += y
4.嵌套循环
一个循环中嵌套一个或者多个循环
代码演示:
#需求:打印九九乘法表 #while实现 line = 1 while line <= 9: colum = 1 while colum <= line: print("%dx%d=%d"%(colum,line,line*colum),end=" ") colum += 1 print("") line += 1 #for实现 #外层循环:控制行 for i in range(1,10): #内层循环:控制列 for j in range(1,i + 1): print("%dx%d=%d"%(j,i,i*j),end=" ") print("")
三. break、continue和pass语句的使用
1.break
break:关键字
1.存在于循环中:while, for
2.跳出当前循环
3.break后的代码不执行
4.和for-else,while-else结合使用
作用:跳出循环【直接跳出整个循环,继续执行循环后面的代码】
代码演示:#break的使用 #1.while n = 0 while n < 5: print("n = %d"%(n)) #print("n =" ,n) #注意:if语句充当的是一个条件判断 if n == 3: break n += 1 print("over") #2.for for x in range(1,6): print("x = %d"%(x)) if x == 3: break #结论:不管是while语句还是for语句,break的作用结束整个循环 #3.特殊情况一 #不管while中的条件是否满足,else分支都会被执行 #思考问题:如果在while循环体中出现了break,else分支还会执行吗?-------不会 m = 0 while m < 3: print(m) if m == 1: break m += 1 else: print("else") #4.特殊情况二 #当break使用在嵌套循环中的时候,结束的是当前循环【就近原则】 x = 0 y = 0 while x < 20: print("hello Python",x) x += 1 while y < 5: print("hello Python~~~~",y) if y == 2: break y += 1 #break #注意:break是一个关键字,使用的过程中,单独就可以成为一条语句,后面不能跟任何的变量或者语句 # for-else #1.从键盘输入一个数n,判断是不是一个质数(质数是只能被1和它自身整除的数) n = int(input('please enter a number:')) for i in range(2, n): if n%i == 0: j = 'this number is not a prime number' break else: j = 'this number is a prime number' print(n, j)
2.continue
作用:跳出当前正在执行的循环,继续执行下一次循环
代码演示:
#continue的使用 #1.for for i in range(10): print(i) if i == 3: continue print("*") for i in range(10): print(i) if i == 3: break print("*") #总结:continue只是结束当前正在执行的循环,而break表示直接结束整个循环 # 2.while """ num = 0 while num < 10: print("num = %d"%(num)) num += 1 if num == 3: continue """ num = 0 while num < 10: if num == 3: num += 1 continue print("num = %d" % (num)) num += 1
3.pass
Python中的pass是一条空语句
作用:为了保持代码结构的完整性,pass不做任何操作,只是充当了一个占位语句,保证代码可以正常的运行起来
应用场景:if,while,for中使用,可以在代码块的部分不添加任何语句,代码正常运行
代码演示:
while True: pass print("over")
4.练习
代码演示:
#需求;判断一个数是否是素数【质数】
#方式一
num1 = int(input("请输入一个数:"))
#思路:一个数能被其他数整除,将次数记录下来
#条件:在2~num1 - 1的范围内,找到一个数能将num1整除,count1 + 1
count1 = 0
for i in range(2,num1):
#整除:求余【大数对小数求余】
if num1 % i == 0:
count1 += 1
if count1 == 0 and num1 != 1:
print("是质数")
else:
print("不是质数")
#方式二:
#思路:假设num2是质数,寻找不成立的条件【有数能被整除】将假设推翻掉
num2 = int(input("请输入一个数:"))
#定义一个布尔类型的变量,用于记录这个数是不是一个质数
is_prime = True
for j in range(2,num2):
if num2 % j == 0:
is_prime = False
break
if is_prime == True and num2 != 1:
print("是质数")
else:
print("不是质数")