第二章 Python程序实例解析

文章目录

2.1 温度转换2.2 汇率兑换2.3 绘制彩色蟒蛇2.4 等边三角形的绘制2.5 叠加等边三角形的绘制2.6 无角正方形的绘制2.7 六边形的绘制2.8 正方形螺旋线绘制2.9 自定义蟒蛇绘制

2.1 温度转换

tem = int(input("请选择温度的单位(华氏度为1,摄氏度为2):"))

TempStr = eval(input("请输入温度值:"))

if tem == 1:

C = (TempStr - 32) / 1.8 # 计算摄氏度

print("转换后的温度是{:.0f}C".format(C))

elif tem == 2:

F = 1.8 * TempStr + 32 # 计算华氏度

print("转换后的温度是{:.0f}F".format(F))

else:

print("输入错误!")

2.2 汇率兑换

try:

money = input("请输入金额(如:1¥/1$):")

if money[-1] in ['$']:

rmb = eval(money[0:-1]) * 6

print("{}->>{}¥".format(money, rmb))

elif money[-1] in ['¥']:

dollar = eval(money[0:-1]) / 6

print("{}->>{}$".format(money, dollar))

except:

print("输入错误!")

优化:

try:

money = input("请输入金额(如:1¥/1$):")

currency = money[-1]

amount = eval(money[0:-1])

if currency == '$':

rmb = amount * 6

print("{}->>{}¥".format(money, rmb))

elif currency == '¥':

dollar = amount / 6

print("{}->>{}$".format(money, dollar))

else:

print("输入格式错误!")

except:

print("输入错误!")

优化的主要改动:

将货币符号和金额分离出来,使代码更加清晰易读。将条件判断改为根据货币符号进行判断,避免重复判断。

2.3 绘制彩色蟒蛇

import turtle

# 设置画布大小和位置

turtle.setup(650, 350, 200, 200)

# 抬起画笔,移动到起始位置

turtle.penup()

turtle.fd(-250)

# 落下画笔,设置画笔宽度和颜色,调整方向

turtle.pendown()

turtle.pensize(25)

turtle.seth(-40)

# 循环绘制蟒蛇的每一段

colors = ['red', 'orange', 'yellow', 'green', 'blue', 'purple']

for i in range(4):

turtle.pencolor(colors[i % len(colors)]) # 设置画笔颜色

turtle.circle(40, 80) # 绘制大圆弧

turtle.circle(-40, 80) # 绘制小圆弧

# 绘制蟒蛇头部

turtle.pencolor(colors[4 % len(colors)]) # 设置画笔颜色

turtle.circle(40, 80 / 2) # 绘制半个大圆弧

turtle.fd(40) # 前进一段距离

turtle.circle(16, 180) # 绘制半个小圆弧

turtle.fd(40 * 2 / 3) # 前进一段距离

# 关闭窗口

turtle.done()

2.4 等边三角形的绘制

代码一:

import turtle

turtle.forward(100) # 向前走100个像素

turtle.left(120) # 左转120度

turtle.forward(100)

turtle.left(120)

turtle.forward(100)

turtle.done() # 结束绘制,显示图形

代码二:

import turtle

# 创建turtle对象

t = turtle.Turtle()

# 设置画笔的粗细和颜色

t.pensize(3)

t.pencolor("blue")

# 绘制等边三角形

for i in range(3):

t.forward(100) # 前进100像素

t.left(120) # 左转120度

# 结束绘画

turtle.done()

2.5 叠加等边三角形的绘制

# 导入 turtle 库的所有函数

from turtle import *

# 向前移动 100 像素

fd(100)

# 逆时针旋转 120 度,再向前移动 100 像素

seth(-120)

fd(100)

# 逆时针旋转 120 度,再向前移动 100 像素

seth(120)

fd(100)

# 逆时针旋转 60 度,再向前移动 100 像素

seth(60)

fd(100)

# 逆时针旋转 60 度,再向前移动 200 像素

seth(-60)

fd(200)

# 逆时针旋转 180 度,再向前移动 200 像素

seth(-180)

fd(200)

# 逆时针旋转 60 度,再向前移动 100 像素

seth(60)

fd(100)

done()

2.6 无角正方形的绘制

from turtle import *

# 设置画布大小为 500*500

setup(500, 500)

for i in range(4):

# 提笔,向前移动20像素

up()

fd(20)

# 下笔,向前移动160像素

pd()

fd(160)

# 提笔,向前移动20像素

up()

fd(20)

# 向右旋转90度

right(90)

done()

2.7 六边形的绘制

from turtle import *

# 将画笔抬起,移动到起始位置,再将画笔放下

up()

setpos(-150, 20)

down()

# 旋转画笔方向,开始画第一个等边三角形

left(30)

fd(100)

left(60)

for i in range(5):

fd(100)

right(120)

fd(100)

left(60)

# 画出最后一个等边三角形和最后的线段

fd(100)

right(120)

fd(100)

for n in range(6):

fd(100)

right(60)

done()

2.8 正方形螺旋线绘制

import turtle

# 设置初始值

length = 5

angle = 90

increment = 2

# 创建画布

turtle.setup(600, 600)

# 创建画笔

pen = turtle.Pen()

pen.speed(0)

# 绘制正方形螺旋线

for i in range(100):

pen.forward(length)

pen.left(angle)

length += increment

turtle.done()

2.9 自定义蟒蛇绘制

from turtle import *

# 设置画布大小和颜色模式

setup(800, 800)

colormode(255)

# 设置画笔大小和速度

pensize(20)

speed(10)

def draw_snake():

# 抬起画笔,设置初始位置为屏幕中心,放下画笔

penup()

setpos(0, 0)

pendown()

# 绘制蟒蛇

for i in range(50):

forward(2 * i) # 前进距离随着i的增加而增加

left(20) # 左转20度

# 随着绘制的进度改变颜色

pencolor((255 - i, 50, i))

hideturtle() # 隐藏画笔

draw_snake() # 调用函数绘制蟒蛇

done() # 保持窗口不关闭,直到手动关闭

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: