(五) 流程控制(1)

1.1 简介

顺序执行、选择执行、循环执行

if、while、for语句

if

if。。。else。。。

if。。。elif。。。else

while

for

对于老手来说很简单,对于新手来说会很困惑,因为新手没有养成编程的思维逻辑

1.1.1 伪代码

是一种算法描述语言

伪代码必须结构清晰、代码简单、可读性好

通俗的讲就是用中文把你的程序先写出来,在检查伪代码没有问题后,再用python将其真正实现

例如:根据年龄判断是否成年

输入值,并让他用变量age接收,并且转换为数字
(条件判断):
如果age大于等于18:
	打印"成年"
如果age小于18,又分两种情况:
	如果age大于等于12:
    	打印"少年"
    如果age小于12:
    	打印"儿童"

代码实现👇

age=int(input("请输入您的年龄:"))
if age>=18:
    print("成年")
else:
    if age>=12:
        print("少年")
    else:
        print("儿童")

2.1.2 流程图

与伪代码一样,对于题目不理解可以先画流程图或者先写伪代码,不会画没关系,可以写伪代码

在这里插入图片描述

2.2 分支结构

python利用缩进表示语句块的开始和退出

增加缩进表示语句块的开始,而减少缩进则表示语句块的退出

必须使用四个空格来表示每级缩进

在pycharm中tab键是默认替代四个空格的

python中的缩进不对会报错

python中if。。else语句可以细分为三种形式

if语句

语法:
if 表达式:
    代码块
   

if。。。else语句

语法:
if 表达式:
    代码块
else:
	代码块

if。。。elif。。。else语句

语法:
if 表达式1:
    代码块1
elif 表达式2:
    代码块2
elif 表达式3:
    代码块3
。。。。# 省略号的作用是其他的elif语句
else:
    代码块n
注意:
1.elifelse不能单独使用,必须和if一起出现,并且要正确配对
2.注意在python中是elif而不是else if
对语法格式的说明:
- '表达式'可以是一个单一的值或者变量,也可以是由运算符组成的复杂语句,
- 形式不限,只要它能得到一个值就行。
- 不管表达式的结果是什么类型,if else都能判断它是否成立(真或者假)
- '代码块'由具有相同缩进量的若干条语句组成
- ifelifelse语句的最后都有冒号,不要忘记

一旦某个表达式成立,python就会执行他后面对应的代码块;
如果所有的表达式都不成立,那就执行else后面的代码;
如果没有else部分,那么就什么也不执行

2.2.1 if语句(单向分支)

例子:如果你已满18岁,就可以进入网吧

if 判断语句:
    判断成立执行的代码块

age = int(input("请输入你的年龄:"))
if age >= 18:
    print("恭喜你,可以进入网吧嗨皮了")

请输入你的年龄:18
恭喜你,可以进入网吧嗨皮了

2.2.2 if。。。else语句(双向分支)

例子:如果你已满18岁,就可以进入网吧,如果未满18,则提示未成年,请不要进入网吧

age = int(input("请输入你的年龄:"))
if age >= 18:
    print("恭喜你,可以进入网吧嗨皮了")
else:
    print("未成年禁止进入网吧")
  
请输入你的年龄:6
未成年禁止进入网吧

2.2.3 if。。。elif。。。else语句(多向分支)

例子:
在控制台输入您的成绩
如果你考了90分以上  成绩为优秀
如果你考了80分以上  成绩为良好
如果你考了70分以上  成绩为中等
如果你考了60分以上  成绩为合格
否则              成绩不合格

elif这个条件可以是0个也可以是多个

elif如果有一个满足,剩下的条件表达式通通不执行,只执行满足的那一个代码块

输入分数最高到分数最低逐个判断,看输入的成绩属于哪一个分数区间

score = int(input("请输入你的成绩:"))
if score >= 90:
    print('优秀')
elif score >= 80:  #因为不满足>=90,所以这里隐含score<90,这里条件为score>=80 and score<90 
    print('良好')
elif score >= 70:
    print('中等')
elif score >= 60:
    print('合格')
else:
    print("不合格")

如果从低往上判断可能会出错,如下:

score = int(input("请输入你的成绩:"))
if score >= 60:      #如果输入的成绩是90,那就直接满足第一个条件打印'合格'导致结果错误
    print('合格')
elif score >= 70:  
    print('中等')
elif score >= 80:
    print('良好')
elif score >= 90:
    print('优秀')
else:
    print("不合格")

2.2.4 if语句嵌套

所谓嵌套就是套娃

if 表达式1:
    if 表达式2:
        语句块2
    else:
        语句块3
else:
    语句块1

在这里我们加入一个条件,那就是输入的成绩必须在0-100这个区间内才有效,这时才判断这个分数属于哪个等级.否则就告诉用户输入的分数有误

score = int(input("请输入你的成绩:"))
if score >= 0 and score <= 100:
    if score >= 90:
        print('优秀')
    elif score >= 80 and score < 90:
        print('良好')
    elif score >= 70 and score < 80:
        print('中等')
    elif score >= 60 and score < 70:
        print('合格')
    else:
        print("不合格")
else:
    print("你的输入有误")

2.2.5 pass关键字的使用

pass是占位作用,没有实际意义,就是一个占位符,占位置的(就相当于做题先空着,后面想到要怎么做再做)

score = float(input("请输入你的成绩:"))
if score >= 0 and score <= 100:
    if score >= 90:
        print('优秀')
    elif score >= 80 and score < 90:
        print('良好')
    elif score >= 70 and score < 80:
        pass
    elif score >= 60 and score < 70:
        print('合格')
    else:
        pass
else:
    print("你的输入有误")

2.2.6 三目运算符

是python提供的一个简洁写法

假设现在有两个数字,我们希望获得其中一个较大的数字,那么我们可以使用if else语句:

普通写法:
a = 10
b = 5
if a > b:
    print('a=', a)
else:
    print('b=', b)
    
三目运算符写法:
a = 10
b = 5
print(a if a>b else b)

python是一种极简主义的编程语言,使用三目运算符可以有效地简化代码

练习:

输入一个字符串,如果这个字符串是yes则输出ok,否则输出原来的字符的值

s = input("请输入:")
print('ok' if s == 'yes' else s)

2.3 循环结构

循环就是将一段代码不断地重复执行,直到循环结束程序再继续往下执行

2.3.1 while循环

while循环和if条件分支语句语法类似

if 条件表达式:
    代码块
 
while 条件表达式:
    代码块(循环体)

while循环会将代码不断执行,直到条件为False的时候才会结束

a = 0
while a<10:
    print("你好")
    a = a+1
    print(a)
    
你好
1
你好
2
你好
3
你好
4
你好
5
你好
6
你好
7
你好
8
你好
9
你好
10

当a为10时,不满足a<10,所以退出循环

练习:
打印1-100的所有数字
# 1.创建一个循环的初始条件
number = 1
# 2.当number小于100的时候,会进入循环体
while number < 101:
    print("number=", number)
    number += 1
print("循环结束")  # 在循环体外面,会等到循环结束再执行这句话

小试牛刀

1.编写一个程序,检查任意一个年份是否是闰年

tip:如果一个年份可以被4整除不能被100整除,或者可以被400整除,这个年份就是闰年

2.计算1+2+3+…+100

往下拉有答案👇

====================

====================

====================

====================

====================

====================

====================

====================

1.编写一个程序,检查任意一个年份是否是闰年

# 输入一个年份,将字符串转为整形
year = int(input("请输入任意一个年份:"))
# 检查这个年份是否是闰年
# 注意这里的优先级,and先再or,所以不用括号改变优先级
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
    print(year,"是闰年")
else:
    print(year,"是平年")

2.计算1+2+3+…+100

num = 1  # 从1开始
sum = 0  # 初始化一个去累计的变量
while num <= 100:
    sum += num  # sum=sum+num
    num += 1  # num=num+1
    #print(sum) #如果写在循环体里面就是每循环一次打印一次这之前的数的和
print(sum)  #写在外面是直接打印总和
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值