课时44:if练习_1

简介: 本课时介绍三个if语句练习,帮助理解条件判断的应用。

课时44:if练习_1

 

摘要:新建一个文件并保存,用于记录本次练习。将所有练习都写入这个文件中。

1. 练习1:判断奇数偶数

2. 练习2:判断是否是闰年

3. 练习3:判断狗狗相当于多大年龄的人

 

01.练习 1:判断奇数偶数

 

编写一个程序,获取一个用户输入的整数。然后通过程序显示这个数是奇数还是偶数。获取用户输入的整数Input() 函数返回的是 String 类型因此必须执行类型转换确保 Num 是一个整数判断 Num 是奇数还是偶数如果一个数能够被2 整除,那么它就是偶数;反之,如果不能被 2 整除,则为奇数。因此只需判断该数是否能被 2 整除即可。看这个数字除以 2 是否会有余数。若无余数,则可被 2整除,即为偶数;若有余数,则不能被2 整除,即为奇数。因此判断过程可以简化为一个 If 条件语句如果 Num 除以 2 的模等于 0 ,那么该数字就是偶数Else就不用判断Else 证明是基数。

#获取用户输入的整数
num = int(input('请输入一个任意的整数:’))
#显示 num 是奇数还是偶数
if num %2 ==0:
print(num,“是偶数”)
Else:
print(num ,“是奇数”)
输入2,是偶数。

image.png

输入19,是奇数。

image.png

再次强调是双等号不能只写一个等号,否则会因为一个等号而得到负值

 

02.练习2 :判断是否是闰年

 

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

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

众所周知,的年份有平年和闰年。例如平年二月有28天,而闰年时二月有29天。

year = int(input('请输入一个任意的年份:))

#检查这个年份是否是闰年

这两个条件必须同时满足才能证明一个年份是闰年这是第一种情况如果一个年份能被4整除但不能被100整除,那么它就是闰年。此外还有一种可能性,即一个年份能够被400整除,这也符合闰年的条件。当年份除以400的余数为0时,它也属于闰年。关系是明显的,即“或者”的关系。如果一个年份能被4整除但不能被100整除,或者能被400整除,那么它就是一个闰年。因此,需要先分析出这个关系。

#year % 4==0 and year % 100  ! = 0  or year % 400 ==0

逐步分析如果条件得到满足,就证明该年份是闰年;反之,若有一个条件为“闰年”,则表明它是闰年;否则,它就是一个平年。

year % 4==0 and year % 100  ! = 0  or year % 400 ==0
print(year,'是闰年’)
else :
print(year,'是平年’)

例如,当输入1999年时,可以得出1999年是平年。

image.png

2000年是闰年。

image.png

1994年,也是平年。

image.png

2004年同样是闰年

image.png

 

03.练习3:判断狗狗相当于多大年龄的人

 

#我家的狗5岁了,5岁的狗相当于多大年龄的人呢 ?
#其实非常简单,狗的前两年每一年相当于人类的10.5岁,然后每增加一年就增加四岁
#那么5岁的狗相等于人类的年龄就应该是10.5+10.5+4+4+4=33岁
#编写一个程序,获取用户输入的狗的年龄,然后通过程序显示其相当于人类的年龄。
#如果用户输入负数,请显示一个提示信息

有时候人们会说这只狗是“一岁半”,因此可能会遇到1.5岁或1.6岁的特殊情况。如果直接使用 int 类型进行转换,可能会出现一些问题。为了适配这种情况,需要将数据转换为浮点数使用float 类型更为合适,可以避免出现一岁半或两岁半的不准确情况。因此,将数据转换为浮点数,并根据具体情况做出判断。狗的前两年,每年相当于人类的10.5岁。这意味着如果一只狗恰好是两岁,那么按照此比例,它应该乘以10.5这是第一种情况。如果狗的年龄小于或等于2岁,那么定义其年龄为dog_age狗的年龄,需要计算一个结果,即狗的年龄相当于人类的年龄是多少。因此引入一个变量 person_age,初始值设为 0。稍后将使用这个变量来存储计算后的年龄。如果年龄计算结果小于等于 2,那么 like personal 位置应该等于 dog_age 乘以10.5。进入 else 说明狗的年龄大于两岁需要考虑至少有一个年龄应达到10.5岁。因此,首先来计算一个基础比例,2 乘以 10.5,因为他已经超过两岁,那超过两岁部分每增加一年就相当于增长了四岁因此接下来dog_age减去 2这一部分说明狗超过两岁的年龄例如,如果三岁超过两岁超过一岁如果十岁,超过两岁超过八岁。那么每增加一岁相当于增长四岁,整体上需要乘以四。这意味着已经超过了两岁的年龄将年龄与之前的年龄相加,like_person_age的年龄

dog_age = float (input('请输入狗的年龄:'))
Like_person_age=0
#如果狗的年龄在两岁以下(包含两岁)
if dog_age <=2 :
#直接将当前的年龄乘以10.5
Like_person_age = dog_age * 10.5
#如果狗的年龄在两岁以上
Else:
#计算前两岁相当于人类的年纪
Like_person_age=2*10.5
#计算超过两岁的部分相对于人类的年纪,并进行相加
Like_person_age+=(dog_age-2)*4
Print(dog_age,’岁的狗,年纪相当于’,Like_person_age,‘岁的人’))

输入2。2.0 岁的狗,年纪相当于 21.0岁的人

image.png

输入3。3.8 岁的狗,年纪相当于 25.0岁的人

image.png

输入5。5.8 岁的狗,年纪相当于 33.0 岁的人

image.png

输入3.5。3.5 岁的狗,年纪相当于 27.0 岁的人

image.png

还存在一个问题,即当用户输入-1时,表示的年龄为-10.5岁。

image.png

然而年龄不能为负数,因此需要对用户的输入进行合法性检查。遇到这种情况,应当如何处理?可以采取两种修改方法。首先检查用户输入的是否为负数。

dog_age = float (input('请输入狗的年龄:'))
Like_person_age=0
#检查用户输入的是否是负数
if dog_age<0:
print("你的输入不合法!’)
#如果狗的年龄在两岁以下(包含两岁)
Elif dog_age <=2 :
#直接将当前的年龄乘以10.5
Like_person_age = dog_age * 10.5
#如果狗的年龄在两岁以上
Else:
#计算前两岁相当于人类的年纪
Like_person_age=2*10.5
#计算超过两岁的部分相对于人类的年纪,并进行相加
Like_person_age+=(dog_age-2)*4
Print(dog_age,’岁的狗,年纪相当于’,Like_person_age,‘岁的人’))

输入-10。

image.png

问题是最后还有输出。修改下。

dog_age = float (input('请输入狗的年龄:'))
Like_person_age=0
#检查用户输入的是否是负数
if dog_age<0:
print("你的输入不合法!’)
#如果狗的年龄在两岁以下(包含两岁)
Elif dog_age <=2 :
#直接将当前的年龄乘以10.5
Like_person_age = dog_age * 10.5
#如果狗的年龄在两岁以上
Else:
#计算前两岁相当于人类的年纪
Like_person_age=2*10.5
#计算超过两岁的部分相对于人类的年纪,并进行相加
Like_person_age+=(dog_age-2)*4
If dog_age>0:
Print(dog_age,’岁的狗,年纪相当于’,Like_person_age,‘岁的人’))

image.png

还有一种方法修改。整体把代码向里缩进,用 if 控制整体。

#在 if 也可以去嵌套 if
#检查用户的输入是否合法
If dog_age>0:
#如果狗的年龄在两岁以下(包含两岁)
if dog_age <=2 :
#直接将当前的年龄乘以10.5
Like_person_age = dog_age * 10.5
#如果狗的年龄在两岁以上
Else:
#计算前两岁相当于人类的年纪
Like_person_age=2*10.5
#计算超过两岁的部分相对于人类的年纪,并进行相加
Like_person_age+=(dog_age-2)*4
Print(dog_age,’岁的狗,年纪相当于’,Like_person_age,‘岁的人’))

存在三个缩进级别,第一个缩进级别,它的执行与否完全取决于if说了算。

image.png

第二层缩进级别由对应的if 控制。这意味着在第一层缩进之后,还可以继续进行第二层的缩进。

image.png

比如爷爷管控着爸爸爸爸管控着儿子,儿子被爸爸管教,如果还有下一层,孙子辈的人就出现了,换句话说每向内缩进一个层次,就相当于在上一级的基础上降低一级。每增加一个缩进级别,代码块就比上一级低一级,它被上一级所管理。

#在 if 也可以去嵌套 if,代码块是可以嵌套的,每增加一个缩进的级别,代码块就低一级

#检查用户的输入是否合法

If dog_age>0:
#如果狗的年龄在两岁以下(包含两岁)
if dog_age <=2 :
#直接将当前的年龄乘以10.5
Like_person_age = dog_age * 10.5
#如果狗的年龄在两岁以上
Else:
#计算前两岁相当于人类的年纪
Like_person_age=2*10.5
#计算超过两岁的部分相对于人类的年纪,并进行相加
Like_person_age+=(dog_age-2)*4
Print(dog_age,’岁的狗,年纪相当于’,Like_person_age,‘岁的人’))
else :
print("请输入一个合法的年龄!’)

输入 -1,可以看到有提示。

image.png

在阅读代码时,必须能够区分哪些代码属于一组。如果出现错误的缩进,会导致代码执行错误,代码无法找到其所属的组。因此当代码结构复杂时,务必注意缩进的准确性,清晰地定义各部分代码之间的级别关系,仔细检查代码的缩进。

相关文章
|
存储 Linux API
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(三)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
272 1
|
11月前
|
存储 安全 网络安全
云计算与网络安全:探索云服务、网络安全和信息安全的交汇点
在数字化时代,云计算已成为企业和个人存储、处理数据的关键技术。然而,随着云服务的普及,网络安全问题也日益凸显。本文将深入探讨云计算与网络安全的关系,分析云服务中的安全挑战,并提出相应的解决方案。同时,我们还将介绍一些实用的代码示例,帮助读者更好地理解和应对网络安全问题。
|
存储 JSON 编解码
python之simplejson:JSON 编/解码器示例详解
python之simplejson:JSON 编/解码器示例详解
206 0
|
存储 IDE Unix
Linux 内核源代码情景分析(四)(上)
Linux 内核源代码情景分析(四)
132 1
Linux 内核源代码情景分析(四)(上)
|
监控 安全 数据管理
如何防止网络攻击?
【8月更文挑战第8天】
406 6
|
Java 数据库连接 数据库
mybatis plus 更新值为null的字段
mybatis plus 更新值为null的字段
203 7
|
开发框架 前端开发 JavaScript
利用FastReport传递图片参数,在报表上展示签名信息
利用FastReport传递图片参数,在报表上展示签名信息
|
机器学习/深度学习 供应链 算法
SPSS Modeler分析物流发货明细数据:K-MEANS(K均值)聚类和Apriori关联规则挖掘
SPSS Modeler分析物流发货明细数据:K-MEANS(K均值)聚类和Apriori关联规则挖掘
|
安全 数据安全/隐私保护 C++
C/C++基础知识——字符串(二)
C/C++基础知识——字符串
454 0
|
运维 监控 架构师
饿了么技术往事(上)
作为一个互联网创业公司,饿了么从初创到壮大,在移动互联网时代,业务量和技术团队的体量经历了10倍增长,这其中的经历,是互联网领域许多创业公司技术团队的一个缩影。在这里把我们成长过程中的体会和教训记录下来。——黄晓路
15446 106
饿了么技术往事(上)