第二章课后习题2.1-2.8
2.1整数温度转换器
点击查看代码
TempStr = input("请输入带有符号的温度值:")
if isinstance(TempStr, str) and TempStr[-1] in ['F', 'f']:
C = int((float(TempStr[0:-1]) - 32) / 1.8)
print(f"转换后的温度是{C}C")
elif isinstance(TempStr, str) and TempStr[-1] in ['C', 'c']:
F = int(1.8 * float(TempStr[0:-1]) + 32)
print(f"转换后的温度是{F}F")
else:
print("输入格式错误")
点击查看代码
CurrencyStr = input("请输入带有货币符号的金额(格式如 100USD 或 600CNY):")
if CurrencyStr[-3:].upper() == 'USD':
CNY = eval(CurrencyStr[0:-3]) * 6
print(f"{CurrencyStr} 可兑换为 {CNY}CNY")
elif CurrencyStr[-3:].upper() == 'CNY':
USD = eval(CurrencyStr[0:-3]) / 6
print(f"{CurrencyStr} 可兑换为 {USD}USD")
else:
print("输入格式错误")
点击查看代码
WeightStr = input("请输入带有单位的重量(格式如 10kg 或 22lb):")
if WeightStr[-2:].lower() == 'kg':
lb = eval(WeightStr[0:-2]) * 2.2046
print(f"{WeightStr} 可转换为 {lb}lb")
elif WeightStr[-2:].lower() == 'lb':
kg = eval(WeightStr[0:-2]) / 2.2046
print(f"{WeightStr} 可转换为 {kg}kg")
else:
print("输入格式错误")

点击查看代码
import turtle
import random
turtle.setup(650, 350, 200, 200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.seth(-40)
colors = ["red","blue", "green", "yellow", "purple"] # 定义颜色列表
for i in range(4):
turtle.pencolor(random.choice(colors)) # 随机选择画笔颜色
turtle.circle(40, 80)
turtle.pencolor(random.choice(colors))
turtle.circle(-40, 80)
turtle.pencolor(random.choice(colors))
turtle.circle(40, 80 / 2)
turtle.fd(40)
turtle.pencolor(random.choice(colors))
turtle.circle(16, 180)
turtle.fd(40 * 2 / 3)
turtle.done()
2.5等边三角形的绘制
点击查看代码
import turtle
# 向前移动指定距离绘制第一条边
turtle.fd(100)
# 向左旋转120°
turtle.left(120)
# 向前移动指定距离绘制第二条边
turtle.fd(100)
# 向左旋转120°
turtle.left(120)
# 向前移动指定距离绘制第三条边
turtle.fd(100)
turtle.done()

2.6叠加等边三角形的绘制
点击查看代码
import turtle
turtle.fd(200)
turtle.left(120)
turtle.fd(200)
turtle.left(120)
turtle.fd(200)
turtle.penup()
turtle.goto(50,85)
turtle.pendown()
turtle.done()
turtle.left(120)
turtle.fd(100)
turtle.left(240)
turtle.fd(100)
turtle.left(240)
turtle.fd(100)

2.7六角形的绘制
点击查看代码
import turtle
# 创建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
# 设置画笔初始方向为向上(90度)
turtle.left(90)
# 初始线段长度
length = 5
# 设置画笔移动速度
turtle.speed(20)
for i in range(30):
# 向前绘制当前长度的线段
turtle.forward(length)
# 向左转90度
turtle.left(90)
# 再次向前绘制当前长度的线段
turtle.forward(length)
# 向左转90度
turtle.left(90)
# 每次循环让线段长度增加5,以形成螺旋效果
length += 5
# 保持图形窗口显示
turtle.done()


浙公网安备 33010602011771号