猫史档案馆


【Python作品分享】【去太空,趣编程】太空问答---- 张斐梵

用户:成熟的炸弹人Honq成熟的炸弹人Honq查看:0 回复:0 评论:0 创建时间:2021-05-03T21:47:01


【作品展示】

center_image

 

【作品介绍】

这是一组关于太阳系的太空知识问答,我运用了海龟库,做出背景和问题窗口,最后还有成绩总结。希望大家会喜欢!

 

【作品源代码】

import turtle,random,time

correct = 0
i = 0
p = turtle.Pen()
s = turtle.Screen()
s.screensize(800,800)
s.tracer(0)

p.hideturtle()
p.pencolor('white')
turtle.bgcolor('black')
for x in range(100):
    p.penup()
    p.goto(random.randint((-400), 400), random.randint((-400), 400))
    p.pendown()
    p.dot(5)
p.penup()
p.goto(0, (-200))
p.pendown()
p.pencolor('turquoise')
p.write('太空问答',font=('宋体',100),align='center')
p.penup()
p.goto(0, 0)
p.pendown()
p.pencolor('red3')

def answering(ans_obj, question, num):

    global i, correct
    guess_num = turtle.textinput('第{}题'.format(num), question)
    while (not guess_num.isnumeric()):
        guess_num = turtle.textinput('出现问题', '请使用数字~,再来一次吧:{}'.format(question))
    try:
        while (guess_num != ans_obj):
            while (not guess_num.isnumeric()):
                guess_num = turtle.textinput('出现问题', '请使用数字~,再来一次吧:{}'.format(question))
            try:
                guess_num = int(guess_num)
                if (guess_num > ans_obj):
                    guess_num = turtle.textinput('第{}题'.format(num), '抱歉,您答的数太大了,请再试一次~')
                elif (guess_num < ans_obj):
                    guess_num = turtle.textinput('第{}题'.format(num), '抱歉,您答的数太小了,请再试一次~')
                else:
                    pass
                i += 1
            except :
                pass
        try:
            if (i == 1):
                p.write('恭喜你,答对了!', font=('宋体', 50), align='center')
                correct += 1
            else:
                p.write('你在{}次尝试中答对了题目'.format(i),font=('宋体', 35), align='center')
            i = 0
        except :
            pass
    except :
        pass
    while (guess_num != ans_obj):
        while (not guess_num.isnumeric()):
            guess_num = turtle.textinput('出现问题', '请使用数字~,再来一次吧:{}'.format(question))
        try:
            guess_num = int(guess_num)
            if (guess_num > ans_obj):
                guess_num = turtle.textinput('第{}题'.format(num), '抱歉,您答的数太大了,请再试一次~')
            elif (guess_num < ans_obj):
                guess_num = turtle.textinput('第{}题'.format(num), '抱歉,您答的数太小了,请再试一次~')
            else:
                pass
            i += 1
        except :
            pass

def new_text():

    time.sleep(1.5)
    p.undo()

# 最终区
answering(8, '太阳系有多少行星?', 1)
new_text()
answering(2006, '是在什么年,冥王星成为了一个小行星?', 2)
new_text()
answering(79, '木星有多少个月亮?', 3)
new_text()
answering(88, '水星公转平均需要多少地球天(24小时)?', 4)
new_text()
answering(num=5, ans_obj=2, question='平均每过几天就会发生一次太阳耀斑?')
new_text()
if (correct == 5):
    p.write('你在五题中,只试一次就答对了5题,真厉害!',align='center',font=('宋体',25))
else:
    p.write('你在五题中,只试一次就答对了{}题,请再接再厉!'.format(correct),align='center',font=('宋体',25))
turtle.done()

 

【提示】

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

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页