Python考试编程题解析及答案

1.编程实现汇率的双向兑换(1美元=6人民币)。

huilv = 6 #设置汇率
def renzhaunmei(num): #定义人民币转换为美元
return num / huilv
def meizhuanren(num): #定义美元转换为人民币
return num * huilv
a = input("请输入一个以¥或者$结尾的数字:")
if a[-1] == "$":
a = float(a[0:-1])
print(f"{a}美元转换为人民币的数额为:", round(meizhuanren(a), 2))
elif a[-1] == "¥":
a = float(a[0:-1])
print(f"{a}人民币转换为美元的数额为:", round(renzhuanmei(a), 2))
else:
print("您输入的数字格式有误,请重新输入!")

2.使用turtle模块绘制奥运五环图形。 

import turtle

# 设置窗口大小
turtle.setup(800, 600)

# 设置画笔
pen = turtle.Turtle()
pen.width(10)

# 绘制蓝色圆环
pen.color('blue')
pen.penup()
pen.goto(-200, -50)
pen.pendown()
pen.circle(100)

# 绘制黑色圆环
pen.color('black')
pen.penup()
pen.goto(50, -50)
pen.pendown()
pen.circle(100)

# 绘制红色圆环
pen.color('red')
pen.penup()
pen.goto(300, -50)
pen.pendown()
pen.circle(100)

# 绘制黄色圆环
pen.color('orange')
pen.penup()
pen.goto(-80, -150)
pen.pendown()
pen.circle(100)

# 绘制绿色圆环
pen.color('green')
pen.penup()
pen.goto(180, -150)
pen.pendown()
pen.circle(100)

# 隐藏画笔
pen.hideturtle()

# 保持窗口不关闭
turtle.done()

3.输出任一百分制成绩所对应的等级:90分以上为“优秀”,80-90分为“良好”,70-80分为“中等”,60-70分为“及格”,60分以下为“不及格”。

score = int(input("请输入百分制成绩:"))
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 70:
    print("中等")
elif score >= 60:
    print("及格")
else:
    print("不及格")

 4.输出1-100之间所有偶数的和。

result = 0   #初始化结果
for i in range(1, 101): #遍历1-100之间的数,判断是否为偶数,如果是偶数就加在一起
    if i % 2 == 0:      
        result += i    
print("1-100之间所有的偶数和为:", result)

5.从1开始顺序数数,数到有5或者包含5倍数的数字拍手。编程输出100以内需要拍手的数字。

for num in range(1, 101):  #遍历循环1-100之间的数
    temp = num
    while temp > 0:
        a = temp % 10
        if num % 5 == 0:   #判断该数字是否为5的倍数
            print(num)
            break
        elif a == 5:       #判断该数字中是否含有5
            print(num)
        temp //= 10

6.输出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

for num in range(100, 1000):  #遍历循环所有的三位数
    result = 0  #初始化结果           
    n = len(str(num)) #计算数字的位数
    temp = num        #循环计算每个数字的n次方和
    while temp > 0:
        a = temp % 10
        result += a**n
        temp //= 10
    if num == result:  #判断是否为水仙花数 [该数的n次方和等于该数]
        print(num)

7.定义一个函数,返回三个数(从键盘输入的整数)中的最大值。

a = float(input("请输入第一个数:"))
b = float(input("请输入第二个数:"))
c = float(input("请输入第三个数:"))
if a >= b and a >= c:
    print("最大值为:", a)
elif b >= a and b >= c:
    print("最大值为:", b)
elif c >= a and c >= b:
    print("最大值为:", c)

8.编写函数,判断用户输入的整数是否为回文数。回文数是一个正向和逆向都相同的整数,如123454321。

a = str(input("请输入整数:"))
if a == a[::-1]:
    print(f"{a}是一个回文数")
else:
    print(f"{a}不是一个回文数")

9.编程实现求n!

def jiecheng(num):
    if num == 0:
        return 1
    else:
        return num * jiecheng(num-1)
a = int(input("请输入一个数:"))
print(f"{a}的阶乘为:", jiecheng(a))

10. 基本统计值计算,给出一组数据,计算它们的和、平均值、标准差、中位数。

import numpy
data = []
while True:
    try:
        a = int(input("请输入数组元素,以任意非数字结束:"))
        data += [a]
    except:
        break

def he(data):
    return sum(data)
def average(data):
    l = len(data)
    return sum(data) / l
def biaozhuncha(data):
    return numpy.std(data)
def center(data):
    data.sort()
    l = len(data)
    if l % 2 == 0:
        l = l // 2
        s = (data[l - 1] + data[l]) / 2
        return s
    else:
        l = l // 2
        return data[l]

print(f"{data}的和为:", he(data))
print(f"{data}的平均值为:", average(data))
print(f"{data}的标准差为:", biaozhuncha(data))
print(f"{data}的中位数为:", center(data))

物联沃分享整理
物联沃-IOTWORD物联网 » Python考试编程题解析及答案

发表评论