课时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,是偶数。
输入19,是奇数。
再次强调是双等号,不能只写一个等号,否则会因为一个等号而得到负值。
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年是平年。
2000年是闰年。
1994年,也是平年。
2004年同样是闰年。
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岁的人
输入3。3.8 岁的狗,年纪相当于 25.0岁的人
输入5。5.8 岁的狗,年纪相当于 33.0 岁的人
输入3.5。3.5 岁的狗,年纪相当于 27.0 岁的人
还存在一个问题,即当用户输入-1时,表示的年龄为-10.5岁。
然而年龄不能为负数,因此需要对用户的输入进行合法性检查。遇到这种情况,应当如何处理?可以采取两种修改方法。首先检查用户输入的是否为负数。
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。
问题是最后还有输出。修改下。
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,‘岁的人’))
还有一种方法修改。整体把代码向里缩进,用 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说了算。
第二层缩进级别由对应的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,‘岁的人’)) else : print("请输入一个合法的年龄!’)
输入 -1,可以看到有提示。
在阅读代码时,必须能够区分哪些代码属于一组。如果出现错误的缩进,会导致代码执行错误,代码无法找到其所属的组。因此当代码结构复杂时,务必注意缩进的准确性,清晰地定义各部分代码之间的级别关系,仔细检查代码的缩进。