Python基础综合

1.python组合数据

十位评委对六位歌手打分,六位歌手的得分数据如fs列表所示 fs=[['zhang',9.5,9.8,9.7,9.6,9.5,9.9,9.6,9.2,9.3,9.7], ['huang',8.5,8.8,7.7,7.6,8.5,8.3,9.1,7.8,7.5,9.3], ['liu',9.5,8.8,7.2,9.6,8.5,6.5,6.3,7,6.9,9], ['chen',9.5,9.8,8.7,8.6,7.5,8.8,8.1,9.3,9.2,9.9], ['lin',9.9,7.8,7.5,7.2,6.5,9.1,9.2,9.3,8.5,8.2], ['ye',9.8,6.8,6.2,9.3,7.5,8.3,9.1,9.4,8.7,8.9]] 计算每位歌手的实际得分,即去掉一个最高分、一个最低分的平均分,按从高到低的顺序,输出前3名的名次、姓名和实际得分(保留两位小数) 例如,第1名姓名zhang分数9.59

fs=[['zhang',9.5,9.8,9.7,9.6,9.5,9.9,9.6,9.2,9.3,9.7],
    ['huang',8.5,8.8,7.7,7.6,8.5,8.3,9.1,7.8,7.5,9.3],
    ['liu',9.5,8.8,7.2,9.6,8.5,6.5,6.3,7,6.9,9],
    ['chen',9.5,9.8,8.7,8.6,7.5,8.8,8.1,9.3,9.2,9.9],
    ['lin',9.9,7.8,7.5,7.2,6.5,9.1,9.2,9.3,8.5,8.2],
    ['ye',9.8,6.8,6.2,9.3,7.5,8.3,9.1,9.4,8.7,8.9]]
#代码开始
for a in range(3):
    m0=0
    for i in fs:
        l=i[:]
        name=l.pop(0)
        l.sort()
        del l[0]
        del l[-1]
        m=sum(l)/len(l)
        if m0<m:
            n0=name
            m0=m
    print('第{:.0f}名姓名'.format(a+1),end='')
    print(n0,end='')
    print('分数{:.2f}'.format(m0))
    for i in range(len(fs)-1):
        if fs[i][0]==n0:
            del fs[i]

2.SBN校验码

国际标准书号(ISBN)用10位数字唯一标识的一本书。 最后一位数字为校验位,可以由其他9位数字计算出来,且d1+2d2+3d3+……+10d10必须是11的倍数(di的下标表示从右边起第i个数)。 校验位必须是介于0到10中的一个数字,用字母X表示10.例如,020131452的校验和是5,因为对于以下11的倍数的公式,5是唯一的介于0-10之间的数, 10*0+9*2+8*0+7*1+6*3+5*1+4*4+3*5+2*2+1*5 编写一个python程序,将9位整数作为输入,计算校验和并打印isbn号 例如,输入020131452,输出0201314525

方法一:

l=list(x)
for i in range(11):
    if (10*eval(l[0])+9*eval(l[1])+8*eval(l[2])+7*eval(l[3])+6*eval(l[4])+5*eval(l[5])+4*eval(l[6])+3*eval(l[7])+2*eval(l[8])+1*i)%11==0:
        n=str(i)
if n=='10':
    n='X'
print(x+n)

方法二:

n=10
m=[]
b=[]
for i in x:
    i=int(i)
    a=i*n
    n=n-1
    m.append(a)

for i in range(11):
    s=(sum(m)+i)%11
    if s==0:
        i=str(i)
        break
if i =='10':
    print(s+'x')
else:
    print(x+str(i))
x=input("")

3.python循环数列

输入n,计算下列数列和

例如,输入5,输出22.09(平方根使用sqrt函数)

import math
n=eval(input())
s=0
zh=0
a=[]
#开始
for i in range(1,n+1):
    for j in range(i+1):
        j=math.sqrt(j)
        a.append(j)
s=sum(a)
#结束
print("{:.2f}".format(s))

4.小时工工资计算

某公司按小时计费工资。规定每周5个工作日,每天工作8小时。工作日超时工作工资为正常工资的1.5倍。休息日工资,4小时内为正常工资的2倍,超过4小时为正常工资的3倍。 输入每小时工资,员工每周的工作日工作小时数和休息日工作小时数,计算其该周工资 例如每小时工资30元。工作日50小时,休息日8小时,其工资为2250.00元

z=eval(input("工资标准"))
g=eval(input("工作日工作时间"))
x=eval(input("休息日工作时间"))
#代码开始
if g<40:
    q=z*g
elif g>40:
    q=(g-40)*1.5*z+40*z
if x>4:
    a=4*2*z+(x-4)*3*z
elif x<=4:
    a=x*2*z
w=q+a
#代码结束
print("工资{:.2f}".format(w))

5.python语言表达式抛物运动垂直方向位移

抛物运动垂直方向的位移公式

输入速度v 角度a 和时间t(g取9.8 ) 计算y(保留两位小数) 例如输入 100 60 10 输出376.03

 

from math import *
v=eval(input())
a=eval(input())
t=eval(input())
#开始
y=v*sin(radians(a))*t-9.8*t*t/2
#结束
print("{:.2f}".format(y))

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值