9.Python的程序流程控制

目录

一、顺序结构

二、选择结构

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)

  1. 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]
  1. 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]
  1. 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次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值