1 while语句
- 语法:
while 条件表达式:
代码块
else:
代码块
- 执行流程(运行规则):
- while 后表达式为True 时,执行while后语句块
- while后表达式为False时,执行else后语句块
2 循环套嵌
- 语法:
while 表达式:
while 表达式:
代码块
else 表达式:
代码块
代码块
else:
for 变量 in 循环规则:
for 变量 in 循环规则:
代码块
代码块
3 for循环
- 语法:
for 变量 in 序列(遍历规则):
代码块
- 注意:
- for循环代码块会执行多次,序列中有几个元素就执行几次。每次执行一次就将序列中的一个元素赋值给变量。所以我们可以通过变量来获取列表中的元素
4 range(start,stop[,step])
参数说明:
- start: 计数从start开始,默认为0,为0时可忽略,如range(4)等价于range(0,4)
- stop: 计数到stop结束,但不包括stop,为必填项,例如:range(4)是[0,1,2,3],没有5
- step: 步长,默认为1,为1时可忽略。例如:range(4)等价于[0,5,1]
5 break和continue
- break 可以用来立刻跳出循环语句,包括elif和else,结束循环
- continue用来跳过当前循环,包括elif 和else,进行下一轮循环
练习
- 求最小公因数和最大公因数
a,b = eval(input("请输入两个数,用逗号隔开\n"))
i=0
y=0
if a>b:
a,b=b,a
for x in range(2,a+1): #求最小公因数
if a%x==0 and b%x==0:
y=x
print("a,b的最小公因数为:", y)
break
if y!=0: #求最大公因数
for y in range(x, a + 1):
if a%y== 0 and b % y == 0:
max1=y
print("a,b的最大公因数为:", y)
else:
print("%d,%d没有公因数"%(a,b))
'''
运行结果:
请输入两个数,用逗号隔开
100,10
a,b的最小公因数为: 2
a,b的最大公因数为: 10
'''
- 求1,2,3,4四个数字能生成多少个互不相同且无重复数字的三位数
for x in range(1,5):
for y in range(1,5):
for z in range (1,5):
if x==y or x==z or y==z:
continue
else:
print("%d%d%d"%(x,y,z),end=" ")
'''
运行结果:
123 124 132 134 142 143 213 214 231 234 241 243 312 314 321 324 341 342 412 413 421 423 431 432
'''
- 输入行数居中打印星
row = int(input("请输入打印列数:\n"))
i = 1
# while i<=row:
for i in range (1,row+1):
j=1
while j<2*row-i:
print(" ",end="")
j+=1
for i in range(1,2*i):
print("*",end="")
print(end="\n")
'''
运行结果:
请输入打印列数:
6
*
***
*****
*******
*********
***********
'''
- 输入行数末行顶格,其余居中打印星
row = int(input("请输入打印列数:\n"))
i = 1
# while i<=row:
for i in range (1,row+1):
j=1
while j<=row-i:
print(" ",end=" ")
j+=1
for i in range(1,2*i):
print("*",end=" ")
print(end="\n")
'''
输出结果:
5
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
'''
- 输入行数倒立居中打印星
row = int(input("请输入打印列数:\n"))
i = 1
while i<=row:
j=1
while j< i:
print(" ",end="")
j+=1
j=1
while j<2*(row-i+1):
print("*",end="")
j+=1
print(end="\n")
i+=1
'''
输出结果:
请输入打印列数:
8
***************
*************
***********
*********
*******
*****
***
*
'''