Hello!欢迎来到六个核桃Lu!
1.
测试内容
(1) Python 基本语法元素;
(2) Python 基本数据类型及使用;
(3) Python 编程基本语法中的条件判断和循环控制结构;
(4) Python 编程基本语法中的函数及代码复用;
(5) Python 编程基本语法中的组合数据类型。
2.
测试要求
(1) 认真阅读测试题目要求,完成各项题目内容;
(2) 各项题目中,
需要写明程序设计思路,以及具体程序代码
。
3.
测试过程
1. 人民币和美元是世界上通用的两种货币之一,且人民币和美元间的汇率 动态变化。写一个程序,根据动态变化的汇率,进行货币间币值转换。程序可以 接受人民币或美元输入,转换为美元或人民币输出。人民币采用 RMB 表示,美元 USD 表示,符号和数值之间没有空格。提示:人民币和美元间的动态汇率,通过 input()函数获取。示例 1:输入:"RMB123"输出:"USD18.14"示例 2:输入:"USD20"输出:"RMB135.60"
input_list=[] # 定义一个输入列表 用来储存输入进来的数据
input_list=input("请输入货币及金额:")
hb=input_list[:3] # 列表前三位
je=input_list[3:] # 列表后三位
if hb=='RMB':
je = float(je) / 6.78 # 汇率为6.78
print('USD'+str("%.2f"%je)) # "%.2f"%je 金额保留小数点后两位
else:
je = float(je) * 6.78
print('RMB'+str("%.2f"%je))
输出结果:
![](https://img-blog.csdnimg.cn/5a7d86c9d3e947d888b8411aac3997f0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5YWt5Liq5qC45qGDTHU=,size_13,color_FFFFFF,t_70,g_se,x_16)
2. A 君: 一年 365 天,每天进步 1%,不停歇;B 君: 一年 365 天,每周工作 6 天休息 1 天。好好学习时能力值比前一天提高 1%,休息日下降 1%。B 君每周工作 6 天休息 1 天,计算 B 君工作日的努力参数是多少,才能与 A 君每天努力 1%一样。提示:(1) 一年 365 天,以第 0 天的能力值为基数,记为 1.0。(2) B 君工作日的努力参数起始值为 0.01。(3) 程序设计使用函数,且最终输出结果保留 3 位有效数字。
这道题,核桃没有太理解它的数学逻辑,大家就当个参考吧~
# 工作量 = 每天的能力值相加
# 每天的能力值 = 基数+-(基数*努力参数)=基数*(1+-努力参数)
A = 1.0
B = 1.0
b_strive = 0.01 # B君工作日的努力参数 起始值为 0.01
sum_A = 0
sum_B = 0
# A的工作函数
def A_run(x):
x = x * 1.01 # 每天进步 1%,即努力参数固定为0.01
print("A今日能力值= ", "%.3f"%x)
return x
# B的工作函数
def B_run(y, b_strive):
y = y * (1+b_strive)
print("B今日能力值=","%.3f"%y)
return y
# 进入循环工作
for i in range(1000):
print("————第", i, "天————")
A = A_run(A)
if i % 6 == 0: # 休息日
b_strive -= 0.01
B = B_run(B, b_strive)
else: # 工作日
b_strive += 0.01
B = B_run(B, b_strive)
sum_A += A
sum_B += B
if sum_A <= sum_B: # 当B的工作量超过A或与A一致 跳出循环
print("B君撵上了A君", "A的总工作量 =", "%.3f"%sum_A, "B的总工作量 =", "%.3f"%sum_B)
print("此时B君工作日的努力参数是:", "%.3f"%b_strive)
break
i += 1
输出结果:
3. 双十一期间一家商场在降价促销,如果购买金额在[0,500)之间折扣为5%,[500,1000)之间折扣为 10%,[1000,3000)之间折扣为 30%,3000 元以上 折扣为 50%。编写一个程序,询问客户的购买价格,计算并显示折扣,以及最终价格。
Purchase_amount = int(input("请输入购买金额:"))
# 如果购买金额在[0,500)之间折扣为5%
if 0 <= Purchase_amount < 500:
print("折扣为5%")
Purchase_amount *= (1-0.05)
# [500,1000)之间折扣为 10%
elif 500 <= Purchase_amount < 1000:
print("折扣10%")
Purchase_amount *= (1-0.1)
# [1000,3000)之间折扣为 30%
elif 1000 <= Purchase_amount < 3000:
print("折扣为30%")
Purchase_amount *= (1-0.3)
# 3000 元以上折扣为 50%
else:
print("折扣为50%")
Purchase_amount *= (1 - 0.5)
print("最终价格为", Purchase_amount, "$")
输出结果:
4. 运用 while 进行非确定次数循环,给学生三次输入用户名(真实姓名)和密码(学号)的机会,要求如下:第一行输入自己的姓名,如‘王凯’;第二行输入自己的学号,如 ‘20211105001’。若输入正确,输出‘登录成功!’并退出程序。若输入不正确,用户可继续尝试信息输入;当一共有 3 次输入姓名或学号输入不正确,输出提示信息“3 次输入信息均有误!退出程序”。
i = 0
while True:
Name = input("输入自己的姓名:")
Number = int(input("输入自己的学号:"))
if Name == "王凯":
if Number == 20211105001:
print("登录成功!")
break
else:
print("输入不正确!请继续尝试信息输入!")
i += 1
if i == 3:
print("三次输入信息均有误!退出程序!")
break
输出结果:
5. 从键盘获取用户输入 n,求和 1!+2!+3!…… +n!示例:输入:"10"输出:"4037913"
n =int(input("请输入n:"))
# 阶乘函数 迭代函数本身
def Factorial(n):
if n-1 == 0:
return 1
else:
return n * Factorial(n-1)
sum = 0 # 和
while True:
if n == 0:
print("输出:",sum)
break
else:
sum += Factorial(n)
n-=1
输出结果:
6. 随机产生10个[0,1)之间的随机小数,并将这10个数添加到一个列表中。
import random
list=[] # 定义一个列表
for i in range(10): # 循环10次
list.append(random.random()) # 随机生成小数 并添加进列表
print(list)
输出结果:
[0.44740796339536193, 0.7529664388836526, 0.40372627736375055, 0.10194916112480756, 0.46636740848855385, 0.37870325472456, 0.6766166769170668, 0.6223010848508999, 0.09149218718559704, 0.19987081475339574]