Python系统教程008-条件判断(二)

发布于:2024-12-18 ⋅ 阅读:(101) ⋅ 点赞:(0)

知识回顾

1、if语句的基本语法?

2、常用 的比较运算符有哪些?

3、注释的分类以及格式

4、else处理条件不满足的情况

练习:

地板上有n个石子,猫头鹰和小兔子正在玩取石子的游戏,从猫头鹰开始,轮流取石子,每次每个动物取走一个石子,猫头鹰能获胜吗?规则如下:

流程图:

输入格式:一个正整数n,表示石子的个数,满足1 <= n <= 100
输出格式:如果猫头鹰能赢,输出Yes,否则输出No
编写程序:

m='猫头鹰'
t='小兔子'
n=int(input('请输入一个整数'))
if 1<=n<=100 and n%2==0:
    print('No')
else:
    print('Yes')

一、逻辑运算符

当多个条件同时成立,才能实现某一件事情。在Python中,可以利用'逻辑与'运算符来表示上述情况。

除了'逻辑与'运算符,Python中还有哪些常见的运算符呢?

例如:

小明即将要进行期末考试,妈妈说,如果语文和数学都达到90分(包含)以上,就带他去旅游;如果小明只有数学或者语文成绩达到90 (包含)分以上,就带他去游乐园玩;如果两科成绩都没有达到90 (包含)分以上,就在家继续努力学习。

小明在本子上列出了这样一个表格来激励自己。

思考一下,如果小明语文考了92分,数学考了93分, 那么他可以得到什么奖励呢?

答:小明既可以去旅游,也能去游乐园玩耍。

在Python中,如何用代码去表示 并且、或者的含义呢?

运用逻辑运算符运算的结果是布尔类型的数据,要么是False,要么是True。

not是取反的意思,能够将True改变为False,将False改变为True。

逻辑运算符优先级:not > and > or。

小明现在想要编写一个根据成绩来判断自己能够得到什么奖励的程序,请你帮帮它。

chinese=float(input('请输入语文成绩'))
mathematics=float(input('请输入数学成绩'))
if chinese>=90 and mathematics>=90:
    print('去旅游')
if chinese>=90 or mathematics>=90:
    print('去游乐园')
else:
    print('在家继续努力学习')

练习:

习题1

某商店笔记本有促销活动,规定购买6本以上(含6本)10本以下(含10本)打九折,购买11本以上(含11本)打八折。给定笔记本单价和购买数量,请问购买总费用。

输入格式:
第一行一个整数s,表示购买s本笔记本。
第二行一个实数p,表示笔记本单价是p。

输出格式:输出一行,表示总费用。保留小数点后一位。
代码:

s=int(input('请输入购买笔记本数量'))
p=float(input('请输入笔记本单价'))
pice=1.0   #不打折单价
if s<6:
    pice=1.0
if s>=6 and s<=10:
    pice=0.9
if 11<=s:
    pice=0.8
sum=s*p*pice
print('%.1f'%sum)

习题2

给出年份x,判断是否是闰年。是闰年则输出"x年是闰年",否则输出"x年不是闰年" 。

样例输入:1996

样例输出:1996年是闰年

平年和闰年的三种判断方法:

①、普通年能被4整除且不能被100整除的为闰年。否则为平年。(如2004年就是闰年,1900年不是闰年)

②、世纪年能被400整除的是闰年。否则为平年。(如2000年是闰年,1900年不是闰年)

③、对于数值很大的年份,这年如果能整除3200,并且能整除172800则是闰年。否则为平年。如172800年是闰年,86400年不是闰年(因为虽然能整除3200,但不能整除172800)。

x=int(input())
if x%400==0 or (x%100>0 and x%4==0):
    print('%d年是闰年'%x)
else:
    print('%d年不是闰年'%x)

elif的使用

在python中,应用if语句可以快速地实现程序的分支选择,但是当分支比较多时,用if-elif-else语句来实现比较方便。

if-elif-else语句格式:

功能: 依次判断每个分支的条件表达式,当某条件满足,则执行相应的语句,且其余分支不再执行。若条件都不满足,且有else语句,则执行该语句块,否则什么也不执行。

注意:  

  1. 当有三种或三种以上情况时使用elif语句比较方便。  
  2. 此处的条件表达式指的是需要判断的条件是否成立。  
  3. 当某种情况满足时,执行相应的语句,且其余分支不再执行。  
  4. else部分可以省略。

习题3

某城市轨道交通实行分段计程票价,起步价为5站以内(含5站)票价2元;乘坐5站以上10站以下(含10站)票价3元;乘坐10站以上16站以下(含16站)票价4元;乘坐16站以上票价5元。 给定乘坐的站数,请问票价是多少?

输入格式:一个整数n表示乘坐的站数。

输出格式:如样例所示。

样例输入:8

样例输出:票价3元

n=int(input('请输入乘坐站数'))
p=0
if n<5:
   p=2
elif n>5 and n<20:
    p=3
elif n>10 and n<16:
    p=5
else:
    print('感谢配合')
sum=p
print(sum)

习题4

输入身高体重,计算身体质量指数BMI值,并给出健康信息。

BMI指数参考标准表如下:

输入格式:输入两个实数,第一行是身高(米),第二行是体重(千克)。

输出格式:第一行是实数BMI,保留小数点后1位。                  

第二行是健康情况,分为'偏瘦' ,'正常','偏胖','肥胖', '重度肥胖','极度肥胖'。    

样例输入:1.75                   68

样例输出:22.2                   正常        

   

height=float(input('请输入身高'))
weight=float(input('请输入体重'))
bmi=weight/(height**2)
if bmi<18.5:
    print('偏瘦')
elif bmi>=18.5 and bmi<=25:
    print('正常')
elif bmi>=25 and bmi<=30:
    print('偏胖')
elif bmi>=30 and bmi<=35:
    print('肥胖')
elif bmi>=35 and bmi<=40:
    print('重度肥胖')
elif bmi>=40:
    print('极度肥胖')

if嵌套语句

在Python中,if-else语句中可以嵌套if-elif-else语句。

首先先判断输入的成绩是否合法,如果合法,再判断成绩的等级,否则直接输出非法数据。

注意:  

  1. 如果需要在某个前提或某几个前提下做某事,可以使用if嵌套语句  
  2. if语句中可以嵌套if语句,也可以嵌套if-else语句,还可以嵌套if-elif-else语句  
  3. elif或者else中也可以嵌套if语句、if-else语句、if-elif-else语句。

火车安检

坐火车是需要先查看旅客是否有车票,若没车票,则不让进站;然后再进行安检,若携带刀具不超过10cm则安检通过后可上车,否则不让上车。

外条件:有票才能进站,没票不让进站。

内条件:携带刀具不超过10cm才能上车,否则不能上车。

tickes=0    #0表示没票,1表示有票
kinef_len=2
if tickes==1:
    print('有票')
    if kinef_len<=10:
        print('安检通过')
    elif kinef_len>10:
            print('安检不通过')
else:
    print('没票')

习题5

现有两个相距25km的监测点,给定汽车经过两个监测点的时间。请判断汽车是否超速,以及超速的严重程度。

输入格式:一个整数t,表示汽车经过两个监测点的时间差是t秒。

输出格式:输出有两行。

第一行输出平均车速,保留一位小数

第二行判断超速情况。

如果汽车没有超速,则输出'正常';否则根据情况输出: (1)100<v<120,输出"超过规定时速且不足20%" (2)120<=v<150,输出"超过规定时速20%以上且不足50%" (3)150<=v<170,输出"超过规定时速50%以上且不足70%"   (4)v>=170,输出"超过规定时速70%以上"

s=25    #两个监测点相距25km
t=int(input())  #输入通过监测点的时间
v=s*3600/t  #3600是秒和小时的单位换算
print('%.1f'%v)
if v<=100:
    print('正常')
elif v<=120:
    print('超过规定时速且不足20%')
elif v<=150:
    print('超过规定时速20%以上且不足50%')
elif v<=170:
    print('超过规定时速50%以上且不足70%')
else:
    print('超过规定时速70%以上')

习题7

编写程序,计算下列分段函数y=f(x)的值,结果保留到小数点后三位。

输入格式:一个浮点数N,0<=N<20

输出格式:输出N对应的分段函数值:f(N)。结果保留到小数点后三位

#分段函数
x=float(input('请输入一个数字'))

if 0<=x and x<5:
        y=-x+2.5
elif 5<=x and x<10:
        y=2-1.5*(x-3)*(x-3)
else:
    
        y=x/2.0-1.5

print('%.3f'%y)


网站公告

今日签到

点亮在社区的每一天
去签到