目录
一、顺序结构
二、选择结构
2.1单分支if结构
2.2双分支if…else结构
2.3多分支if…elif…else结构
2.4if语句的嵌套
2.5条件表达式
三、循环结构
3.1条件循环
3.2遍历循环
四、选择结构的if与循环结构while的区别
一、顺序结构
程序从上到下按顺序执行代码,中间没有任何判断和跳转直到程序执行结束
程序开始 语句1 语句2 ... 程序结束
二、选择结构
根据判断条件的布尔值选择性的执行部分代码
布尔值false:false、数值0、None、空字符串、空列表、空元组、空字典、空集合
2.1单分支if结构
语法结构:
if 条件表达式 :
条件执行体
运算规则:
满足if的条件表达式,则执行条件执行体
# 单分支结构
money=1000 # 余额
s=int(input('请输入取款金额:')) # 取款金额
# 判断余额是否充足
if money>=s:
money=money-s
print('取款成功,余额为:',money)
2.2双分支if…else结构
语法结构:
if 条件表达式 :
条件执行体1
else :
条件执行体2
运算规则:
满足if条件表达式,执行条件执行体1
其他情况则执行条件执行体2
# 双分支结构 if...else 二选一
'''从键盘录入一个整数,编写程序让计算机判断它是奇数还是偶数'''
num=int(input('请输入一个整数:'))
# 条件判断
if num%2==0:
print(num,'偶数')
else:
print(num,'奇数')
2.3多分支if…elif…else结构
语法结构:
if 条件表达式1:
条件执行体1
elif 条件表达式2:
条件执行体2
⋮
elif 条件表达式N:
条件执行体N
else:
条件执行体N+1
运算规则:
满足条件1,则执行条件执行体1; 若不满足,判断条件2是否满足,满足执行条件2,不满足判断条件3
.....
若所有条件均不满足,则执行else下条件
# 多分支结构
'''从键盘录入整数 成绩
90-100 A
80-89 B
70-79 C
60-69 D
0-59 E
小于0或大于100 非法数据
'''
score=int(input('请输入一个成绩'))
# 判断
if score>=90 and score<=100: # 也可以写成 90<=score<=100
print('A')
elif score>=80 and score<=89:
print('B')
elif score >= 70 and score <= 79:
print('C')
elif score >= 60 and score <= 69:
print('D')
elif score >= 0 and score <= 59:
print('E')
else:
print('非法成绩')
2.4if语句的嵌套
语法结构:
if 条件表达式:
if 内层条件表达式:
内层条件执行体1
else:
内层条件执行体2
else:
条件执行体1
运算规则:
满足if条件,则判断内层if表达式,若满足执行内层执行体1,若不满足执行内层执行体2
若不满足if条件,则执行else条件执行体
# if语句的嵌套
'''会员 >=200 8 折
>=100 9折
<100 不打折
非会员 >=200 9.5折
<200 不打折
'''
answer=input('您是会员吗?y/n')
money=int(input('请输入您的购物金额:'))
# 外层判断是否是会员
if answer=='y': # 会员
print('会员')
if money>=200:
print('8 折 付款金额为:',money*0.8)
elif money>=100:
print('9 折 付款金额为:', money*0.9)
else:
print('不打折 付款金额为:', money)
else: # 非会员
print('非会员')
if money >= 200:
print('9 折 付款金额为:', money*0.9)
else:
print('不打折 付款金额为:',money)
2.5条件表达式
条件表达式是 if…else 的简写。
语法结构:
x if 判断条件 else y
运算规则:
如果判断条件的布尔值为True,条件表达式的返回值为 x ,否则条件表达式的返回值为y。
# 条件表达式
'''从键盘输入两个整数,比较两个整数的大小'''
num_a=int(input('请输入第一个整数:'))
num_b=int(input('请输入第二个整数:'))
# 比较大小
'''if num_a>=num_b:
print(num_a,'大于等于',num_b)
else:
print(num_a,'小于',num_b)
'''
# 使用条件表达式进行比较
print((num_a,'大于等于',num_b) if num_a>=num_b else (num_a,'小于',num_b)) # 输出不好看 改写一下
print( str(num_a)+'大于等于'+str(num_b) if num_a>=num_b else str(num_a)+'小于'+str(num_b))
三、循环结构
反复做同一件事情的情况,称为循环
3.1条件循环
语法结构
while 条件表达式:
条件执行体(循环体)
运算规则
当条件表达式的布尔值为True时,执行条件执行体
Python语言中,任何非零的数值、非空的数据类型都等价于True,0或空类型等价于False
#求0-4自然数的和
sum=0 #存储变量
#初始化变量为0
a=0
#条件判断
while a<5:
#条件执行体(循环体)
sum+=a
#改变变量
a+=1
print('和为',sum)
sum=0
a=1
while a<101:
#if a%2==0:
if not bool(a%2): #bool值不为true(1)
sum+=a
a+=1
print(sum)
3.2遍历循环
语法结构
for 自定义的变量名 in 可迭代对象:
循环体
运算规则
会依次取出可迭代对象中的元素,赋值给自定义的变量名,每次遍历都会执行代码块,直到遍历完所有元素
可迭代元素的判断
字符串、列表、元组、集合、字典都是可迭代对象
#通过内置函数iter(元素)判断
#若无报错,则元素可迭代,若报错,则元素不可迭代
iter([1,2,3]) #可迭代
iter(123) #不可迭代
range()函数
可以创建输出整形序列的迭代器
range(start,stop,step)
- range(stop) 创建一个(0,stop)之间的整数序列,0为起始值,stop-1为结束值,默认步长为1
r=range(10)
print(r) #range(0,10)
print(list(r)) #用于查看range对象的整数序列 [0,1,2,3,4,5,6,7,8,9]
- range(start,stop) 创建一个(start,stop)之间的整数序列,start为起始值,stop-1为结束值,步长为1
r=range(1,10)
print(list(r)) #[1,2,3,4,5,6,7,8,9]
- range(start,stop,step) 创建一个(start,stop)的列表,start为起始值,stop-1为结束值,步长为step
r=range(1,10,2)
print(list(r)) #[1,3,5,7,9]
返回值是一个迭代器对象
range类型的优点:不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start,stop和step,只有当用到range对象时,才会去计算序列中的相关元素。
in与 not in判断整数序列中是否存在(不存在)指定的整数
r=range(1,10,2)
print(10 in r)
print(10 not in r)
for -in循环:
for i in range(10):
print(i)
#打印100到999的水仙花数
for i in range(100,1000):
bai=i//100
shi=i//10%10
ge=i%10
if bai**3+shi**3+ge**3==i:
print(i)
四、选择结构的if与循环结构while的区别
if是判断一次,条件为True执行一次
while是判断N+1次,条件为True执行N次