蓝桥杯2019年12月15号编程练习参考答案

"""
   第一题参考答案.py,三角切半圆
"""
import turtle

turtle.color('red','yellow')   # 设定画笔颜色和填充颜色
turtle.penup()                 # 抬笔
turtle.ht()                    # 隐藏

turtle.fd(150)                 # 前进150
turtle.pendown()               # 落笔
turtle.begin_fill()            # 开始填充
for x in range(3):
    turtle.left(120)
    turtle.fd(300)
turtle.end_fill()              # 结束填充

turtle.penup()                 # 抬笔 
turtle.goto(150,-150)          # 定位坐标
turtle.setheading(90)          # 面向90度方向
turtle.color('green')          # 设定颜色为绿色
turtle.begin_fill()            # 开始填充
turtle.circle(150,180)         # 画半径为150的半圆
turtle.end_fill()              # 结束填充

turtle.mainloop()

"""
   第二题百钱买百鸡.py
"""

for x in range(100//5):            # 公鸡5元一只,所以最多100/5只.
    for y in range(100//3):
        for z in range(100*3):
            p = x * 5 + y * 3 + z * 1/3 
            if x + y + z == 100 and p == 100:
                print('公鸡',x,'只,','母鸡',y,'只,','小鸡仔',z,'只',sep='')
input()

"""
   第三题.py,菱形绕圆圈
"""
import turtle

def draw():
    """定义画菱形函数"""
    turtle.right(30)
    turtle.begin_fill()
    for _ in range(2):
        turtle.fd(80)
        turtle.left(60)
        turtle.fd(80)
        turtle.left(120)
    turtle.end_fill()
    turtle.left(30)
        
turtle.ht()           # 隐藏
turtle.penup()        # 抬笔
turtle.pencolor('red')# 画笔颜色

# 画圆形
turtle.fd(120)        # 首先前进120
turtle.left(90)       # 左转90变成向上
turtle.pendown()      # 落笔
turtle.circle(120)    # 画圆
turtle.penup()        # 抬笔 
turtle.right(90)      # 右转90度 
turtle.bk(120)        # 回到初始位置   

# 画12个菱形
turtle.color('black','yellow')
for _ in range(12):
    turtle.fd(120)
    turtle.pendown() 
    draw()
    turtle.penup() 
    turtle.bk(120)
    turtle.right(30)

turtle.mainloop()


"""
   第四题输入英文字母统计字母频率
"""
s1 = input("请输入第1行英文字母:")
s2 = input("请输入第2行英文字母:")
s3 = input("请输入第3行英文字母:")

s = s1 + s2 + s3          # 把三行连接起来
print(s)
bs = s.upper()            # 转为大写的字符串

letters = []              # 新建列表,为了把非字母去掉
for a in list(bs):
    if a.isalpha():       # 是字母才添加
        letters.append(a)

letters  = set(letters)   # 转换为集合,去除重复
letters = list(letters)   # 再次转为列表,好排序
letters.sort()            # 排序

for alpha in letters:     # 输出每一个字母
    print(alpha,end='   ')

print()

for alpha in letters:     # 统计每个字母的字符数
    print(bs.count(alpha),end='   ')


"""包括这一行,非本程序内容,这里是记录一下本程序的一个输出而已.
请输入第1行英文字母:I love you,my baby.
请输入第2行英文字母:You are a good boy.
请输入第3行英文字母:We are very happy with you.
I love you,my baby.You are a good boy.We are very happy with you.
A   B   D   E   G   H   I   L   M   O   P   R   T   U   V   W   Y   
5   3   1   5   1   2   2   1   1   7   2   3   1   3   2   2   8
"""
input()


"""
   第五题,打印杨辉三角.py
"""

level = input('请输入2到15间的正整数:')
level = int(level)

q = []                         # 存储杨辉三角数据的列表
q.append( [0,1,0] )            # level为1时
q.append([0,1,1,0])            # level为2时
for n in range(2,level):
    temp = [0,0]
    for index in range(len(q[n-1])-1):
        # 下一个数据为上两个数据之和
        x = q[n-1][index] + q[n-1][index+1]
        temp.insert(1,x)       # 插入到索引为1的位置
    q.append(temp)
    
rows = 0
for p in q:
    cols = 0
    spaces = 2 * (n -  rows)        # 计算空格数
    print(" " * spaces,end="")      # 打印空格
    for x in p:
        if x == 0 :continue        
        print("{:>4}".format(x),end="")
         
    print()
    rows = rows + 1


扫码后加李兴球微信号:scratch8,获赠100Python创意程序及大量Scratch作品。 本站所有作品,教程等皆为原创,盗版必究。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。扫码付款后的朋友可以加QQ: 406273900,提供技术支持及发送作品图片与配音素材。亦可直接向微信号scratch8付款购买。
李兴球的博客_Python创意编程技术前沿 » 蓝桥杯2019年12月15号编程练习参考答案

学本领,探索更大的世界!

李兴球博客 风火轮编程主页