目录
练习2:用 for-in 循环输出100到999间的水仙花数
注意:嵌套循环中的 break 和 continue 用于控制本层循环,不影响外层循环
练习1:(for-in 循环)输入密码,如果正确就结束循环,最多输入3次
练习2:(while 循环)输入密码,如果正确就结束循环,最多输入3次
练习1:使用continue语句,输出1到50之间所有5的倍数
一、顺序结构
程序按从上到下的顺序执行代码,中间没有任何停顿和跳转,直到程序结束。
print('程序开始')
print('1.开门')
print('2.拿东西')
print('3.关门')
print('程序结束')
运行结果
二、选择结构
2.1 对象的布尔值
内置函数bool()
- 获取对象的布尔值
布尔值为False的对象
- False
- None
- 数值0
- 空字符串
- 空列表
- 空元组
- 空字典
- 空集合
print(bool(False))
print(bool(None))
print(bool(0)) #数值0
print(bool('')) # 空字符串
print(bool("")) # 空字符串
print(bool([])) # 空列表
print(bool(list())) # 空列表
print(bool(())) # 空元组
print(bool(tuple())) # 空元组
print(bool({})) # 空字典
print(bool(dict())) # 空字典
print(bool(set())) # 空集合
运行结果
2.2 分支结构
单分支结构
if 条件表达式:
条件执行体
双分支结构
if 条件表达式:
条件执行体1
else:
条件执行体2
多分支结构
if 条件表达式1:
条件执行体1
elif 条件表达式2:
条件执行体2
... ...
elif 条件表达式N:
条件执行体N
[else:]
[条件执行体N+1]
2.3 嵌套if
if 条件表达式1:
if 内层条件表达式1:
内层条件执行体1
else:
内层条件执行体2
else:
条件执行体
2.4 条件表达式
- 条件表达式是 if......else 的简写
x if 判断条件 else y
如果判断条件的布尔值为 True,条件表达式返回为 x,否则条件表达式返回值为 False
2.5 pass语句
语句什么都不做,相当于一个占位符,用在语法上需要语句的地方
使用场景:
- 先搭建语法结构,还没有想好代码怎么写的时候
搭配使用的语句:
- if 语句的条件执行体
- for-in 语句的循环体
- 定义函数时的函数体
age=int(input('你的年龄是:'))
if 18<age<55:
pass
else:
pass
运行结果
三、循环结构
3.1 range() 函数
- 用于生成一个整数序列
- 返回值是一个迭代器对象
- 判断整数序列中是否存在(不存在)指定的整数用 in 与 not in
创建 range 对象的三种方式:
- range(stop):创建一个 [0,stop) 之间的整数序列,步长为1
- range(start,stop):创建一个 [start,stop) 之间的整数序列,步长为1
- range(start,stop,step):创建一个 [start,stop) 之间的整数序列,步长为 step
range 类型的优点:
- 不管 range 对象表示的整数序列有多长,所有 range 对象占用的内存空间都是相同的,仅存储 start、stop 和 step。只有当用到 range 对象时,才会去计算序列中的相关元素。
r=range(1,7,2)
print(r) #range()函数返回值为迭代器对象
print(list(r)) #获取range对象整数序列值用列表list
print(3 in r)
print(3 not in r)
运行结果
3.2 while 循环
while 条件表达式:
条件执行体(循环体)
if 选择结构和while循环结构的区别:
- if 判断1次,条件为 True 执行1次
- whlie 判断 N+1次,条件为 True 执行 N 次
练习1:用whlie循环求1到100的偶数和
sum=0
a=1
while a<=100:
if a%2==0:
sum+=a
a+=1
print(sum)
运行结果
拓展:将 if 条件语句改为 a%2:
sum=0
a=1
while a<=100:
if a%2:
sum+=a
a+=1
print(sum)
运行结果:
此时求的是1到100的奇数和,因为当a为奇数时,if 条件表达式中 bool(a%2) 即 bool(1),返回 True,执行 if 条件执行体;当a为偶数时相反。
3.3 for-in 循环
- in 表达从字符串、序列等中依次取值,又称为遍历
- for-in 遍历的对象必须是可迭代对象
for 自定义变量 in 可迭代对象 :
循环体
for a in 'hello':
print(a)
运行结果
- 如果在循环体内不需要访问自定义变量,可以将自定义变量替换为下划线_
for _ in range(10):
print('和你说10次hello')
运行结果
练习1:用 for-in 循环求1到100的偶数和
sum=0
for i in range(1,101):
if i%2==0:
sum+=i
print(sum)
运行结果
练习2:用 for-in 循环输出100到999间的水仙花数
for i in range(100,1000):
if (i//100)**3+(i//10%10)**3+(i%10)**3==i:
print(i)
运行结果
3.4 嵌套循环
循环结构中又嵌套了另外完整的循环结构,其中内层循环作为外层循环的循环体执行。
ex.
while ... :
... ...
for ... in ... :
... ...
... ...
练习1:输出一个四行六列的矩形
for i in range(0,4):
for j in range (0,6):
print('*',end='\t') # 不换行输出
print() #换行
运行结果
练习2:输出一个高为6,底为6的等腰直角三角形
for i in range(0,7):
for j in range (0,i):
print('*',end='\t') # 不换行输出
print() #换行
运行结果
练习3:输出九九乘法表
for i in range(1,10):
for j in range (1,i+1):
print(str(i)+'*'+str(j)+'='+str(i*j),end='\t') # 不换行输出
print() #换行
运行结果
注意:嵌套循环中的 break 和 continue 用于控制本层循环,不影响外层循环
四、流程控制语句
4.1 break 语句
用于结束循环结构,通常与分支结构 if 一起使用
for ... in ... :
... ...
if ... :
break
while ... :
... ...
if ... :
break
练习1:(for-in 循环)输入密码,如果正确就结束循环,最多输入3次
for i in range(3):
pwd=input('请输入密码:')
if pwd=='123456':
print('密码正确')
break
else:
print('密码错误')
if i==2:
print('错误次数超过上限')
运行结果
练习2:(while 循环)输入密码,如果正确就结束循环,最多输入3次
i=0
while i<3:
pwd=input('请输入密码:')
if pwd=='123456':
print('密码正确')
break
else:
print('密码错误')
if i==2:
print('错误次数超过上限')
i+=1
运行结果
4.2 continue 语句
用于结束当前循环,进入下一次循环,通常与分支结构 if 一起使用
for ... in ... :
... ...
if ... :
continue
... ...
while ... :
... ...
if ... :
continue
... ...
练习1:使用continue语句,输出1到50之间所有5的倍数
for i in range(1,51):
if i%5 != 0:
continue
print(i)
运行结果
4.3 else 语句
与 else 语句配合使用的两种情况
- if 条件表达式为 False 时执行 else
- for-in 或 while 循环中始终没有碰到 break 时执行 else
if ... :
... ...
else:
... ...
for ... in ... :
... ...
else:
... ...
while ... :
... ...
else:
... ...
练习1:输入密码,如果正确就结束循环,最多输入3次
for i in range(3):
pwd=input('请输入密码:')
if pwd=='123456':
print('密码正确')
break
else:
print('密码错误')
else:
print('错误次数超过上限')
运行结果
Flag:我要成为一个日更选手:)