第八节 流程控制语句之条件选择语句 + 综合习题

从这节课开始呢
要学习流程控制语句了

这节课的内容大致就是先讲一下条件选择语句,包括
最简单的if条件语句
if…else语句
然后呢再来做几道综合习题
来回顾一下之前学的内容

流程控制语句

先来看一下下面这张图
在这里插入图片描述
流行控制语句进行判断时只有两个结果:

在Python中我们通过布尔类型来表示是和否
布尔类型变量的定义方式和普通变量的定义方式是相同的
变量名称 = 布尔类型字面量

布尔类型不仅可以自行定义,也可以通过计算得来,也就是使用比较运算符进行比较运算来得到布尔类型的结果

选择语句

最简单的if条件语句

if 条件语句的本质含义就是:存在一个条件,如果这个条件成立,
那么就执行某些语句,否则不执行这些或执行其他语句

下面是if条件语句的流程图
在这里插入图片描述

if条件语句基本格式:
if condition:
​ 语句1
​ 语句2
​ …

例如:

age = 18
print(f"今年我已经{age}岁了")
if age >= 18:
	print("我已经成年了")
    print("即将步入大学生活")
print("时间过得真快")

上列代码就是一个非常简单的if条件语句,该语句的作用是
当age>=18时,会输出:
我今年已经成年了
即将步入大学生活
时间过得真快
这三句话

而age不满足>=18时,会输出:
时间过得真快
这一句话

在写if条件语句时,我们一定要注意注意:不要漏掉冒号,归属于if判断的代码语句块,需要在前方填充4个空格,其次在if这个单词后面需要有一个空格
Python是通过缩进判断代码块的归属关系的

下面来看两道例题
例题一:判断数正负

给定一个整数 n,判断其正负。如果 n>0,输出 positive;如果 n=0,

输出 zero;如果 n<0,输出 negative。

# 先用input语句从键盘读入一个整数n
n = int(input())
# 然后使用if条件语句来判断整数n的大小
if n > 0 :
	print("positive")
if n = 0 :
	print("zero")
if n < 0 :
	print("negative")

在做这道题的时候,我们就看题看中有几个如果,那么我们就用几个if条件语句来判断

例题二:判断奇偶性

从键盘读入一个整数a,若a为偶数,则在屏幕上输出偶数

a = int(input())
if a % 2 == 0 :
	print("偶数")

练习案例:成年人判断

结合前面学习的input语句,完成如下练习:

1、通过input语句,获取键盘输入,为age变量赋值(注意转换成数字类型)
2、通过if判断是否是成年人,满足条件则输出提示信息,如下:

在这里插入图片描述

print("欢迎来到欢乐谷,儿童免费,成人收费")
age = int(input("请输入你的年龄:"))
if age >= 18 :
	print("您已成年,游玩需要补票10元")
print("祝您游玩愉快")

做这一题呢,根据题目,我们可以知道,首先需要一个引语,我们用print语句输出一下
然后是一句输入提示,这里我们运用了input输入语句的特点,可以自带输入提示
接着就是用if条件语句来判断是否成年,是否需要补票
最后print语句输入一句祝福语
这道题就搞定了
在这里插入图片描述

if...else语句

下面来学习if...else语句 先来看一下if...else语句的流程图

在这里插入图片描述

判断奇偶性题目中,若将题目改为,如果a是偶数,则输出偶数,如果a是奇数,则输出奇数,那就需要用到if–else语句来编写程序

# if--else语句基本结构
if 条件:
    代码块A
else:
    代码块B

那么判断奇偶性的题目就可以用if–else语句来改写

a = int(input())
if a % 2 == 0:
    print("偶数")
else:
    print("奇数")

if…else语句和if条件语句大差不差
下面我们通过练习来熟悉一下if…else语句的运用

练习案例:水仙花数

输入一个三位数 n,判断是否为水仙花数,如果是则输出“YES”,

不是则输出“NO”。水仙花数:是指一个 3 位数,它的每个位上的

数字的 3 次幂之和等于它本身。(例如:13 + 53 + 33 = 153)

(提示:可以运用整除运算符和取余运算符来获取每一位上的数字)

# 先读入一个三位数
n = int(input())
# 根据提示,提取出三位数每一位上的数字
a = n % 10
b = n // 10 % 10
c = n // 100
# 根据判断水仙花数的条件,来判断这个三位数n是否是水仙花数
if a**3 + b**3 + c**3 == n:
	print("YES")
else:
	print("NO")

在这里插入图片描述

习题

一、肥胖问题

题目描述

BMI 指数是国际上常用的衡量人体胖瘦程度的一个标准,其算法是 m h 2 \dfrac{m}{h^2} h2m,其中 m m m 是指体重(千克), h h h 是指身高(米)。不同体型范围与判定结果如下:

  • 小于 18.5 18.5 18.5:体重过轻,输出 Underweight
  • 大于等于 18.5 18.5 18.5 且小于 24 24 24:正常体重,输出 Normal
  • 大于等于 24 24 24:肥胖,不仅要输出 BMI 值(使用 cout 的默认精度),然后换行,还要输出 Overweight

现在给出体重和身高数据,需要根据 BMI 指数判断体型状态并输出对应的判断。

对于非 C++ 语言,在输出时,请四舍五入保留六位有效数字输出,如果小数部分存在后缀 0 0 0,不要输出后缀 0 0 0

请注意,保留六位有效数字不是保留六位小数。例如 123.4567 123.4567 123.4567 应该输出为 123.457 123.457 123.457 5432.10 5432.10 5432.10 应该输出为 5432.1 5432.1 5432.1

输入格式

共一行。

第一行,共 2 2 2 个浮点数, m , h m, h m,h,分别表示体重(单位为 kg),身高(单位为 m)。

输出格式

输出一行一个字符串,表示根据 BMI 的对应判断。特别地,对于 Overweight 情况的特别处理请参照题目所述。

##样例 #1

样例输入 #1

70 1.72

样例输出 #1

Normal

样例 #2

样例输入 #2

100 1.68

样例输出 #2

35.4308
Overweight

提示

对于所有数据,40≤m≤120,1.4≤h≤2.0。m 和 h 的小数点后不超过三位。

# 先读入体重m和身高h
m = int(input())
h = float(input())
# 根据公式计算BMI值
bmi = m / h**2  
# 判断BMI值在哪一范围内,并格局要求输出
if bmi < 18.5: 
    print("Underweight")
elif bmi < 24: 
    print("Normal")
else:
    if int(bmi) == bmi:  
        print(int(bmi)) 
    else:
        print("%.6g" % bmi) 
    print("Overweight")

在这里插入图片描述

在这里插入图片描述

二、三位数排序

题目描述

给出三个整数 a , b , c ( 0 ≤ a , b , c ≤ 100 ) a,b,c(0\le a,b,c \le 100) a,b,c(0a,b,c100),要求把这三位整数从小到大排序。

输入格式

输入三个整数 a , b , c a,b,c a,b,c,以空格隔开。

输出格式

输出一行,三个整数,表示从小到大排序后的结果。

样例 #1

样例输入 #1

1 14 5

样例输出 #1

1 5 14

样例 #2

样例输入 #2

2 2 2

样例输出 #2

2 2 2

# 读入三个整数a,b,c
a = int(input())
b = int(input())
c = int(input())
# 两两一组判断大小
if a > b :
	t = a
	a = b
	b = t
if b > c :
	t = b
	b = c
	c = t
if a > c :
	t = a
	a = c
	c = a
print(a,b,c) 

在这里插入图片描述

---------------------------------------------------------------------------------------End----------------------------------------------------------------------------------------

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值