主要内容:
1.while循环
2.for循环
3.break、contine、pass
语法:
- while 循环条件:
- 循环体
执行过程:先执行判断条件,条件成立,则进入循环体,执行一遍循环体,循环体执行结束,继续进行判断,若条件成立,继续执行循环体,循环往复,直到条件不成立的时候,退出循环
流程图:
注意:每执行一次语句块,循环条件应趋向于no,否则就是死循环
例:
"""
求n的阶乘
要求n从控制台输入
"""
n = int(input("请输入一个数:"))
res = 1
while n > 0:
res *= n
n -= 1
print(res)
- while 循环条件1:
- while 循环条件2:
循环体1循环体2
执行过程:先执行判断条件1,若条件1成立,则进入循环体,执行判断条件2,若判断条件2成立,则执行循环体2,继续执行判断条件2,直到条件2不成立为止,退出内循环,执行循环体1中的内容,执行判断条件1,条件成立,执行判断2…直到条件1不成立则退出循环。
说明:外循环执行一次,内循环执行结束之后,再执行第二次外循环
流程图:
例:
"""
打印*号
*
**
***
...
从控制台输入
"""
n = int(input("请输入你想要打印的层数:"))
i = 1 # 控制行数
while i <= n:
j = 1 # 控制*个数
while j <= i:
print("*", end="") # end="":不换行
j += 1
print()
i += 1
# 更简单的方法:(跟上面的运行结果一样)
while i <= n:
print("*" * i)
i += 1
死循环出现的契机:当表达式永远为真的时候,会出现死循环
取值为False的值:None,0,""(空串)
其它都为True
说明:适用于不知道具体的循环次数的时候,通常跟break一起使用
break的作用:结束当前循环
例:
"""
输入用户名及密码,判断用户名与密码是否正确,若不正确,
则一直输入
用户名:admin
密 码:123456
"""
while True:
userName = input("请输入您的用户名:")
psd = input("请输入密码")
if userName == "admin" and psd == "123456":
print("欢迎回来!!")
break
else:
print("请重新输入")
语法:
- while 判断条件:
- 循环体
- else:
- 语句块
说明:当代码循环正常执行结束的时候,它才会执行else下面的语句块,若循环体中的代码是非正常执行结束,这时候他不会执行else下面的语句块,【比如用break跳出循环的时候,就是非正常执行结束】
语法:
- for 变量 in 序列:
- 循环体
说明一:依次将序列中元素取出并赋值给变量,直到序列元素全部取出为止,循环结束
说明二:for通常跟range一起使用
range([start,]stop[,step])
功能:可以产生一个[start,end)的序列
参数一:start 从start开始,若start不写,默认从0开始
参数二:stop 到end结束,stop必须给
参数三:step 步长,各多少取一次,默认为1
注意:要写步长的话,必须写start,否则会报错
取值范围[start,end)
说明三:基本数据类型能作用于for循环的有:
字符串、列表、元组、字典、集合、range()
例:
# 求n的阶乘
n = int(input("请输入一个整数:"))
res1 = 1
for i in range(1, n + 1):
res1 *= i
print("n的阶乘为:", res1)
语法:
- for 变量1 in 序列1:
- for 变量2 in 序列2:
循环体
例:
# 使用for循环打印九九乘法表
for i in range(10): # 控制行
for j in range(1, i+1): # 控制列
print("%d x %d = %d" % (j, i, i*j), end="\t")
print()
语法:
- for 变量 in 序列:
- 循环体
- else:
- 语句块
执行过程:执行循环,若循环正常执行结束,则执行else下面的语句块,若是非正常执行结束,则不会执行else下面的语句
性质跟while…else…一样
若知道循环的次数的时候,优先选择for
若不知道循环次数,只循环结束的条件,应选择while循环
while循环通常用于死循环,其它时候基本上都是使用for循环
break:跳出循环体【跳出它所在的循环的循环体】
continue:结束本次循环,[写在continue后的语句不会再执行]继续下一次 【不跳出循环体】
pass;保证语言的完整,本身没有任何意义