python_习题一
实例1: 温度转换
描述
这是"实例"题,与课上讲解实例相同,请作答检验学习效果。
温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fahrenheit)。
请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。
转换算法如下:(C表示摄氏度、F表示华氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32
要求如下:
(1) 输入输出的摄氏度可采用大小写字母C结尾,温度可以是整数或小数,如:12.34C指摄氏度12.34度;
(2) 输入输出的华氏度可采用大小写字母F结尾,温度可以是整数或小数,如:87.65F指华氏度87.65度;
(3) 输出保留小数点后两位,输入格式错误时,输出提示:输入格式错误;
(4) 使用input()获得测试用例输入时,不要增加提示字符串。
输入
示例1:12.34C
示例2:87.65F
输出
示例1:54.21F
示例2:30.92C
TempStr = input()
if TempStr[-1] in ['F', 'f']:C = (eval(TempStr[0:-1]) - 32)/1.8print("{:.2f}C".format(C))
elif TempStr[-1] in ['C', 'c']:F = 1.8*eval(TempStr[0:-1]) + 32print("{:.2f}F".format(F))
else:print("输入格式错误")
Hello World的条件输出
描述
获得用户输入的一个整数,参考该整数值,打印输出"Hello World",要求:
如果输入值是0,直接输出"Hello World"
如果输入值大于0,以两个字符一行方式输出"Hello World"(空格也是字符)
如果输入值小于0,以垂直方式输出"Hello World"
输入输出示例
输入 | 输出 | |
示例 1 |
|
|
n = eval(input())
if n == 0:print("Hello World")
elif n > 0:print("He\nll\no \nWo\nrl\nd")
else:for c in "Hello World":print(c)
计算几何形状的表面积与体积
类型:数值运算
描述
输入一个表示几何形状名称的字符串,再在一行内输入这种图形的数据,根据表示名称的字符串选择合适的公式计算几何形状的(表)面积和体积,若为二维图形,只计算面积,若为三维图形,计算其表面积与体积,结果严格保留2位小数。
模板程序给出了长方形和长方体的代码,参考这些代码,完成圆形、球、圆柱体、圆锥和正三棱柱这5种形状的计算程序。
(可将模板中的代码复制到本地,先注释掉需要补充代码的函数或在函数体中加pass语句后再运行,调试完成后再复制粘到代码框中)
示例 1
输入:
长方形
4 8
输出:
长方形的面积为32.00
示例 2
输入:
长方体
4 8 9
输出:
长方体的表面积为280.00, 体积为288.00
示例 3
输入:
圆形
88
输出:
圆形的面积为24328.49
示例 4
输入:
球
88
输出:
球的表面积为97313.97, 体积为2854543.24
示例5
输入:
圆柱体
88 88
输出:
圆柱体的表面积为97313.97, 体积为2140907.43
示例 6
输入:
圆锥
88 88
输出:
圆锥的表面积为58734.18, 体积为713635.81
示例 7
输入:
正三棱柱
88 88
输出:
正三棱柱的表面积为29938.50, 体积为295086.03
# -------- ------- --------
# @File : 计算几何形状的表面积与体积.py
# @Author : 赵广辉
# @Contact: vasp@qq.com
# @Company: 武汉理工大学
# @Version: 1.0
# @Modify : 2021/10/30 23:23
# Python程序设计基础,高等教育出版社
# -------- ------- --------
import mathdef type_judge(geom_type):"""接收一个字符串为参数,根据参数判断几何体类型若输入为二维图形,计算其面积若输入为三维图形,计算其面积与体积根据类型调用不同的函数进行运算。"""if geom_type == '长方形':length, width = map(float, input().split()) # 空格分隔的输入切分为列表并映射为浮点数return square(length, width) # 调用函数计算长方形面积elif geom_type == '长方体':length, width, height = map(float, input().split()) # 空格分隔的输入切分为列表并映射为浮点数return cube(length, width, height) # 调用函数计算长方体表面积与体积elif geom_type == '圆形':radius = float(input()) # 输入转为浮点数return circle(radius) # 调用函数计算圆面积elif geom_type == '球':radius = float(input()) # 输入转为浮点数return sphere(radius) # 调用函数计算球表面积与体积elif geom_type == '圆柱体':radius, height = map(float, input().split()) # 空格分隔的输入切分为列表并映射为浮点数return cylinder(radius, height) # 调用函数计算圆柱体表面积与体积elif geom_type == '圆锥':radius, height = map(float, input().split()) # 空格分隔的输入切分为列表并映射为浮点数return cone(radius, height) # 调用函数计算圆锥表面积与体积elif geom_type == '正三棱柱':side, height = map(float, input().split())return tri_prism(side, height)else:return f'未找到{geom_type}计算方法'def square(length, width):"""计算长方形的面积"""area_of_square = length * widthreturn f'长方形的面积为{area_of_square:.2f}'def cube(length, width, height):"""计算长方体的表面积和体积"""area_of_cube = length * width * 2 + width * height * 2 + length * height * 2volume_of_cube = length * width * heightreturn f'长方体的表面积为{area_of_cube:.2f}, 体积为{volume_of_cube:.2f}'def circle(radius):"""接收圆的半径,返回圆形的面积,圆周率用math.pi"""area_of_circle = math.pi * radius * radiusreturn f'圆形的面积为{area_of_circle:.2f}'def sphere(radius):"""接收球的半径,返回球的表面积和体积,圆周率用math.pi"""area_of_sphere = 4 * math.pi * radius * radiusvolume_of_sphere = 4 / 3 * math.pi * radius * radius * radiusreturn f'球的表面积为{area_of_sphere:.2f}, 体积为{volume_of_sphere:.2f}'def cylinder(radius, height):"""接收圆柱体的底面半径和高,返回圆柱体的表面积和体积,圆周率用math.pi"""area_of_cylinder = 2 * math.pi * radius * (radius + height)volume_of_cylinder = math.pi * radius * radius * heightreturn f'圆柱体的表面积为{area_of_cylinder:.2f}, 体积为{volume_of_cylinder:.2f}'def cone(radius, height):"""接收圆锥的底面半径和高,返回圆锥的表面积和体积,圆周率用math.pi"""generatrix = math.sqrt(radius ** 2 + height ** 2)area_of_cone = math.pi * radius * (radius + generatrix)volume_of_cone = 1 / 3 * math.pi * radius * radius * heightreturn f'圆锥的表面积为{area_of_cone:.2f}, 体积为{volume_of_cone:.2f}'# 参考前面的方法自定义一个函数计算正三棱柱的表面积与体积,
# 函数名为tri_prism()
# 函数接受底边长和高两个参数side, heightdef tri_prism(side, height):"""接收正三棱柱的底边长和高,返回正三棱柱的表面积和体积"""area_of_triangle = 3 ** 0.5 /4 * side * side # 底三角形的面积area_of_tri_prism = 2 * area_of_triangle + 3 * side * heightvolume_of_tri_prism = area_of_triangle * heightreturn f'正三棱柱的表面积为{area_of_tri_prism:.2f}, 体积为{volume_of_tri_prism:.2f}'if __name__ == '__main__':type_of_geometry = input() # 接收用户输入的字符串geometry = type_judge(type_of_geometry) # 调用判断图形类型的函数print(geometry) # 输出函数运行结果
计算弓形的面积
类型:数值运算
描述
如下图,AB 是圆的一条弦,ABC形成一个弓形,在两行中分别输入弦长AB和弓高CD的长度,计算并分两行依次输出该圆的半径和弓形ABC的面积,结果均严格保留小数点后2位
有效数字,应用三角函数和反三角函数时查阅math模块文档或利用自动补全完成。
提示:
从图中可知:
AD = AB / 2 OA2 = AD2 + OD2 OD = OC – CD = OA – CD
代入后可得
OA = (AD2 + CD2 ) / (2 * CD) sin(∠AOB / 2) = AD / OA
圆心角:
∠AOB = 2 * arcsin(AD / OA)
扇形AOB的面积为:
area_of_sector = ∠AOB / (2π) * π *OA2
三角形 △AOB
area_of_triangle = 1 / 2 * OA2 * sin(∠AOB)
弓形面积为扇形AOB面积减去三角形△AOB面积之差:
area_of_arch = area_of_sector - area_of_triangle
输入
分2行输入2个浮点数
输出
在两行内分别输出半径和弓形面积
示例
输入:
26.5
8
输出:
14.97
151.16
import mathAB = float(input()) # 弦长度
CD = float(input()) # 弓高度# 半弦长
AD = AB / 2
# 半径
OA = (AD ** 2 + CD ** 2) / (2 * CD)# 圆心角
AOB = 2 * math.asin(AD / OA)
# 拱形所在扇形的面积
area_of_sector = AOB / (math.pi * 2) * math.pi * OA ** 2
# 三角形面积
area_of_triangle = 1/2 * OA * OA * math.sin(AOB)
# 拱形面积
area_of_arch = area_of_sector - area_of_triangle
print(f'{OA:.2f}')
print(f'{area_of_arch:.2f}')
python_习题一相关推荐
- 英寸和厘米转化python_习题 5: 更多的变量和打印 | 笨办法学 Python
一. 简述 "格式化字符串(format string)" - 每一次你使用 ' '或 " " 把一些文本引用起来,你就建立了一个字符串. 字符串是程序将信息 ...
- python_习题练习_5_小游戏《唐僧大战白骨精》
文章目录 游戏说明 代码演示 代码优化 2.0版本 打包成exe文件 游戏说明 # 小游戏唐僧大战白骨精# 1. 身份选择 # ① 显示提示信息 # 欢迎光临 xxx 游戏 ! # 请选择你的身份: ...
- python_习题四
CSV 格式数据清洗 类型:Python 文件 ...
- 笨方法学python习题4
变量和命名 #笨方法学python_习题4#定义变量 cars = 100 space_in_a_car = 4.0 drivers = 30 passengers = 90#计算 cars_not_ ...
- 一款好看,有科技感的动态背景线条动态效果代码
一款好看,有科技感的动态背景线条动态效果代码 Lan 2020-05-11 14:41 308 人阅读 0 条评论 背景动态js代码,效果图可见本站 代码源于网络,如有问题请联系Vast@ ...
- 厘米和磅的转换程序python_笨方法学Python 习题5:更多的变量和打印
更多的变量和打印 因为我看的是基于Python3.6版本的<Learn Python The Hard Way>,所以这里的用字符串格式化机制是F-string,而不是之前版本的%r,%s ...
- 三色球问题python_零基础入门学习Python习题3【输密码+水仙花数+摸三色球】
001 输密码 设计一个验证用户密码的程序,用户只有三次机会输入错误,不过,如果用户输入的内容里包含"*",则不算在次数内. count = 3 password = &quo ...
- 1234无重复三位数python_第11篇参考答案:Python入门经典习题题解
转自同名微信公众号 1.阶乘是基斯顿·卡曼(Christian Kramp,1760-1826)于 1808 年发明的运算符号.阶乘用感叹号表示,比如6的阶乘, 6!= 1*2*3*4*5*6=720 ...
- 可爱的python_可爱的Python_课后习题_CDay0 时刻准备着!发布
请根据软件发布的流程和软件开发的编码规范,将读者在前面章节所写的程序修改并发 布出去.另外,可以查找下除了 epydoc 外还有哪些较好的 py 文档生成器? pydoc是Python自带的模块,主要 ...
- 可爱的Python_课后习题_CDay−2 完成核心功能
1. 在前文的grep 实现例子中,没有考虑子目录的处理方式,因为如果直接open 目录进行读grep 是古老实用且高效的模式文本匹配工具,在所有的Unix/Linux 系统中都会默认安装,它最常做的 ...
最新文章
- hdu5701-中位数计数
- WinAPI: CreateFontIndirect - 根据字体结构建立逻辑字体
- PHP原生类反序列化
- ajax初试,获取数据
- c++ 数组 结构体
- debian jessie install note
- mysql的传播特性_spring事务传播特性和mysql事务隔离级别
- python操作hive数据库代码_python导出hive数据表的schema实例代码
- 2699元起!格力首款5G手机悄然上架:骁龙765G处理器
- 多线程(thread)+进程(Process)
- teststand调用python模块_NI TestStand 2019下载-测试管理软件NI TestStand 2019下载v19.0.1 官方版-西西软件下载...
- Android学习小Demo(13)Android中关于ContentObserver的使用
- springmvc获取url对应的controller,并拦截记录每次访问的controller方法
- 《Java设计模式》刘伟 超清晰版本 下载链接
- 【考研政治】1. 导论和基本哲学问题
- Fedora20在神州战神K650D1安装过程,使用netinstall和Dvd.iso镜像安装。
- PLC控制系统设计与调试的一般步骤
- 中国物流企业家谈“物流”
- 干掉 Swagger (丝袜哥),试试这个新工具!
- 动态规划初识(从dfs到dfs优化到动态规划顺推和逆推)