1.3分支结构(二)

第1关:分段函数

本关任务:有一分段函数如下:

,

编程实现,输入x值,输出满足函数关系的y值。

#分段函数
x=eval(input())  #输入x的值
#代码开始
if x<1:
    y=x
elif 1<=x<10:
    y=2*x-1
    
else:
    y=3*x-1

#代码结束
print("{:.2f}".format(y)) 

第2关:输入年月输出该月的天数

本关任务:输入年份和月份,输出该月天数。

提示:月份有31、30天,二月可能是29或28天, 对输入年份需要判断是否是闰年。 如:有31天的月份为[1,3,5,7,8,10,12]月。

#输入年月输出该月的天数
#输入年月输出该月的天数
y=eval(input())    #输入年份
m=eval(input())   #输入月份
d=0                 #天数
#代码开始
if m==2 :
    if y%4==0 and y%100 !=0 or y%400==0:
        d=29
    else:
        d=28
elif m!=2:
    if m==1or m==3 or m==5or m==7or m==8 or m==10 or m==12:
        d=31
    else:
        d=30

#代码结束
print(d)

第3关:判断三角形类型

本关任务:编写一个根据三角形的三条边长,判定是何种三角形的程序。

#判定三角形类型
a=eval(input())  #输入三角形的三条边a、b和c
b=eval(input())
c=eval(input())
#代码开始
if a+b>c and a+c>b and b+c>a:
    if a==b==c:
        print('正三角形')
    elif a==b!=c or b==c!=a or a==c!=b:
        print('等腰三角形')
    elif a*a+b*b==c*c or a*a+c*c==b*b or c*c+b*b==a*a :
        print('直角三角形')
    else:
        print('一般三角形')
else:
    print('不构成三角形')

 第4关:根据身份证号判断是否到了合法结婚年龄

本关任务: 我国身份证是18位,第7~14位表示出生年月日,第17位是性别表示位,奇数为男性,偶数为女性。输入一个身份证号,首先判断其长度是否正确;若正确再判断输出其性别及是否到了合法结婚年龄。 我国婚姻法规定,男性22岁和女性20岁为合法结婚年龄。本题不考虑月份,以2021年为参考,2000年1月1日后出生的男性和2002年1月1日后出生的女性视为未到法定结婚年龄。

提示:性别的判断问题转换为奇偶数的判别,这是模运算的基本应用,一个整数对2取模,若余数为0则表示该整数为偶数,否则为奇数。

#根据身份证号判断是否到了合法结婚年龄
id= input()  #输入身份证号码
n=id[6:10]
z=id[-2]
x=eval(n)
y=eval(z)
if len(id)==18:
    if y%2==0:
        print('性别:女')
        if 2021-x>=20:
            print('达到合法结婚年龄')
        else:
            print('未到合法结婚年龄')    
    else: 
        print('性别:男')
        if 2021-x>=22:
            print('达到合法结婚年龄')
        else:
            print('未到合法结婚年龄')  
else:
    print('身份证号错误')

第5关:计算每月水费

本关任务:计算每月水费。 输入上月水表读数、本月水表读数、家庭人数和是否低保(y/n),计算并输出用水度数和水费。 某市水费价格实施阶梯式水价制度: (1)凡四口之家及以下,按户均用水量计价。 第一阶梯:每户每月15吨以下(含15吨)为2.88元/吨;第二阶梯:每户每月15~22吨(含22吨)为3.64元/吨;第三阶梯:每户每月22吨上为4.39元/吨。 (2)凡五口之家及以上,按人均用水量计价。 第一阶梯:每人每月4吨(含4吨)为2.88元/吨;第二阶梯:每人每月4~5吨(含5吨)为3.64元/吨;第三阶梯:每人每月5吨以上为4.39元/吨。 此外,对于低保居民,每户每月减免6吨的水费(若本月用水量不足6吨,不累计减免)。

#计算每月水费
l=eval(input("上月水表读数(吨):"))
c=eval(input("本月水表读数(吨):"))
n=eval(input("家庭人数:"))
i=input("是否低保(y/n):")
a=0    #每月用水吨数
m=0     #每月水费
#代码开始
a=c-l
if i=='n':
    if n<=4:
        if a<=15:
            m=a*2.88
        elif 15<a<=22:
            m=43.2+(a-15)*3.64
        else:
            m=43.2+25.48+(a-22)*4.39 
    elif n>=5:
        if a<=n*4:
            m=a*2.88
        elif n*4<a<=n*5:
            m=n*4*2.88+(a-n*4)*3.64
        else:
            m=n*4*2.88+n*3.64+(a-n-n*4)*4.39 
elif i=='y':
    if n<=4:
        if a<=6:
            m=0
        elif 6<a<=15:
            m=(a-6)*2.88
            a=a-6
        elif 15<a<=22:
            m=43.2+(a-6-15)*3.64
            a=a-6
        else:
            m=43.2+25.48+(a-6-22)*4.39 
            a=a-6
    elif n>=5:
        if a<=n*4:
            if a<=6:
                m=0
                a=a-6
            else:
                m=(a-6)*2.88
                a=a-6
        elif n*4<a<=n*5:
            if a<=6:
                m=(a)*3.64
            else:
                m=n*4*2.88+(a-6-n*4)*3.64
                a=a-6
        else:
            if a<=6:
                m=(a)*4.39 
            else:
                m=n*4*2.88+n*3.64+(a-6-n-n*4)*4.39
                a=a-6

#代码结束
print("本月用水吨数(减免后){:.2f}吨,水费{:.2f}元".format(a,m))

求个三连不过分吧。。。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值