湖南大学python头歌实训-分支语句

第二章-Python语言基础-2.2条件分支(一)

任务描述
本关介绍顺序结构,程序最基本的结构就是顺序结构,顺序结构就是程序按照语句顺序,从上到下依次执行各条语句。

本关要求读者理解顺序结构,对输入的三个数changeone,changetwo,plus能够先交换changeone,cahngetwo值,然后计算changeone + plus的值。

相关知识
要实现上述功能,需要严格按照顺序来实现每一个步骤。如果顺序错误,那么便会得出错误结果。

顺序结构
顺序结构如下图所示:

假设存在a,b,c三个整数,如果按照以下顺序执行:

c = a + b
b = c – a
a = b + c
与按照顺序

b = c – a
a = b + c
c = a + b
得出的a,b,c的结果是不同的。

交换数值

假设存在整数a = 10,b = 20,交换a,b数值的语句如下:

tmp = a
a = b
b = tmp
编程要求
本关的编程任务是补全inTurn.py文件中的函数部分,程序中给出a,b,c三个整数,要求实现先交换a,b的值,然后计算a + c的值并输出。

本关涉及的代码文件inTurn.py的代码框架如下:

changeOne = int(input())
changeTwo = int(input())
plus = int(input())

请在此添加代码,交换changeOne,changeTwo的值,然后计算changeOne和plus的和result的值

* Begin _*#
#
_ End ***

print(result)
测试说明
本关的测试文件是src/step1/inTurn.py。

读者将 src/step1/inTurn.py 中的代码补充完毕,然后点击评测,平台自动编译运行 inTurn.py ,并以标准输入方式提供测评输入;

平台获取程序的输出,然后将其与预期输出对比,如果一致则测试通过;否则测试失败。

以下是平台对src/step1/inTurn.py的样例测试集:

测试输入:

2
5
10
预期输出:
15

changeOne = int(input())
changeTwo = int(input())
plus = int(input())

changeOne,changeTwo=changeTwo,changeOne
result=plus+changeOne

print(result)

任务描述
程序的第二大结构就是选择结构,在此结构中,程序通过对一个代码块或者几个代码块的判断来决定接下来运行哪一个代码块。

以下场景还原了选择结构的现实场景:某公司根据员工的工龄来决定员工工资的涨幅,当员工的工龄大于等于5年并小于10年时,涨幅是现工资的5%;当员工的工龄大于等于10年并小于15年时,涨幅是现工资的10%;工龄大于等于15年时工资涨幅为15%。

本关的任务是让读者理解选择结构,学会使用最基本的选择语句:if-else语句。

相关知识
选择结构
选择结构如下图所示:

if-else语句
在python中,if-else语句用于控制程序执行,基本形式为:

if 判断语句1:
step1
else:
step2
当判断语句1为真时,执行step1,不成立执行step2。
例如:

name = ‘choose’

判断变量name是否为’choose’

if name == ‘choose’
print(“条件成立”)
else
print(“条件不成立”)
elif语句
当判断条件有多个时,则用elif语句,基本形式为:

if 判断语句1:
step1
elif 判断语句2:
step2
elif 判断语句3:
step3
……

else:
step
当判断语句1为真时,执行step1,判断语句1为假,判断语句2为真时执行step2,……,最后判断语句都为假时执行step。
例如:

userId = 43

判断员工号

if userId == 10:
print(“这是10号员工”)
elif userId == 22:
print(“这是22号员工”)
elif userId == 18:
print(“这是18号员工”)
else:
print(“员工ID为:”,userId)
如果你想了解更多运算符相关知识,请参考[美]Katie Cunningham著《Python入门经典》第三章。

编程要求
本关的编程任务是补全choose.py文件中的判断语句部分,具体要求如下:

填入如果workYear < 5的判断语句

填入如果workYear >= 5 and workYear < 10的判断语句

填入如果workYear >= 10 and workYear < 15的判断语句

填入当上述条件判断都为假时的判断语句

本关涉及的代码文件choose.py的代码框架如下:

workYear = int(input())

请在下面填入如果workYear < 5的判断语句

* Begin _*#
#
_ End _#
print(“工资涨幅为0”)
#请在下面填入如果workYear >= 5 and workYear < 10的判断语句
#
Begin #
#
End #
print(“工资涨幅为5%”)
#请在下面填入如果workYear >= 10 and workYear < 15的判断语句
#
Begin #
#
End #
print(“工资涨幅为10%”)
#请在下面填入当上述条件判断都为假时的判断语句
#
Begin #
#
_ End ****

print(“工资涨幅为15%”)
测试说明
本文的测试文件是src/step2/choose.py,具体测试过程如下:

读者将 src/step2/choose.py 中的代码补充完毕,然后点击评测,平台自动编译运行 choose.py ,并以标准输入方式提供测评输入;

平台获取程序的输出,然后将其与预期输出对比,如果一致则测试通过;否则测试失败。

以下是平台对src/step2/choose.py的样例测试集:

测试输入:10

预期输出:工资涨幅为10%

任务描述
程序中的选择结构中除了if-else,elif之外,还有一个三元操作符。三元操作符也是根据条件判断执行哪一个代码块,但三元操作符的最大特点是不需要像if-else语句那样写多行代码,三元操作符只需一行代码。

本关要求读者能够学会并使用三元操作符来判断谁才是射击比赛的赢家。

相关知识
三元操作符
三元操作符的基本格式为:

result = x if x < y else y
其中,x < y为判断语句,若x < y为真则result = x,否则result = y。

如果你想了解更多运算符相关知识,请参考[美]Katie Cunningham著《Python入门经典》第三章。

编程要求
本关的编程任务是补全isWin.py文件中的判断语句部分,具体要求如下:

根据输入的jim与jerry的射击得分,若jim得分更高,则赢家为jim,输出jim的名字;若jerry得分更高,则赢家为jerry,输出jerry的名字。
本关涉及的代码文件isWin.py的代码框架如下:

jimscore = int(input())
jerryscore = int(input())

请在此添加代码,判断若jim的得分jimscore更高,则赢家为jim。若jerry的得分jerryscore更高,则赢家为jerry并输出赢家的名字。

* Begin _*#
#
_ End ***

print(winner)
测试说明
本文的测试文件是src/step3/isWin.py,具体测试过程如下:

读者将 src/step3/isWin.py中的代码补充完毕,然后点击评测,平台自动编译运行 isWin.py ,并以标准输入方式提供测评输入;

平台获取程序的输出,然后将其与预期输出对比,如果一致则测试通过;否则测试失败。

以下是平台对src/step3/isWin.py的样例测试集:

测试输入:
13
15
预期输出:
jerry

workYear = int(input())

if workYear<5:

    print("工资涨幅为0")

elif workYear>=5 and workYear<10:

    print("工资涨幅为5%")

elif workYear>=10 and workYear<15:

    print("工资涨幅为10%")

else:

    print("工资涨幅为15%")

任务描述
本关任务:本关主题是通过解决简单问题,实践Python分支结构基础。
仔细阅读背景知识,学习Python分支结构的语法构成及语义,学会分支结构如何编排语句的执行顺序,以及实际问题哪些解决方案需要用分支结构来表达。完成下面的实训。
这些实训中,请在指定的位置编写程序,得到正确的输出。

相关知识
(略)

编程要求
根据提示,在右侧编辑器Begin-End处补充代码,完成如下要求:
第一题
有31天的月份为[1,3,5,7,8,10,12]月

请编写程序,输入1~12的整数,若它对应的月份为31天则输出yes,否则输出no。

第二题
气象预报时,一般按照风速对飓风进行分级,下表给出对应关系。

风速 74-95 96-110 111-130 131-154 155及以上
级别 1 2 3 4 5
请编写程序,根据用户输入的风速,输出对应的飓风等级。

jimscore = int(input())
jerryscore = int(input())

winner='jim' if jimscore>jerryscore else 'jerry'

print(winner)


"""
Created on Sat Aug 29 09:49:20 2020

@author: hzh
"""

month = int(input())

if (1month7 and month%2==1) or (8month12 and month%2==0):
    print('yes')

else:
    print('no')

print('\n***********************\n')

velocity = int(input())

rank = 0

if 74velocity95:
    rank=1

elif 96velocity110:
    rank=2

elif 111velocity130:
    rank=3

elif 131velocity154:
    rank=4

elif velocity>=155:
    rank=5
else:
    rank=0

print(rank)

第二章-Python语言基础-2.2条件分支(理科)

任务描述
本关任务:掌握python单分支、多分支程序设计基本入门。

相关知识
为了完成本关任务,你需要掌握:1.if–else二分支,2.if–else多分支

if-else语句

在python中,if-else语句用于控制程序执行,基本形式为:

if 判断语句1:
step1
else:
step2
当判断语句1为真时,执行step1,不成立执行step2。

elif语句
当判断条件有多个时,则用elif语句嵌套解决,基本形式为:

if 判断语句1:
step1
elif 判断语句2:
step2
elif 判断语句3:
step3
……

else:
step
当判断语句1为真时,执行step1,判断语句1为假,判断语句2为真时执行step2,……,最后判断语句都为假时执行step。

编程要求
根据提示,在右侧编辑器补充代码,完成分支程序设计。
第1题:
闰年的判断:判断某一年是否是闰年,是则输出yes,否则输出no。
第2题:
月份天数判断:从键盘输入月份,判读该月份是否是30天,是则输出yes,否则输出no。
第3题:
成绩等级判断:从键盘输入学生成绩,如果学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
第4题:
气象预报时,一般按照风速对飓风进行分级,下表给出对应关系。
风速 74-95 96-110 111-130 131-154 155及以上
级别 1 2 3 4 5
请编写程序,根据用户输入的风速,输出对应的飓风等级。


"""
Created on Tue Sep  8 06:29:54 2020

@author: hzh
"""

year = int(input())

if (year%4==0 and year%100!=0) or year%400==0:
    print('yes')

else:
    print('no')

month = int(input())

if month==4 or month==6 or month==9 or month==11:
    print('yes')

else:
    print('no')

scores = int(input())
grade = '0'

if scores>=90:
    garde='A'

elif 60scores89:
    grade='B'

else:
    grade='C'

print(grade)

velocity = int(input())

rank = 0

if 74velocity95:
     rank=1

elif 96velocity110:
     rank=2

elif 111velocity130:
     rank=3

elif 131velocity154:
     rank=4

elif velocity>=155:
     rank=5

else:
    rank=0
print(rank)

任务描述
本关任务:本关主题是通过解决简单问题,实践Python分支结构基础训练。

相关知识(略)
根据提示,在右侧编辑器Begin-End处补充代码,完成如下要求:

第1题
摄氏温度转换为华氏温度的公式是:F=
5
9

C+32,热力学上的绝对零度相当于摄氏-273.15℃,低于这个温度意义不大。请完成程序,将有意义的摄氏温度转换成对应的华氏温度,如果是无意义的数据结果输出为None。

第2题
请编写程序,计算给定的实数的绝对值。(要求:不准使用abs函数)

第3题
请完成程序,对给定的一对整数,按从小到大排序。

第4题
请完成程序,对给定的三个整数,按从小到大排序。

第5题
请完成程序,对给定的一对整数,计算第一个数除以第二个数的结果,结果是实数。

第6题
请完成程序,对给定的三个实数,假设第一个实数是二次项系数、第二个是一次项系数、第三个是常数项,请计算以这三个实数为系数的一元二次方程的实根,若方程无实根, 输出为None。

第7题
请完成程序,实现以下函数f的计算能力,对给定的x值,计算正确的f(x)结果。
f(x)=

























x−2
x+3
x
2

∣x∣
x
3

3x−4
4x+1

−10⩽x

编程要求
根据提示,在右侧编辑器补充代码,计算并输出数组的平均值和最大值。


"""
Created on Tue Sep  8 07:49:34 2020

@author: hzh
"""

def print_(x):
    if type(x) == float:
        print("%.4f" % x)
    else:
        print(x)

for temp in [-280, -100, 0, 20, 120, 200]:

    if temp<-273.15:
        F=None
    else:
        F=9*temp/5+32

    print_(F)

print('\n***********************\n')

for number in [-101.23, -3.14, 0, 12.55, 1908]:

    if number<0:
        number=0-number

    print_(number)

print('\n***********************\n')

for (num1, num2) in [(12, 34), (-6, -7),(-12, 23), (-273, 0), (0, 199)]:

    if num1>num2:
        num1,num2=num2,num1

    print(num1, '  ', num2)

print('\n***********************\n')

for (num1, num2, num3) in [(-231, -321, 123), (100, 0, -99), (-980, -1002, -1), (6,1,2017)]:

    if num1<num2:
        if num3<num2:
            num2,num3=num3,num2
    if num2<num1:
        if num1<num3:
            num1,num2=num2,num1
        elif num3<num2:
            num1,num2,num3=num3,num2,num1
        else:
            num1,num2,num3=num2,num3,num1

    print(num1, num2, num3)

print('\n***********************\n')

for (num1, num2) in [(10, 5), (12,34), (89,0), (-100, 23), (789, -123)]:

    if num2==0:
        print('None')
    else:
        result=num1/num2

        print_(result)

print('\n***********************\n')

for (a, b, c) in [(1,2,1), (1,-2,1), (1,2,-3), (12, 34, 56), (78, 89, 100)]:

    x=b**2-4*a*c
    if x>=0:
        root1=(-b+x**0.5)/2*a
        root2=(-b-x**0.5)/2*a
    else:
        root1=None
        root2=None

    print(root1, root2)

print('\n***********************\n')

for x in [-9, -8, -7, -6, -5, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8]:

    if -10x<-8:
        fx=x-2
    if -8x<-6:
        fx=x+3
    if -6x-2:
        fx=x**2
    if -2<x<2:
        fx=abs(x)
    if 2x4:
        fx=x**3
    if 4<x6:
        fx=3*x-4
    if 6<x8:
        fx=4*x+1

    print_(fx)

相关知识 (略)
编程要求
根据提示,在右侧编辑器Begin-End处补充代码,完成如下要求:

第一题:BMI 问题的求解
请完成程序,根据下图表格,计算国内与国际BMI的值
,
已知某人的体重和身高,根据上表计算国内与国外的BMI,并输出结果。
提示:BMI= 体重/(身高的平方)
第二题:个人所得税的计算问题
在指定位置编写代码,实现一个函数,功能是根据下表计算个人所得税。
,
注:具体输出请查看测试集。

第三题:剪刀石头布的游戏问题
1、编写程序实现:剪刀、石头和布的游戏。
规则说明:1)两个人出的相同的为平局;
2)布胜过石头,石头胜过剪刀,剪刀胜过布。
提示:玩家:p1,p2
‘剪刀”石头”布’= ‘j’,’s’,’b’
结果: 0:平局,1:p1胜,-1:p1负


"""
Created on Fri Aug 28 15:27:35 2020

@author: hzh
"""

for (Weight,Height) in [(60,1.65),(40,1.60),(80, 1.70),(75,1.83),(88,1.80)]:
    bmi = Weight / pow(Height, 2)
    wto, dom = " ", " "

    if bmi<18.5:
        wto="偏瘦"
        dom="偏瘦"
    if 18.5bmi25:
        wto="正常"
    if 18.5bmi24:
        dom="正常"
    if 25<bmi<30:
        wto="偏胖"
    if 24<bmi<28:
        dom="偏胖"
    if bmi>=30:
        wto="肥胖"
    if bmi>=28:
        dom="肥胖"

    print("BMI 指标为:国际'{0}', 国内'{1}'".format(wto, dom))
print('\n******************************\n')

for salary in [-1000, 0, 40000, 47450, 98000, 114650, 14980, 17470, 25670, 311950, 360000]:

    if 0salary47449:
        salaTax=0.22*salary
    elif 47450salary114649:
        salaTax=0.25*salary
    elif 114650salary174699:
        salaTax=0.28*salary
    elif 174700salary311949:
        salaTax=0.33*salary
    elif salary>=311950:
        salaTax=0.35*salary
    else:
        salaTax=0

    print("%.4f" %salaTax)
print('\n***********************\n')

for (p1, p2) in [('s', 'j'), ('b', 'j'),('j', 'j'), ('b', 's')]:

    if p1==p2=='j' or p1==p2=='s' or p1==p2=='b':
        game=0
    elif (p1=='j' and p2=='b') or (p1=='s' and p2=='j') or (p1=='b' and p2=='s'):
        game=1
    else:
        game=-1

    print(game)
print('\n***********************\n')

实验四 分支结构

任务描述
本关任务:编写一个能判断三角形类型的小程序。
输入三个数值,判断其是否能构成三角形的三条边。如果能构成,判断其是否等边三角形、直角三角形还是普通三角形。

相关知识
为了完成本关任务,你需要掌握:1.如何写条件,2.多分支语句。

条件表达式
条件表达式中可以包含关系运算和逻辑运算
关系运算有大于>、等于==,小于

多分支语句
多分支语句的语法格式为:
if

Python依次评估寻找第一个结果为True的条件,执行该条件下的语句块,同时结束后跳过整个if-elif-else结构,执行后面的语句。
如果没有任何条件成立,else下面的语句块被执行。
else子句是可选的

编程要求
根据提示,在右侧编辑器补充代码,判断三角形类型。

测试说明
平台会对你编写的代码进行测试:

测试输入:3,4,5;
预期输出:
直角三角形

测试输入:6,6,6;
预期输出:
等边三角形

测试输入:1,2,3;
预期输出:
无法构成三角形

测试输入:3,4,6;
预期输出:
普通三角形

x=eval(input("边长一"))
y=eval(input("边长二"))
z=eval(input("边长三"))

if (x**2+y**2)==z**2 or (x**2+z**2)==y**2 or (y**2+z**2)==x**2:
    print('直角三角形')
elif x==y==z:
    print('等边三角形')
elif (x+yz or abs(x-y)>=z) or (z+yx or abs(z-y)>=x) or (x+zy or abs(x-z)>=y):
    print('无法构成三角形')
else:
    print('普通三角形')

任务描述
有一分段函数如图所示
分段函数

本关任务:编写一个能根据x的值计算y值的小程序。

相关知识
为了完成本关任务,你需要掌握:多分支结构

多分支结构
语法格式
if

Python依次评估寻找第一个结果为True的条件,执行该条件下的语句块,同时结束后跳过整个if-elif-else结构,执行后面的语句。
如果没有任何条件成立,else下面的语句块被执行。
else子句是可选的

编程要求
根据提示,在右侧编辑器补充代码,实现上图所示的分段函数。

测试说明
平台会对你编写的代码进行测试:

测试输入:50;
预期输出:
149

测试输入:-5;
预期输出:
-5

测试输入:5;
预期输出:
9

x=eval(input())

if x<1:
    y=x
if 1x<10:
    y=2*x-1
if x>=10:
    y=3*x-1

print("{:.2f}".format(y))

任务描述
本关任务:长沙市按照阶梯电价计算电费,第一档是200度及以下的0.588/度。第二,三档分季节,春秋季:第二档是200度以上-350度的0.638/度,第三档是350度以上0.888/度。冬夏季:第二档是200度以上-450度的0.638/度,第三档是450度以上0.888/度。根据输入的上月电表度数、本月电表度数和月份来计算电费。3-5月份为春季,6-8月份为夏季,9-11为秋季,12-2月份为冬季。
输入居民的上月和本月的电表度数,计算用电度数和电费。

测试说明
平台会对你编写的代码进行测试:

测试输入:
上月电表读数200
本月电表读数800
月份7

预期输出:
用电度数600.0
电费410.30

测试输入:
上月电表读数150
本月电表读数450
月份4

预期输出:
用电度数300.0
电费181.40

提示:
哪个条件嵌条在哪个条件里面,需要考虑清楚

sy=eval(input("输入上月电表度数"))
by=eval(input("输入本月电表度数"))
yf=eval(input("输入月份"))

ds=by-sy
if ds200:
    df=ds*0.588

if 3yf5 or 9yf11:
    if 200<ds350:
        df=(ds-200)*0.638+0.588*200
    if ds>350:
        df=(ds-350)*0.888+0.588*200+0.638*150
if 6yf8 or 1yf2 or yf==12:
    if 200<ds450:
        df=(ds-200)*0.638+200*0.588
    if ds>450:
        df=(ds-450)*0.888+200*0.588+250*0.638

print("用电度数{:.2f}电费{:.2f}".format(ds,df))

任务描述
本关任务:编写一个计算水费的小程序。
长沙市水费计量实施阶梯式水价制度:对四口之家及以下以户为单位进行计量,五口之家及以上按人均计量办法。
对四口之家及以下户:第一级水价为15吨及以下,按2.58元每吨计费;第二级水价为22吨及以下,按3.34元每吨计费;第二级水价为超过22吨,按4.09元每吨计费。
对五口之家及以上户:第一级水价为每人每月4吨及以下,按2.58元每吨计费;第二级水价为每人每月5吨及以下,按3.34元每吨计费;第二级水价为超过每人每月5吨,按4.09元每吨计费。
此外,对于低保居民,每户每月减免6立方米的水费

编程要求
根据提示,在右侧编辑器补充代码,输入上月水表读数、本月水表读数、家庭人数、是否低保(y/n),计算并输出用水度数和水费。

测试说明
平台会对你编写的代码进行测试:

测试输入:输入上月水表吨数10
输入本月水表吨数40
输入家庭人数3
是否低保(y/n)y

预期输出:
用水吨数(减免后)24.00水费70.26

测试输入:输入上月水表吨数30
输入本月水表吨数80
输入家庭人数6
是否低保(y/n)n
预期输出:
用水吨数(减免后)50.00水费163.76

测试输入:输入上月水表吨数10
输入本月水表吨数13
输入家庭人数6
是否低保(y/n)y
预期输出:
用水吨数(减免后)-3.00水费0

sy=eval(input("输入上月水表吨数"))
by=eval(input("输入本月水表吨数"))
rs=eval(input("输入家庭人数"))
db=input("是否低保(y/n)")

sl=by-sy
if db=='y':
    sl=sl-6

if rs4:
    if sl15:
        sf=2.58*sl
    if 15<sl22:
        sf=3.34*(sl-15)+2.58*15
    if sl>22:
        sf=4.09*(sl-22)+3.34*7+2.58*15
if rs>=5:
    if sl/rs4:
        sf=2.58*sl
    if 4<sl/rs5:
        sf=3.34*sl
    if sl/rs>5:
        sf=4.09*sl
if sl<0:
    sf=0

print("用水吨数(减免后){:.2f}水费{:.2f}".format(sl,sf))

任务描述
本关任务:编写一个能计算手机话费的小程序。
某用户办理了中国移动128元的5g套餐,套餐内包含每月30g流量和500分钟的通话时间。通话超出时间,按0.15元每分钟计算。套餐流量超出后,5元1GB.满15元后,按照3元1G进行计费。
输入该用户使用的流量和通话时间,计算其费用

测试说明
平台会对你编写的代码进行测试:

测试输入:
流量20
通话时间300
预期输出:
费用128

流量60
通话时间600
预期输出:
费用239

ll=eval(input("流量"))
thsj=eval(input("通话时间"))

if ll30 and thsj500:
    fy=128
if ll30 and thsj>500:
    fy=128+0.15*(thsj-500)
if ll>30 and thsj500:
    if (ll-30)3:
        fy=128+(ll-30)*5
    if (ll-30)>3:
        fy=128+15+(ll-33)*3
if ll>30 and thsj>500:
    if (ll-30)3:
        fy=128+(ll-30)*5+0.15*(thsj-500)
    if (ll-30)>3:
        fy=128+15+(ll-33)*3+0.15*(thsj-500)
print('费用{:.2f}'.format(fy))

任务描述

成年人血压的正常范围是60mmHg

本关任务:编写一个程序,输入舒张压和收缩压,判断其属于高血压、低血压或正常血压。

测试说明
平台会对你编写的代码进行测试:

测试输入:70 100;
预期输出:正常血压

测试输入:100 130
预期输出:
高血压

测试输入:50 100
预期输出:
低血压

x=eval(input())
y=eval(input())

if x>=90 or y>=140:
    print('高血压')
elif x<60 or y<90:
    print('低血压')
else:
    print('正常血压')

任务描述
对于在职党员,工资收入在3000元及以下,交纳月工资收入的0.5%; 3000元以上至5000元(含5000元)者,交纳1%; 5000元以上至10000元(含10000元)者,交纳1.5%; 10000元以上者,交纳2%。
对于离退休党员,离退休费总额5000元以下(含5000元)的按0.5%交纳党费,5000元以上的按1%交纳党费。

本关任务:编写程序,输入是否退休(y或Y表示退休)和收入,输出应缴纳党费

注意:党费不是累进计算,而是直接按比例收取,例如,在职党员,收入8000,直接按1.5%收取
离退休党员,收入6000,直接按1%收取

测试说明
平台会对你编写的代码进行测试:

测试输入:n 8000
预期输出:120.00

测试输入:y 8000
预期输出:80.00

测试输入:n 2000
预期输出:10.00

测试输入:y 2000
预期输出:10.00

ch=input("")
s=eval(input(""))

if ch=='n':
    if s3000:
        df=s*0.005
    if 3000<s5000:
        df=s*0.01
    if 5000<s10000:
        df=s*0.015
else:
    if s5000:
        df=s*0.005
    if s>5000:
        df=s*0.01

print("{:.2f}".format(df))

任务描述
某公司按小时计费工资。规定每周5个工作日,每天工作8小时。工作日超时工作工资为正常工资的1.5倍。休息日工资,4小时内为正常工资的2倍,超过4小时的部分为正常工资的3倍。
输入每小时工资,员工每周的工作日工作小时数和休息日工作小时数,计算其该周工资
例如每小时工资30元。工作日50小时,休息日8小时,其工资为2250.00元
40 _30+10_30 _1.5+4_30 _2+4_30*3=2250
本关任务:输入每小时工资,员工每周的工作日工作小时数和休息日工作小时数,计算其该周工资

测试说明
平台会对你编写的代码进行测试:

测试输入:
工资标准30
工作日工作时间50
休息日工作时间8
预期输出:
工资2250.00

测试输入:
工资标准20
工作日工作时间80
休息日工作时间40
预期输出:
工资4320.00

gzbz=eval(input("工资标准"))
gzr=eval(input("工作日工作时间"))
xxr=eval(input("休息日工作时间"))

if gzr40:
    if xxr==0:
        gz=gzr*gzbz
    if 0<xxr4:
        gz=gzr*gzbz+xxr*2*gzbz
    if xxr>4:
        gz=gzr*gzbz+(xxr-4)*3*gzbz+4*2*gzbz
if gzr>40:
    if xxr==0:
        gz=40*gzbz+(gzr-40)*1.5*gzbz
    if 0<xxr4:
        gz=40*gzbz+xxr*2*gzbz+(gzr-40)*1.5*gzbz
    if xxr>4:
        gz=40*gzbz+(xxr-4)*3*gzbz+4*2*gzbz+(gzr-40)*1.5*gzbz

print("工资{:.2f}".format(gz))

实验3-1-程序控制-选择结构

任务描述
本关任务:输入一个整数,判断其是不是正数。
如果是正数,输出正数并换行。否则,什么都不做。

编程要求
本关只有一个文件main.py。完善该文件已完成任务。


a=eval(input())
if a>0:
    print("正数\n")

任务描述
本关任务:编写单按钮开关灯光控制程序。

相关知识
单按钮控制是非常常见的控制程序。程序实现时首先判断灯光当前状态,根据状态的不同来控制灯光状态的变化。

测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
light=input()
语句从测试集中读入light的状态,测试集为:”开”或”关”
如果读入ligth值为”开”,则应将light值设置为”关”
相反读入ligth值为”关”,则应将light值设置为”开”
测试输入:关;
预期输出:

测试输入:开;
预期输出:


light=input()

if light=='开':

    print('关')
if light=='关':

    print('开')

任务描述
本关任务:编写一个能求解一元二次方程的小程序。
一元二次方程ax
2
+bx+c=0
a、b、c三个系数由测试集读入,根据三个系数来求解x的值则应为:
1、a=0 时输出: x=−c/b
2、b
2
−4ac=0时输出: x1=x2=−b/2a
3、b
2
−4ac>0时输出: x1=(−b+sqrt(b
2
−4ac))/2a,x2=(−b−sqrt(b
2
−4ac))/2a
4、b
2
−4ac

测试集数据读入a、b、c的值为
1; 2; 3
输出为
x1= (-1+1.4142135623730951j) x2= (-1-1.4142135623730951j)

相关知识
1、求平方根:sqrt的用法
sqrt是math库里的一个函数,求平方根,使用前需要引入math,
本题目在第一行已经为大家引入该模块,后面直接使用math.sqrt函数即可,不用再次import math
使用方法如下:

import math
a=3
b=4
x=math.sqrt(a 2+b3) #调用math.sqrt求根下 a平方加b的三次方
print(‘x=’,x)
x的值就是根下a平方加b的三次方

2、复数生成:complex的用法

complex是python中生成一个复数的方法。使用方法如下:

a=2
b=3
c=complex(a,b) #调用complex生成了一个实部为a,虚部为b的复数c
print©
则会输出:
(2+3j)

测试说明

平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。

import math
a=float(input())
b=float(input())
c=float(input())

if a==0:
    x=-c/b
    print("x=",x)
if (b**2-4*a*c)==0 and a!=0:
    x1=-b/2*a
    x2=-b/2*a
    print("x1=",x1,"x2=",x2)
if (b**2-4*a*c)>0 and a!=0:
    x1=(-b+math.sqrt(b**2-4*a*c))/2*a
    x2=(-b-math.sqrt(b**2-4*a*c))/2*a
    print("x1=",x1,"x2=",x2)
if (b**2-4*a*c)<0 and a!=0:
    n=-b/(2*a)
    m=math.sqrt(4*a*c-b**2)/2*a
    x1=complex(n,m)
    x2=complex(n,-m)
    print("x1=",x1,"x2=",x2)

任务描述
本关任务:编写一个能输入分数后输出等级的小程序。
分数有score=input()从测试集中读取,等级根据读取的分数进行划分

90

Original: https://blog.csdn.net/SUOLONG1/article/details/126552077
Author: 勤奋努力的野指针
Title: 湖南大学python头歌实训-分支语句

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/669732/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球