矿大学习通python实验三

本人在python上机实践学习中,记录下的自己练习,以此为记录。

# 1编写程序,输入两个点A(x1,y1)和B(x2,y2)的坐标,求AB两点的距离(结果保留一位小数)。程序运行的输入数据和输出结果参考如下:

输入:0,0,3,4

输出:5.0


import math
x1, y1, x2, y2 = input().split(',')
x1, y1, x2, y2 = float(x1), float(y1), float(x2), float(y2)
distance = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
distance = round(distance, 1)
print(distance)



# 2

编写程序,输入球的半径,计算球的表面积和体积(结果保留两位小数)。球的表面积计算公式为76111f144bba4185afa3ba89e6310196.png,体积计算公式为5d46a2e138534625d88efca8f323e1b5.png4/3 πr^3,π值取3.14。

输入:2

输出:50.24 33.49


r = eval(input())
pi = 3.14
S = 4*pi*r**2
V = (4/3)*pi*r**3
print(round(S,2),round(V,2))



# 3

输入一个整数,若为奇数则输出其立方根,否则输出其平方根。可以用单分支、双分支、条件运算实现。

【运行示例1】

输入:20

输出:y的值为:4.47213595499958

【运行示例2】

输入:9

输出:y的值为:2.080083823051904


import math
a = int(input())
if a%2 == 0:
a = math.sqrt(a)
else:
a = math.pow(a,1/3)
print(f"y的值为:{a}")



# 4编写程序,计算铁路运费。已知从甲地到乙地,每张火车票托运行李不超过50公斤时,按每公斤0.25元收取行李托运费;行李若超过50公斤,则超过部分按每公斤0.35元计算托运费。输入行李重量w,计算行李托运的运费y。

【运行示例1】

输入:20

输出:行李托运的运费是:5.0元

【运行示例2】

输入:51

输出:行李托运的运费是:12.85元



a = eval(input())
if a <= 50:
print(f"行李托运的运费是:{a*0.25}元")
else:
print(f"行李托运的运费是:{a*0.35-5}元")
# or
a = eval(input())
if a <= 50:
print("行李托运的运费是:{}元".format(a*0.25))
else:
​b = a*0.35-5
print("行李托运的运费是:{}元".format(b))


# 5编写程序,计算dang员每月所应缴纳的dang费。应缴纳dang费f与工资salary之间的关系函数所示。3f2deb62c8804cf4ba1bb8085bcc6103.jpg

 

 

要求:输入工资,输出党费,结果保留两位小数。

【运行示例1】

输入:200

输出:工资200,应缴党费1.00元

【运行示例2】

输入:750

输出:工资750,应缴党费11.25元



salary = eval(input())
f = 0
if salary <= 400:
f = salary*(0.005)
elif 400 <salary <=600:
f = salary*0.01
elif 600<salary<=800:
f = salary*(0.015)
elif 800<salary<=1500:
f = salary*(0.02)
elif salary>1500:
f = salary*(0.03)
print("工资{},应缴党费{:.2f}元".format(salary,f))



# 6输入三个正数,判断它们能否作为三角形的边组成三角形。若能,则输出三角形是等边三角形、等腰非直角三角形、等腰直角三角形、非等腰直角三角形、普通三角形;若不能,则输出“输入的三个数,不能作为三角形的边组成三角形。”。

【运行示例1】

输入:2,2,2

输出:三角形是等边三角形

【运行示例2】

输入:3,4,5

输出:三角形是非等腰直角三角形

【运行示例3】

输入:5,5,6

输出:三角形是等腰非直角三角形

【运行示例4】

输入:5,6,7

输出:三角形是普通三角形

【运行示例5】

输入:1,2,3

输出:输入的三个数,不能作为三角形的边组成三角形。



a, b, c = eval(input())
if a + b > c and a + c > b and b + c > a:
if a == b and a == c:
print("三角形是等边三角形")
elif a == b or a == c or b == c:
if a * a + b * b == c * c or a * a + c * c == b * b or b * b + c * c == a * a:
print("三角形是等腰直角三角形")
else:
print("三角形是等腰非直角三角形")
elif a * a + b * b == c * c or a * a + c * c == b * b or b * b + c * c == a * a:
print("三角形是非等腰直角三角形")
else:
print("三角形是普通三角形")
else:
print("输入的三个数,不能作为三角形的边组成三角形。")




# 7编程解决古代数学问题“鸡兔同笼”,即已知在同一个笼子里有鸡和兔共M只,鸡和兔的总脚数为N只,求鸡和兔各有多少只。要求:对输入的数据要考虑下面两个条件。

① 输入的总脚数N必须是偶数,否则输出“输入的脚数为奇数,不合理!”;

② 若求出的只数是负数,则输出“求出的只数为负,输入的数据不合理!”

提示:设鸡有x只,兔有y只,则有方程组:

    x + y = M

 2x + 4y = N

解得:x=2M-N/2, y=M-x。

【运行示例1】

输入:

19

44

输出:鸡有16只,兔有3只

【运行示例2】

输入:

20

45

输出:输入的脚数为奇数,不合理!

【运行示例3】

输入:

100

50

输出:求出的只数为负,输入的数据不合理!



M = int(input())
N = int(input())
if N % 2 != 0:
print("输入的脚数为奇数,不合理!")
else:
x = 2 * M - N / 2
y = M - x
if x < 0 or y < 0:
print("求出的只数为负,输入的数据不合理!")
else:
print(f"鸡有{int(x)}只,兔有{int(y)}只")




# 8输入年份、月份,判断该年是否是闰年,以及该月属于哪个季度、该月有多少天。要求:对输入的年份(必须为1000~2100之间的整数,包含1000和2100)和月份(必须为1~12之间的整数,包含1和12)进行校验,若输入数据不合法,应该显示出错信息。提示:判断闰年的条件是年份能被4整除但不能被100整除,或者年份能被400整除;n是否为整数的判断条件可以用“type(n)==int”、“n%1==0”或其他表达式。

【运行示例1】

输入:

2022

12

输出:

2022年不是闰年

12月是第四季度

12月有31天

【运行示例2】

输入:

2022

13

输出:

输入的年份或月份不合法!

【运行示例3】

输入:

2000

2

输出:

2000年是闰年

2月是第一季度

2月有29天



year = eval(input())
month = eval(input())
if not (1000 <= year <= 2100) or not (1 <= month <= 12) or not type(year) == int :
print("输入的年份或月份不合法!")
else:
leap_year = (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
print(f"{year}年{'是' if leap_year else '不是'}闰年")
quarter = (month - 1) // 3 + 1
li = ['一','二','三','四']
print(f"{month}月是第{li[quarter-1]}季度")
​ days_in_month = 31 if month in [1, 3, 5, 7, 8, 10, 12] else \
30 if month in [4, 6, 9, 11] else \
29 if leap_year else 28
print(f"{month}月有{days_in_month}天")



# 9求一元二次方程的根。输入一个一元二次方程ax2+bx+c=0的系数a、b、c,计算并输出根x1、x2(结果显示到小数点后两位)。要求:为使程序具有通用性,应全面考虑方程的根

与系数的关系。97f44291081c4bb48f82afd60ad262f5.jpg提示:关于虚根的表示,可以先求出虚根的实部和虚部,然后用complex()函数创建。例如,求得的实部是1,虚部是2,则complex(1,2)的结果为(1+2j)。有关complex()函数的使用请查阅2.4.3节中表2-12的该函数。

 【运行示例1】

输入:0,0,1

输出:方程无意义

【运行示例2】

输入:0,2,1

输出:方程有一个根:-0.50

【运行示例3】

输入:1,4,3

输出:方程有两个不等实根:x1=-1.00,x2=-3.00

【运行示例4】

输入:1,-2,1

输出:方程有两个相等实根:x1=1.00,x2=1.00

【运行示例5】

输入:4,2,3

输出:方程有两个不等虚根:x1(-0.25+0.83j),x2=(-0.25-0.83j)



import math
a, b, c = eval(input())
if a == 0:
if b == 0:
print("方程无意义")
else:
x = -c / b
print("方程有一个根:{:.2f}".format(x))
else:
disc = b ** 2 - 4 * a * c
if disc > 0:
x1 = (-b + math.sqrt(disc)) / (2 * a)
x2 = (-b - math.sqrt(disc)) / (2 * a)
print("方程有两个不等实根:x1={:.2f},x2={:.2f}".format(x1,x2))
elif disc == 0:
x = -b / (2 * a)
print("方程有两个相等实根:x1={:.2f},x2={:.2f}".format(x,x))
else:
real_part = -b / (2 * a)
imaginary = math.sqrt(abs(disc)) / (2 * a)
x1 = complex(real_part, imaginary)
x2 = complex(real_part, -imaginary)
print("方程有两个不等虚根:x1=({:.2f}),x2=({:.2f})".format(x1,x2))



# 10编写程序计算某位学生可获奖学金的级别,以3门功课成绩M1、M2、M3为评奖依据。标准如下:

一等奖:符合下列条件之一者,① 各门功能的平均成绩大于95分者;② 有两门功课成绩是100分,且第三门功课成绩不低于80分者。

二等奖:符合下列条件之一者,① 各门功能的平均成绩大于90分者;② 有一门功课成绩是100分,且其他两门功课成绩不低于75分者。

三等奖:各门功课成绩不低于70分者。

【运行示例1】

输入:

100

100

90

输出:该同学获得一等奖学金。

【运行示例2】

输入:

95

90

98

输出:该同学获得二等奖学金。

【运行示例3】

输入:

85

75

70

输出:该同学获得三等奖学金。

【运行示例4】

输入:

60

88

70

输出:该同学没有获得奖学金。



M1 = int(input())
M2 = int(input())
M3 = int(input())
average_score = (M1 + M2 + M3) / 3
if average_score > 95 or (M1 == 100 and M2 == 100 and M3 >= 80) or (M1 == 100 and M2 >= 80 and M3 == 100) or (M1 >= 80 and M2 == 100 and M3 == 100):
print("该同学获得一等奖学金。")
elif average_score > 90 or (M1 == 100 and M2 >= 75 and M3 >= 75) or (M2 == 100 and M1 >= 75 and M3 >= 75) or (M3 == 100 and M1 >= 75 and M2 >= 75):
print("该同学获得二等奖学金。")
elif M1 >= 70 and M2 >= 70 and M3 >= 70:
print("该同学获得三等奖学金。")
else:
print("该同学没有获得奖学金。")

 

 

  • 29
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值