2025.03.14 笔记
1、护甲计算
prot = int(input('digite sua primeira nota: '))
# 用前前三个字母,变量
ham_val = prot * 0.4
axe_val = 200.0
if(axe_val > ham_val):
print("axe")
elif(axe_val < ham_val):
print("hammer")
else:
print("hard to choose")
# 原来代码
a=int(input("armor amount"))
# n针对的是hammer的伤害
n = a*0.4
if n<200:
print('axe')
if n==200:
print('hard to choose')
if n>200:
print('hammer')
2、是否有弹性
# 1、字符串,必须用单引号或双引号
# 2、判断数值大小的是用 == 表示相等
# 3、边界梳理, a>=0为有弹性
a=float(input())
if a>=0:
print("Yes")
else:
print("No")
if 0<a<1:
print("low elasticity")
if a==1:
print("unit elasticity")
if a>1:
print("high elasticity")
if a==0:
print("no elasticity")
3、判断哥哥姐姐等等
# 1、判断等于,使用 ==
# 2、 边界判断,等于只归到了 “JJ”;“GG”; “MM”,“DD” 不需要
# 以下是原未修改代码
S=input()
a=int(input())
if S="boy" and a>=20:
print("GG")
if S="boy" and a<=20:
print("DD")
if S="girl" and a>=20:
print("JJ")
if S="girl" and a<=20:
print("MM")
4、取平均数
#1、break是中断,for循环。不需要中断的,则不需要加
#2、循环n次,接收数据的模版是:
# for i in range(n):
# ai = int(input())
#3、使用接收的数据,input()
# 请在下方"____"位置添加适当语句(提交之前请删除所有下划线"_")
# 输入n,并将其转换为整数
n = int(input())
# 为变量SumA赋初值,用于计算n个数的累加和
sumA = 0
# 使用for循环,每次循环读入一个整数,求出n个数的累加和
for i in range(n):
sumA = sumA + int(input())
#计算平均数,直接取整并输出
print(int(sumA/n))
5、算最大最小业绩
#接收循环次数
n = int(input())
# 四个变量分别为,最大的业绩(以及编号),最小业绩以及其编号。 申明变量
#最大业绩的标号 0 <= ai <= 100,
max_i = 0
# 最大业绩的值
max_rank_score = 0
#最小业绩的标号
min_i = 0
#最小业绩的值
min_rank_score = 100
# for i in range(n): 循环的i是 0到n-1,range默认每次步长时1
# for i in range(1,n+1) 数学上:左闭右开的区间[1,n+1), for循环i是 1到n, range默认每次步长时1
for i in range(1,n+1):
ai = int(input())
if ai > max_rank_score:
max_rank_score = ai
max_i = i
if ai < min_rank_score:
min_rank_score = ai
min_i = i
#打印结果
print(str(max_i ) + ' ' + str(max_rank_score))
print(str(min_i ) + ' ' + str(min_rank_score))
6、纪念品计算
total_num = int(input())
day = 0
sum = 0
# 从 1到total_num次循环,每次循环表示一天
for i in range(1,total_num+1):
sum = sum + i
if sum > total_num:
day = i-1
break
print(day)
7、未知员工数,统计业绩
# 声明四个变量,分别用于存储最大业绩及其编号,最小业绩及其编号
# 最大业绩的编号,假设编号从1开始,0 <= ai <= 100
max_i = 0
# 最大业绩的值,初始化为负无穷,以便任何正数都能更新它
max_rank_score = float('-inf')
# 最小业绩的编号,假设编号从1开始
min_i = 0
# 最小业绩的值,初始化为正无穷,以便任何非正数都能更新它
min_rank_score = float('inf')
# 初始化编号变量,从1开始计数
index = 1
# 使用无限循环来持续读取输入,直到遇到EOF(文件结束符)
while True:
try:
# 读取一行输入,将其转换为字符串
ai_str = input()
# 如果输入为空字符串,则结束循环
if ai_str == "":
break
# 将输入的字符串转换为整数
ai = int(ai_str)
# 如果当前输入的业绩大于已知的最大业绩,则更新最大业绩及其编号
if ai > max_rank_score:
max_rank_score = ai
max_i = index
# 如果当前输入的业绩小于已知的最小业绩,则更新最小业绩及其编号
if ai < min_rank_score:
min_rank_score = ai
min_i = index
# 编号递增,为下一个业绩做准备
index += 1
except EOFError:
# 如果遇到EOF错误,则退出循环
break
# 打印最大业绩的编号和值
print(f"{max_i} {max_rank_score}")
# 打印最小业绩的编号和值
print(f"{min_i} {min_rank_score}")
8、计算GPA
n = int(input()) #读入n门课数
total_credit =0
gpa_sum =0
for i in range(n):
# Mi是计入GPA的各门课的学分
credit = int(input())
# Xi是该课程的成绩
score = int(input())
if score >= 60:
total_credit = total_credit + credit
#GPA =∑(Mi × (4 - (3 × (100 - Xi) ^ 2) / 1600)) / (∑Mi)
#其中:Mi是计入GPA的各门课的学分,Xi是该课程的成绩。
gpa_sum = gpa_sum + credit * (4-(3*(100-score)**2)/1600)
if total_credit == 0:
gpa = 0
else:
gpa = gpa_sum / total_credit
print(f"{gpa:.4f}")