猫史档案馆


【Python作品分享】【120进36】

用户:云阙_轻功小木云阙_轻功小木查看:0 回复:0 评论:0 创建时间:2021-05-15T21:48:06


【作品展示】

center_image

 

【作品介绍】

这千百年来,每一个中国人,都有一个“飞天梦”

早在明代,万户就已尝试飞天,但因为火箭爆炸,不幸牺牲。

如今,科学技术越来越先进,越来越多的宇航员飞向太空,圆了这个千年不忘的“飞天梦”。

 

【作品源代码】

# -*- coding:utf-8 -*-

import turtle
import random
mypen = turtle.Pen()
myscreen = turtle.Screen()
mypen.speed(0)
mypen.hideturtle()

# 询问结果并判断
print("欢迎来到中国“航天史书号”时光机,你在这里可以看到中国航天发展史")
print("这里可以查看以下几个年份:")
print("[1960, 1970, 1975, 2003, 2007, 2008, 2011, 2016, 2019](请将要查找的年份在写在下一行)")
nf = ["1960", "1970", "1975", "2003", "2007", "2008", "2011", "2016", "2019"]

# 设置移动函数
def yd(x, y):
    mypen.penup()
    mypen.goto(x, y)
    mypen.pendown()

# 设置画星空函数
def xk():
    myscreen.setup(700, 600)
    turtle.bgcolor("darkblue")

    color = ["lightyellow", "light sky blue", "white"]
    for i in range(30):
        wz = random.randint(-350, 350)
        wz_ = random.randint(-300, 300)
        yd(wz, wz_)

        jg = random.choice(color)
        jg_ = random.randint(1, 10)
        mypen.dot(jg_, jg)

    yd(-200, 200)
    mypen.dot(100, "white")
    yd(-170, 220)
    mypen.dot(100, "darkblue")

    mypen.pencolor("white")
    yd(0, 250)
    mypen.write(jg__, font=("文泉驿正黑", 35), align="center")
while True:
    jg__ = input()
    if jg__ not in nf:
        print("输入错误,请重新输入")
    else:
        print("好的,开始穿越")
        break

    # 判断需要的结果
if jg__ == nf[0]:
    # 画出天空
    myscreen.setup(700, 600)
    turtle.bgcolor("light sky blue")
    mypen.pencolor("white")
    yd(0, 250)
    mypen.write(jg__, font=("文泉驿正黑", 35), align="center")

    # 画出火箭箭身
    yd(-100, -100)
    mypen.pensize(5)
    mypen.fillcolor("darkgrey")
    mypen.begin_fill()
    mypen.pencolor("black")
    mypen.left(60)
    mypen.forward(250)
    mypen.right(30)
    mypen.forward(75)
    mypen.right(100)
    mypen.forward(75)
    mypen.right(45)
    mypen.forward(265)
    mypen.right(94)
    mypen.forward(115)
    mypen.end_fill()

    # 画出两个小翼
    mypen.fillcolor("darkgrey")
    mypen.begin_fill()
    yd(-100, -90)
    mypen.forward(55)
    mypen.right(160)
    mypen.forward(60)
    mypen.goto(-100, -90)
    mypen.end_fill()

    mypen.fillcolor("darkgrey")
    mypen.begin_fill()
    yd(10, -150)
    mypen.right(18)
    mypen.forward(55)
    mypen.left(160)
    mypen.forward(60)
    mypen.goto(10, -150)
    mypen.end_fill()

     # 画出推进器火焰
    def hy(a, b):
        zj = [60, 75, 90, 105]
        ys = ["yellow", "orange", "red", "darkred"]
        jl = [60, 40, 20, 1]
        i = 0
        while i < 4:
            yd(a, b)
            mypen.pensize(zj[i])
            mypen.pencolor(ys[i])
            mypen.forward(jl[i])
            i += 1
        mypen.right(50)
    mypen.left(110)
    hy(-40, -110)

    #画出火箭箭身
    yd(-100, -100)
    mypen.pensize(5)
    mypen.fillcolor("darkgrey")
    mypen.begin_fill()
    mypen.pencolor("black")
    mypen.right(133)
    mypen.forward(250)
    mypen.right(30)
    mypen.forward(75)
    mypen.right(100)
    mypen.forward(75)
    mypen.right(45)
    mypen.forward(265)
    mypen.right(94)
    mypen.forward(115)
    mypen.end_fill()

    # 写下介绍
    mypen.pencolor("white")
    yd(150, 0)
    mypen.write("1960年,", font=("文泉驿正黑", 12))
    yd(150, -20)
    mypen.write("中国液态燃料火箭发射", font=("文泉驿正黑", 12))

elif jg__ == nf[1]:
    # 画出星空
    xk()

    # 画出信息干
    mypen.pencolor("black")
    mypen.pensize(3)
    yd(0, 0)
    mypen.left(90)
    mypen.forward(120)
    yd(0, -75)
    mypen.dot(5, "black")
    yd(0, 0)
    mypen.right(75)
    mypen.forward(120)
    mypen.backward(270)
    yd(0, 0)
    mypen.left(150)
    mypen.forward(120)
    mypen.backward(270)

    # 画出主体
    yd(0, 0)
    mypen.dot(150, "black")
    mypen.dot(140, "brown")
    yd(-75, 0)
    mypen.goto(75, 0)

    # 写下介绍
    mypen.pencolor("white")
    yd(150, 0)
    mypen.write("1970年,", font=("文泉驿正黑", 12))
    yd(150, -20)
    mypen.write("“东方红一号”发射", font=("文泉驿正黑", 12))

elif jg__ == nf[2]:
    # 画出星空
    xk()

    # 画出地球
    yd(-250, -500)
    mypen.dot(1015, "blue2")

    # 画出地球板块
    mypen.pencolor("black")
    yd(-200, 5)
    mypen.pensize(5)
    mypen.fillcolor("green")
    mypen.begin_fill()
    mypen.goto(-200, -150)
    mypen.goto(-250, -200)
    mypen.goto(-150, -300)
    mypen.goto(0, -300)
    mypen.goto(100, -200)
    mypen.goto(150, -200)
    mypen.left(120)
        
    for i in range(210):
        mypen.forward(2)
        mypen.left(0.28)
    mypen.end_fill()

    # 画出卫星
    yd(200, 100)
    mypen.pencolor("black")
    mypen.dot(100)
    mypen.pencolor("brown")
    mypen.dot(90)

    # 画出移动波流
    yd(280, 180)
    mypen.pencolor("black")
    mypen.left(45)
    mypen.forward(50)

    yd(275, 75)
    for i in range(25):
        mypen.forward(5)
        mypen.right(2)

    yd(200, 170)
    mypen.left(30)
    for i in range(25):
        mypen.forward(5)
        mypen.left(2)

    # 写下介绍
    mypen.pencolor("white")
    yd(150, 0)
    mypen.write("1975年,", font=("文泉驿正黑", 12))
    yd(150, -20)
    mypen.write("“返回式”卫星发射", font=("文泉驿正黑", 12))

elif jg__ == nf[3]:
    # 画出星空
    xk()

    # 画出飞船主体
    yd(-175, -50)
    mypen.fillcolor("grey")
    mypen.begin_fill()

    mypen.pencolor(("black"))
    mypen.pensize(5)
    mypen.left(45)
    mypen.forward(150)
    mypen.right(45)
    mypen.forward(30)

    mypen.left(45)
    mypen.forward(100)
    mypen.right(45)
    mypen.forward(30)

    mypen.right(45)
    mypen.forward(100)
    mypen.right(45)
    mypen.forward(30)

    mypen.right(45)
    mypen.forward(100)
    mypen.left(45)
    mypen.forward(30)

    mypen.right(45)
    mypen.forward(150)
    mypen.right(45)
    mypen.forward(30)

    mypen.right(45)
    mypen.forward(144)
    mypen.right(45)
    mypen.forward(30)

    mypen.end_fill()

    # 画出窗户
    yd(-165, -90)
    mypen.fillcolor("black")
    mypen.begin_fill()

    mypen.left(135)
    mypen.forward(30)
    mypen.left(90)
    mypen.forward(120)
    mypen.left(90)
    mypen.forward(30)
    mypen.goto(-165, -90)

    mypen.end_fill()

    # 画出太阳能电池板
    cd = [30, 160, 60, 160, 30]

    def dcb(a, b, c):
        yd(a, b)
        mypen.right(c)
        mypen.pensize(5)
        mypen.forward(200)
        mypen.begin_fill()
        mypen.fillcolor("blue3")
        for i in cd:
            mypen.left(90)
            mypen.forward(i)
        mypen.end_fill()
    dcb(100, -5, 90)
    dcb(-10, 90, 270)

    # 写下介绍
    mypen.pencolor("white")
    yd(150, 0)
    mypen.write("2003年,", font=("文泉驿正黑", 12))
    yd(150, -20)
    mypen.write("“神舟五号”载人飞船发射", font=("文泉驿正黑", 12))

elif jg__ == nf[4]:
    # 画出星空
    myscreen.setup(700, 600)
    turtle.bgcolor("darkblue")

    color = ["lightyellow", "light sky blue", "white"]
    for i in range(30):
        wz = random.randint(-350, 350)
        wz_ = random.randint(-300, 300)
        yd(wz, wz_)

        jg = random.choice(color)
        jg_ = random.randint(1, 10)
        mypen.dot(jg_, jg)

    mypen.pencolor("white")
    yd(0, 250)
    mypen.write(jg__, font=("文泉驿正黑", 35), align="center")

    # 画出月球
    yd(-2500, -5000)
    mypen.dot(5050, "grey")

    # 画出探测器主体
    yd(30, 150)
    mypen.left(75)
    mypen.pensize(5)
    mypen.pencolor("black")
    mypen.fillcolor("yellow3")
    mypen.begin_fill()

    for i in range(4):
        mypen.forward(100)
        mypen.right(90)

    mypen.end_fill()

        # 画出太阳能电池板
    cd = [30, 160, 60, 160, 30]

    def dcb(a, b, c):
        yd(a, b)
        mypen.right(c)
        mypen.pensize(5)
        mypen.forward(200)
        mypen.begin_fill()
        mypen.fillcolor("blue3")
        for i in cd:
            mypen.left(90)
            mypen.forward(i)
        mypen.end_fill()
    dcb(140, 180, 90)
    dcb(45, 190, 270)

        # 画出相机
    def tjk(a, b):
        yd(a, b)
        fx_ = [30, 240, 240, 330]
        jl_ = [40, 70, 40, 60]
        mypen.pencolor("black")
        mypen.pensize(5)
        mypen.begin_fill()
        mypen.fillcolor("grey")
        l = 0
        while l < 3:
            mypen.right(fx_[l])
            mypen.forward(jl_[l])
            l += 1
        mypen.end_fill()

    tjk(60, 145)

    # 画出光线
    mypen.pensize(1)
    mypen.pencolor("lightskyblue1")
    mypen.fillcolor("lightskyblue1")
    mypen.begin_fill()

    yd(50, 100)
    mypen.left(135)
    mypen.forward(250)
    mypen.left(105)
    mypen.forward(160)
    mypen.left(105)
    mypen.forward(250)
    mypen.goto(50, 100)

    mypen.end_fill()

     # 写下介绍
    mypen.pencolor("white")
    yd(150, 0)
    mypen.write("2007年,", font=("文泉驿正黑", 12))
    yd(150, -20)
    mypen.write("“嫦娥一号”拍摄首张月面图片", font=("文泉驿正黑", 10))

elif jg__ == nf[5]:
    # 画出星空
    xk()

    # 画出飞船主体
    yd(-175, -50)
    mypen.fillcolor("grey")
    mypen.begin_fill()

    mypen.pencolor(("black"))
    mypen.pensize(5)
    mypen.left(45)
    mypen.forward(150)
    mypen.right(45)
    mypen.forward(30)

    mypen.left(45)
    mypen.forward(100)
    mypen.right(45)
    mypen.forward(30)

    mypen.right(45)
    mypen.forward(100)
    mypen.right(45)
    mypen.forward(30)

    mypen.right(45)
    mypen.forward(100)
    mypen.left(45)
    mypen.forward(30)

    mypen.right(45)
    mypen.forward(150)
    mypen.right(45)
    mypen.forward(30)

    mypen.right(45)
    mypen.forward(144)
    mypen.right(45)
    mypen.forward(30)

    mypen.end_fill()

    # 画出窗户
    yd(-165, -90)
    mypen.fillcolor("black")
    mypen.begin_fill()

    mypen.left(135)
    mypen.forward(30)
    mypen.left(90)
    mypen.forward(120)
    mypen.left(90)
    mypen.forward(30)
    mypen.goto(-165, -90)

    mypen.end_fill()

    # 画出太阳能电池板
    cd = [30, 160, 60, 160, 30]

    def dcb(a, b, c):
        yd(a, b)
        mypen.right(c)
        mypen.pensize(5)
        mypen.forward(200)
        mypen.begin_fill()
        mypen.fillcolor("blue3")
        for i in cd:
            mypen.left(90)
            mypen.forward(i)
        mypen.end_fill()
    dcb(100, -5, 90)
    dcb(-10, 90, 270)

    #画出舱门
    yd(-165, -105)
    mypen.pencolor("black")
    mypen.pensize(10)
    mypen.forward(100)

    #画出缆绳
    yd(-105, -165)
    mypen.pensize(5)

    for i in range(20):
        mypen.forward(5)
        mypen.left(2)

    for i in range(10):
        mypen.forward(7)
        mypen.right(10)

    # 写下介绍
    mypen.pencolor("white")
    yd(150, 0)
    mypen.write("2008年,", font=("文泉驿正黑", 12))
    yd(150, -20)
    mypen.write("“神舟七号”人类太空漫步", font=("文泉驿正黑", 12))

elif jg__ == nf[6]:
    # 画出星空
    xk()

    #画出天宫一号主体
    yd(-250, -100)
    mypen.left(20)
    mypen.pencolor("black")
    mypen.pensize(5)

    mypen.fillcolor("grey")
    mypen.begin_fill()

    mypen.forward(200)
    mypen.right(50)
    mypen.forward(40)
    mypen.right(50)
    mypen.forward(40)
    mypen.right(40)
    mypen.forward(40)
    mypen.right(45)
    mypen.forward(200)
    mypen.goto(-250, -100)

    mypen.end_fill()

    #画出神舟八号主体
    mypen.penup()
    mypen.right(175)
    mypen.forward(200)
    mypen.right(50)
    mypen.forward(40)
    mypen.pendown()

    mypen.fillcolor("lightgrey")
    mypen.begin_fill()

    mypen.left(90)
    mypen.forward(40)
    mypen.right(45)
    mypen.forward(40)
    mypen.right(45)
    mypen.forward(40)
    mypen.left(55)
    mypen.forward(200)
        
    mypen.right(95)
    mypen.forward(90)
    mypen.right(98)
    mypen.forward(203)
    mypen.left(45)
    mypen.forward(40)
    mypen.right(45)
    mypen.forward(40)
    mypen.right(45)
    mypen.forward(40)
    mypen.right(45)
    mypen.forward(40)

    mypen.end_fill()

    #画出太阳能电池板
    cd = [30, 160, 60, 160, 30]
    def dcb(a, b, c):
        yd(a, b)
        mypen.right(c)
        mypen.pensize(5)
        mypen.forward(200)
        mypen.begin_fill()
        mypen.fillcolor("blue3")
        for i in cd:
            mypen.left(90)
            mypen.forward(i)
        mypen.end_fill()
    dcb(180, 25, 350)
    dcb(200, -40, 270)
    dcb(-185, -165, 100)
    dcb(-195, -80, 270)

    # 写下介绍
    mypen.pencolor("black")
    yd(150, 0)
    mypen.write("2011年,", font=("文泉驿正黑", 12))
    yd(150, -20)
    mypen.write("“天宫一号”与“神舟八号”对接", font=("文泉驿正黑", 10))

elif jg__ == nf[7]:
    # 画出天空
    myscreen.setup(700, 600)
    turtle.bgcolor("light sky blue")
    mypen.pencolor("white")
    yd(0, 250)
    mypen.write(jg__, font=("文泉驿正黑", 35), align="center")

    #画出火箭主体
    yd(-200, -200)
    mypen.left(45)
    mypen.pencolor("black")
    mypen.pensize(5)
    mypen.fillcolor("lightgrey")
    mypen.begin_fill()

    mypen.forward(500)
    mypen.right(30)
    mypen.forward(50)
    mypen.right(110)
    mypen.forward(50)
    mypen.right(40)
    mypen.forward(505)
    mypen.goto(-200, -200)

    mypen.end_fill()

    #画出两个推进小翼
    def tjxy(a, b, c):
        yd(a, b)
        mypen.fillcolor("lightgrey")
        mypen.begin_fill()

        mypen.right(c)
        for i in range(2):
            mypen.forward(250)
            mypen.right(90)
            mypen.forward(40)
            mypen.right(90)

        mypen.end_fill()
        
    tjxy(-200, -160, 180)
    tjxy(-150, -210, 0)

        # 画出推进孔
    def tjk(a, b, c):
        yd(a, b)
        mypen.right(c)
        fx_ = [30, 240, 240, 330]
        jl_ = [40, 80, 40, 70]
        mypen.pencolor("black")
        mypen.pensize(5)
        mypen.begin_fill()
        mypen.fillcolor("grey")
        l = 0
        while l < 3:
            mypen.right(fx_[l])
            mypen.forward(jl_[l])
            l += 1
        mypen.end_fill()

    tjk(-200, -160, 180)
    tjk(-150, -210, 210)

    #画出推进器火焰
    zj = [45, 60, 75, 90]
    ys = ["lightyellow", "yellow", "yellow3", "orange"]
    jl = [80, 60, 40, 20]
    i = 0
    mypen.right(210)
    while i < 4:
        yd(-180, -220)
        mypen.pensize(zj[i])
        mypen.pencolor(ys[i])
        mypen.forward(jl[i])
        i += 1

    def hy(a, b):
        zj = [15, 30, 45, 60]
        ys = ["lightyellow", "yellow", "yellow3", "orange"]
        jl = [60, 40, 20, 1]
        i = 0
        while i < 4:
            yd(a, b)
            mypen.pensize(zj[i])
            mypen.pencolor(ys[i])
            mypen.forward(jl[i])
            i += 1

    hy(-210, -190)
    hy(-150, -245)

    #画出火箭
    yd(-200, -200)
    mypen.right(180)
    mypen.pencolor("black")
    mypen.pensize(5)
    mypen.fillcolor("lightgrey")
    mypen.begin_fill()

    mypen.forward(500)
    mypen.right(30)
    mypen.forward(50)
    mypen.right(110)
    mypen.forward(50)
    mypen.right(40)
    mypen.forward(505)
    mypen.goto(-200, -200)

    mypen.end_fill()

    def tjxy(a, b, c):
        yd(a, b)
        mypen.fillcolor("lightgrey")
        mypen.begin_fill()

        mypen.right(c)
        for i in range(2):
            mypen.forward(250)
            mypen.right(90)
            mypen.forward(40)
            mypen.right(90)

        mypen.end_fill()

    tjxy(-200, -160, 180)
    tjxy(-150, -210, 0)

    def tjk(a, b, c):
        yd(a, b)
        mypen.right(c)
        fx_ = [30, 240, 240, 330]
        jl_ = [40, 80, 40, 70]
        mypen.pencolor("black")
        mypen.pensize(5)
        mypen.begin_fill()
        mypen.fillcolor("grey")
        l = 0
        while l < 3:
            mypen.right(fx_[l])
            mypen.forward(jl_[l])
            l += 1
        mypen.end_fill()

    tjk(-200, -160, 180)
    tjk(-150, -210, 210)

        #画出装饰小翼
    mypen.fillcolor("lightgrey")
    mypen.begin_fill()

    mypen.right(30)
    mypen.forward(20)
    mypen.right(90)
    mypen.forward(40)
    mypen.left(135)
    mypen.forward(55)
    mypen.left(135)
    mypen.forward(40)

    mypen.end_fill()

    yd(-200, -160)
    mypen.fillcolor("lightgrey")
    mypen.begin_fill()

    mypen.backward(20)
    mypen.right(90)
    mypen.forward(40)
    mypen.right(135)
    mypen.forward(55)
    mypen.right(135)
    mypen.forward(40)

    mypen.end_fill()

    # 写下介绍
    mypen.pencolor("black")
    yd(150, 0)
    mypen.write("2016年,", font=("文泉驿正黑", 12))
    yd(150, -20)
    mypen.write("“长征五号”大型运载火箭发射", font=("文泉驿正黑", 10))

elif jg__ == nf[8]:
    # 画出星空
    myscreen.setup(700, 600)
    turtle.bgcolor("darkblue")

    color = ["lightyellow", "light sky blue", "white"]
    for i in range(30):
        wz = random.randint(-350, 350)
        wz_ = random.randint(-300, 300)
        yd(wz, wz_)

        jg = random.choice(color)
        jg_ = random.randint(1, 10)
        mypen.dot(jg_, jg)

    mypen.pencolor("white")
    yd(0, 250)
    mypen.write(jg__, font=("文泉驿正黑", 35), align="center")

    #画出月球
    mypen.pencolor("grey")
    mypen.fillcolor("grey")
    mypen.begin_fill()

    yd(0, 0)
    mypen.forward(350)
    mypen.right(90)
    mypen.forward(300)
    mypen.right(90)
    mypen.forward(700)
    mypen.right(90)
    mypen.forward(300)
    mypen.goto(0, 0)

    mypen.end_fill()

    #画出着陆器着陆架
    mypen.pensize(2)
    mypen.right(90)
    mypen.pencolor("black")
    yd(50, 0)
    mypen.right(50)
    mypen.forward(120)
    mypen.dot(10)
    yd(50, 0)
    mypen.right(5)
    mypen.forward(100)
    mypen.dot(8)
    yd(50, 0)
    mypen.right(70)
    mypen.forward(100)
    mypen.dot(8)
    yd(50, 0)
    mypen.right(5)
    mypen.forward(120)
    mypen.dot(10)

    #画出着陆器主体
    yd(0, -50)
    mypen.left(130)
    mypen.pencolor("black")
    mypen.pensize(5)
    mypen.left(90)
    mypen.fillcolor("brown4")
    mypen.begin_fill()

    for i in range(4):
        mypen.forward(100)
        mypen.right(90)

    mypen.end_fill()

    #画出相机
    yd(50, 30)
    mypen.dot(20, "black")
    mypen.dot(18, "lightskyblue")

    #画出太阳能电池板
    yd(10, 50)
    mypen.fillcolor("blue")
    mypen.begin_fill()

    mypen.goto(10, 70)
    mypen.goto(90, 70)
    mypen.goto(90, 50)
    mypen.goto(10, 50)

    mypen.end_fill()

    # 写下介绍
    mypen.pencolor("black")
    yd(150, 0)
    mypen.write("2019年,", font=("文泉驿正黑", 12))
    yd(150, -20)
    mypen.write("“嫦娥喵”月背软着陆", font=("文泉驿正黑", 10))

turtle.done()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页