第二章练习题

2.1

Tempconvert.py

TempStr = input("请输入带有符号的温度值: ")
if TempStr[0] in ['F','f']:
C = (eval(TempStr[1:]) - 32)/1.8
print("转换后的温度是{:.0f}C".format(C))
elif TempStr[0] in ['C','c']:
F = 1.8*eval(TempStr[1:]) + 32
print("转换后的温度是{:.0f}F".format(F))
else:
print("输入格式错误")
2.2
def currency_converter():
# 获取用户输入
amount = float(input("请输入要兑换的金额: "))
exchange_rate = float(input("请输入汇率: "))

# 计算兑换后的金额
converted_amount = amount * exchange_rate

# 输出结果
print(f"兑换后的金额是: {converted_amount:.2f}")

运行程序

currency_converter()
2.3
def weight_converter():
# 定义转换因子
KG_TO_LB = 2.20462 # 1 千克 = 2.20462 磅
LB_TO_KG = 0.453592 # 1 磅 = 0.453592 千克

# 获取用户输入
weight = float(input("请输入重量: "))
unit = input("请输入单位(kg 或 lb): ").lower()

# 根据单位进行转换
if unit == "kg":
    converted_weight = weight * KG_TO_LB
    print(f"{weight} 千克 = {converted_weight:.2f} 磅")
elif unit == "lb":
    converted_weight = weight * LB_TO_KG
    print(f"{weight} 磅 = {converted_weight:.2f} 千克")
else:
    print("单位输入错误,请输入 'kg' 或 'lb'。")

运行程序

weight_converter()
2.4

DrawPython.py

import turtle
turtle.setup(650, 350, 200, 200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("colorful")
turtle.seth(-40)
for i in range(4):
turtle.circle(40, 80)
turtle.circle(-40, 80)
turtle.circle(40, 80/2)
turtle.fd(40)
turtle.circle(16, 180)
turtle.fd(40 * 2/3)

2.5
import turtle

设置画布和画笔
screen = turtle.Screen()
screen.bgcolor("white") # 设置背景颜色
pen = turtle.Turtle()
pen.shape("turtle") # 设置画笔形状为小乌龟
pen.color("blue") # 设置画笔颜色
pen.pensize(2) # 设置画笔粗细

绘制等边三角形
side_length = 200 # 边长
for _ in range(3):
pen.forward(side_length) # 画一条边
pen.left(120) # 左转120度

结束绘制
pen.hideturtle() # 隐藏画笔
turtle.done() # 结束绘图
2.6
import turtle

设置画布和画笔
screen = turtle.Screen()
screen.bgcolor("white") # 设置背景颜色
pen = turtle.Turtle()
pen.shape("turtle") # 设置画笔形状为小乌龟
pen.color("blue") # 设置画笔颜色
pen.pensize(2) # 设置画笔粗细
pen.speed(5) # 设置绘制速度

绘制等边三角形的函数
def draw_equilateral_triangle(side_length):
for _ in range(3):
pen.forward(side_length)
pen.left(120)

绘制大等边三角形
side_length = 200 # 大三角形的边长
draw_equilateral_triangle(side_length)

计算分割线的位置
大三角形的高度
height = (3**0.5 / 2) * side_length

绘制第一条分割线(从顶点到底边中点)
pen.penup()
pen.goto(side_length / 4, height / 2) # 顶点
pen.pendown()
pen.goto(side_length / 2, 0) # 底边中点

绘制第二条分割线(从左侧边中点到右侧边中点)
pen.penup()
pen.goto(side_length / 4, height / 2) # 左侧边中点
pen.pendown()
pen.goto(3 * side_length / 4, height / 2) # 右侧边中点

绘制第三条分割线(从右侧边中点到底边中点)
pen.penup()
pen.goto(3 * side_length / 4, height / 2) # 右侧边中点
pen.pendown()
pen.goto(side_length / 2, 0) # 底边中点

结束绘制
pen.hideturtle()
turtle.done()
2.7
import turtle

t = turtle.Turtle()
t.right(30)

for _ in range(3):
t.forward(150)
t.right(120)

t.penup()
t.goto(90, 0)
t.pendown()
t.right(60)

for _ in range(3):
t.forward(150)
t.right(120)

turtle.done()

2.8
import turtle

设置画布和画笔
screen = turtle.Screen()
screen.bgcolor("white") # 设置背景颜色
pen = turtle.Turtle()
pen.shape("turtle") # 设置画笔形状为小乌龟
pen.color("blue") # 设置画笔颜色
pen.pensize(2) # 设置画笔粗细
pen.speed(10) # 设置绘制速度

调整画笔起始位置
pen.penup()
pen.goto(0, 0) # 将画笔移动到画布中心
pen.pendown()

绘制从中间向四边的正方形螺旋线
side_length = 10 # 初始边长
angle = 90 # 转角角度(正方形每次转90度)

for _ in range(20): # 绘制20层
for _ in range(4): # 绘制一个正方形
pen.forward(side_length)
pen.left(angle)
side_length += 10 # 每绘制一层,边长增加10

结束绘制
pen.hideturtle()
turtle.done()

posted @ 2025-03-16 20:22  cchb  阅读(42)  评论(0)    收藏  举报