猫史档案馆


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

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


【作品展示】

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:
    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下一页