《Python语言程序设计》第二章.练习与作业

Python语言程序设计 封面.jpeg
PDF p61, Book p45
编程题2.1温度转换
celsius = eval(input("请输入摄氏温度="))
fahreheit = (9 / 5) * celsius + 32
print("转换后的华氏温度=", fahreheit)
编程题2.2计算圆柱体的体积
radius = 20
length = 30
PI = 3.14159

area = radius * radius * PI
volume = area * length

print(area)
print(volume)
编程题2.3英尺转化为米
feets = eval(input("请输入英尺="))
meters = feets * 0.305
print(feets, " 英尺=", meters, " 米")
编程题2.4磅转化为千克
pounds = eval(input("请输入磅="))
kilograms = pounds * 0.454
print(pounds, " 磅 =", kilograms, " 千克")
编程题2.5计算小费
subtotal, gratuityRate = eval(
    input("Please input subtotal and gratuityRate:"))  # 输入:小计、酬金率
gratuity = subtotal * gratuityRate/100
total = subtotal * (1 + gratuityRate/100)

print(
    "subtotal:",            # 小计
    subtotal,
    " gratuityRate:",       # 酬金率
    gratuityRate,
    " gratuity:",           # 酬金
    gratuity,
    "total:",               # 总金额
    total)
编程题2.6整数拆解并求和
num = eval(input("请输入0-1000之间的整数:"))
# 9521
sum = num // 100 + (num % 100) // 10 + num % 10
print("sum=", sum)
编程题2.6整数拆解并求和进阶版
input_number = eval(input("请输入一个正整数:"))
input_number = str(input_number)                  # 必须先转化为字符串形式
sum = 0
for digit in input_number:                      # digit在字符串中
    sum += int(digit)
print(sum)
编程题2.7计算年数和天数
minutes = eval(input("请输入分钟数,例如 10000000 :"))

hours = minutes // 60
days = hours // 24
years = days // 365
remainDays = days % 365

print("转化后,显示为", years, " 年,", remainDays, " 天")
编程题2.8计算能量
# 输入 水的重量
waterWeight = eval(input("请输入水的重量/千克:"))

# 输入 水的初始温度
waterInitalTemp = eval(input("请输入水的初始温度/摄氏度:"))

# 输入 水加热后的温度
waterFinalTemp = eval(input("请输入水加热后的温度/摄氏度:"))

# 计算能量
Q = waterWeight * (waterFinalTemp - waterInitalTemp) * 4184

# 输出结果
print("按输入要求计算,加热所需能量为:", Q, " 焦耳")
编程题2.9风寒计算
tA = eval(input("请输入室外华氏温度,低于-58 或 高于 41: "))
if tA <= -58 and tA >= 41:
    print("ERROR:室外华氏温度 tA 输入错误,请重新输入!")
    exit()                                                      # 报错,并退出运行


v = eval(input("请输入高于 2 里/小时的室外风速: "))
if v < 2:
    print("ERROR:室外风速输入错误,请重新输入!")
    exit()                                                      # 报错,并退出运行


tWc = 35.74 + 0.6215 * tA - 35.75 * v**0.16 + 0.4275 * tA * v**0.16

print("当前风寒温度 = {:5f}".format(float(tWc)))                           # 将 tWc 参数传入{}
编程题2.10计算跑道长度
v = eval(input("请输入飞机的起飞速度,默认单位(米/秒) :"))
a = eval(input("请输入飞机的加速度,默认单位(米/秒^2) :"))

length = v**2 / (2 * a)

print("根据给定的参数,飞机起飞所需的最短跑道长度为 {} 米".format(length))
编程题2.11投资额
finalMoney = eval(input("请用户输入最终金额/元: "))
rateYear = eval(input("请用户输入年利率/%: "))
years = eval(input("请用户输入年数/年:"))

rateMonth = (rateYear / 12) / 100
months = years * 12

initialMoney = finalMoney / ((1 + rateMonth)**months)      # initialMoney 初始金额

print("初始投资金额 = ", initialMoney)
编程题2.12打印表格
print("{:<6}".format("a"), "{:<6}".format("b"), "{:<6}".format("a ** b"))
print("{:<6}".format(1), "{:<6}".format("2"), "{:<6}".format("1"))
print("{:<6}".format(2), "{:<6}".format("3"), "{:<6}".format("8"))
print("{:<6}".format(3), "{:<6}".format("4"), "{:<6}".format("81"))
print("{:<6}".format(4), "{:<6}".format("5"), "{:<6}".format("1024"))
print("{:<6}".format(5), "{:<6}".format("6"), "{:<6}".format("15625"))
编程题2.13分隔数字并反向逐行显示
x = eval(input("请输入4位整数:"))
y = str(x)                          # 必须先转为 str 类型
print(y[::-1])
'''
本题答案运用 "切片+print" 的方法

参考:
range(stop)
举例,list=(range(10)),输出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

range(start, stop[, step])
举例,list(range(0, 30, 5)),输出:[0, 5, 10, 15, 20, 25]

解释 s[i:j:k] 是,从i 到j,步长 k,- 表示倒叙
'''
# 笔记参考1:https://blog.csdn.net/evan123mg/article/details/49232089
# 笔记参考2:https://www.cnblogs.com/ifantastic/archive/2013/04/15/3021845.html
编程题2.14三角形的面积
x1, y1 = eval(input("请输入 A 点的坐标 x1,y1 : "))
x2, y2 = eval(input("请输入 B 点的坐标 x2,y2 : "))
x3, y3 = eval(input("请输入 C 点的坐标 x3,y3 : "))

side1 = ((x1 - x2)**2 + (y1 - y2)**2)**0.5
side2 = ((x3 - x2)**2 + (y3 - y2)**2)**0.5
side3 = ((x1 - x3)**2 + (y1 - y3)**2)**0.5

s = (side1 + side2 + side3) / 2
area = (s * (s - side1) * (s - side2) * (s - side3))**0.5       # 面积计算公式

print("三条边的长度分别为:{:.2f} {:.2f} {:.2f}".format(side1, side2, side3))
print("三角形的面积为:{:.2f}".format(area))
# 三角形面积在线计算器:https://zh.numberempire.com/arbitrary_triangle_calculator.php
编程题2.15正六边形的面积
s = eval(input("请输入正六边形的边长:"))

area = (s**2) * 3 * (3**0.5) / 2

print("输入的边长 = {:.2f},正六边形的面积 = {:2f}".format(s, area))
编程题2.16加速度
v0, v1, t = eval(input("请分别输入初始速度(米/秒)、末速度(米/秒)、时间(秒):"))

a = (v1 - v0) / t

print("平均加速度为: {:.2f} 米/秒^2".format(a))
编程题2.17计算BMI
# inche 英尺,pound 磅
height_inches, weight_pounds = eval(input("请分别输入身高(英尺)和体重(磅):"))

BMI = weight_pounds * 0.45359237 / ((height_inches * 0.0254)**2)

print("身高{:.2f}英尺,体重{:.2f}磅,BMI={:.4f}".format(
    height_inches, weight_pounds, BMI))
编程题2.19计算未来投资额
amount, rate, years = eval(input("请分别输入投资金额/元,年化利率/%,投资期限/年:"))

accumulateAmount = amount * (1 + rate / 100 / 12)**(years * 12)

print("未来投资总额 = {:.2f} 元".format(accumulateAmount))
编程题2.20计算利息
balance, rate_interest = eval(input("请分别输入差额(元)和年化利息(%):"))

interest = balance * (rate_interest / 1200)

print("The interest is {:.2f} ".format(interest))
编程题2.21复利值
manthly_saving_amount = eval(input("请输入每月存款金额/元:"))

i = 6
rate_month = 1 + 0.00417

sum = 0
for x in range(i):
    sum = (manthly_saving_amount + sum) * rate_month

print(sum)
编程题2.23绘制四个圆
import turtle

radius = eval(input("请输入圆的半径:"))

turtle.pensize(2)           # 设定画笔粗细

turtle.circle(radius)       # 第一个圆圈

turtle.penup()              # 第二个圆圈
turtle.goto(radius * (-2), 0)
turtle.pendown()
turtle.circle(radius)

turtle.penup()              # 第三个圆圈
turtle.goto(radius * (-2), radius * (-2))
turtle.pendown()
turtle.circle(radius)

turtle.penup()              # 第四个圆圈
turtle.goto(0, radius * (-2))
turtle.pendown()
turtle.circle(radius)

turtle.penup()
turtle.goto(radius, 0)
turtle.pendown()
turtle.hideturtle()

turtle.write("半径 = {:.0f} ".format(radius), font=("Arial", 16, "normal"))

turtle.done()
编程题2.23绘制四个圆1
import turtle

turtle.screensize(500, 500)
turtle.pensize(2)
turtle.pencolor("red")

radius = eval(input("请输入圆的半径:"))

turtle.penup()               # 第一个圆
turtle.forward(radius)
turtle.pendown()
turtle.circle(radius)

turtle.penup()               # 第二个圆
turtle.forward(radius * (-2))
turtle.pendown()
turtle.circle(radius)

turtle.penup()               # 第三个圆
turtle.right(90)
turtle.forward(radius * (2))
turtle.pendown()
turtle.right(-90)
turtle.circle(radius)

turtle.penup()               # 第四个圆
turtle.forward(radius * 2)
turtle.down()
turtle.circle(radius)

turtle.penup()               # 文字
turtle.goto(radius, radius)
turtle.down()
turtle.write("半径 = {:.0f}".format(radius), font=("Arial", 16, "normal"))
turtle.hideturtle()

turtle.done()
编程题2.24绘制4个正六边形
import turtle

turtle.screensize(500, 500)
turtle.pensize(2)
turtle.pencolor("red")

radius = eval(input("请输入圆的半径:"))

turtle.penup()               # 第一个圆
turtle.forward(radius)
turtle.pendown()
turtle.circle(radius,360,6)

turtle.penup()               # 第二个圆
turtle.forward(radius * (-2))
turtle.pendown()
turtle.circle(radius,360,6)

turtle.penup()               # 第三个圆
turtle.right(90)
turtle.forward(radius * (2))
turtle.pendown()
turtle.right(-90)
turtle.circle(radius,360,6)

turtle.penup()               # 第四个圆
turtle.forward(radius * 2)
turtle.down()
turtle.circle(radius,360,6)

turtle.penup()               # 文字
turtle.goto(radius, radius)
turtle.down()
turtle.write("正六边形外切圆的半径 = {:.0f}".format(radius), font=("Arial", 16, "normal"))  # ...半径也可用int(radius)
turtle.hideturtle()

turtle.done()    
编程题2.25绘制一个矩形
import turtle
x, y = eval(input("请输入矩形的中心点:"))
a, b = eval(input("请输入矩形的长和宽:"))

# 显示原点坐标
turtle.dot(5, "red")
turtle.write(
    "原点 ({},{})".format(
        0, 0), align="center", font=(
            "Arial", 12, "normal"))

# 显示矩形中心点坐标
turtle.penup()
turtle.goto(x, y)
turtle.pendown()
turtle.dot(5, "blue")
turtle.write(
    "矩形中心点 ({},{})".format(
        x, y), align="center", font=(
            "Arial", 12, "normal"))

# 绘制矩形
turtle.penup()
turtle.goto(x + a / 2, y + b / 2)
turtle.pendown()

turtle.fd(-a)
turtle.right(90)
turtle.fd(b)
turtle.right(-90)
turtle.fd(a)
turtle.right(-90)
turtle.fd(b)

# 隐藏小海龟
turtle.hideturtle()

turtle.done()
编程题2.26绘制一个圆(略作修改)
import turtle

x, y = eval(input("请输入圆心坐标(x,y):"))
radius = eval(input("请输入圆的半径:"))

# 原点坐标
turtle.dot(3, "red")
turtle.write("原点 (0,0)", align="center", font=("Arial", 12, "normal"))

# 圆心坐标
turtle.penup()
turtle.goto(x, y)
turtle.pendown()

turtle.dot(3, "blue")
turtle.write(
    "圆心 ({:.2f},{:.2f})".format(
        x, y), align="center", font=(
            "Arial", 12, "normal"))

# 绘制圆形
turtle.pensize(2)
turtle.pencolor("blue")
turtle.right(90)
turtle.penup()
turtle.fd(radius)
turtle.pendown()

turtle.right(-90)
turtle.circle(radius)

# 计算面积
PI = 3.1415927
s = PI * radius * radius
turtle.penup()
turtle.goto(x, -y / 4)
turtle.pendown()
turtle.write(
    ("r = {:.2f}\ns = {:.2f}").format(
        radius, s), align="right", font=(
            "Arial", 12, "normal"))

turtle.hideturtle()

turtle.done()
编程题2.18待更新,PDF p63
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容