Python习题一

6-1 接受多个整数输出最大值和所有整数之和

编写函数,可以接收任意多个整数并输出其中的最大值和所有整数之和。

函数接口定义:

在这里描述函数接口。例如:
def max_sum(str)

str是输入的任意多个整数

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。例如:
x=input()
max1,sum1=max_sum(x)
print(max1)
print(sum1)

/* 请在这里填写答案 */

输入样例:

在这里给出一组输入。例如:

3 5 2 7

输出样例:

在这里给出相应的输出。例如:

7
17

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案:

def max_sum(str):
    list1=list(map(int,str.split()))
    return max(list1),sum(list1)

6-2 缩写词

缩写词是由一个短语中每个单词的第一个字母组成,均为大写。例如,CPU是短语“central processing unit”的缩写。

函数接口定义:

acronym(phrase);
phrase是短语参数,返回短语的缩写词

裁判测试程序样例:


/* 请在这里填写答案 */

phrase=input()
print(acronym(phrase))

输入样例:

central  processing  unit

输出样例:

CPU

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案:

def acronym(phrase):
    res=""
    for word in phrase.split():
        res+=word[0].upper()
    return res

6-3 使用函数求特殊a串数列和

给定两个均不超过9的正整数a和n,要求编写函数fn(a,n) 求a+aa+aaa++⋯+aa⋯aa(n个a)之和,fn须返回的是数列和

函数接口定义:


fn(a,n)
其中 a 和 n 都是用户传入的参数。 a 的值在[1, 9]范围;n 是[1, 9]区间内的个位数。函数须返回级数和

裁判测试程序样例:


/* 请在这里填写答案 */
         
a,b=input().split()
s=fn(int(a),int(b))
print(s)

输入样例:

在这里给出一组输入。例如:

2 3

输出样例:

在这里给出相应的输出。例如:

246

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案:

def fn(a,n):
    return(sum([int(str(a)*i) for i in range(1,n+1)]))

7-1 计算平均数

输入一系列的正整数,输入-1表示输入结束,然后计算出这些数字的平均数,输出输入的正整数个数和平均值。

输入格式:

表控输入,每行输入一个正整数,输入-1表示输入结束

输出格式:

分两行输出,第一行输出输入正整数的个数,第二行输出平均值,输出样式为:
输入了 XX个正整数
平均值为: XX
注: 字符串中的冒号为中文冒号

输入样例1:

在这里给出一组输入。例如:

18 
2
76
54
38
9
-1

输出样例1:

在这里给出相应的输出。例如:

 输入了           6 个正整数
 平均值为:   32.8333321    

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案:

待定

7-2 jmu-python-求单词长度

输入n个单词,计算每个单词长度。对单词长度排序,分行输出单词长度及其单词。

输入格式:

  • 行1:单词个数n
  • 分行输入n个单词

输出格式:

分行输出单词长度及其单词。(单词长度,单词)用元组表示

输入样例:


5
python
list
set
996
tuple

输出样例:

(3, '996')
(3, 'set')
(4, 'list')
(5, 'tuple')
(6, 'python')

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案:

a=int(input())
b=[]
for i in range(a):
    x=input()
    b.append(x)
b.sort(key=lambda x:(len(x),x[0]),reverse=False)
for e in b:
    print("({}, '{}')".format(len(e),e))

7-3 显示数字出现次数

输入一个十进制正整数,转换成16进制数。再输入一个数(0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f),统计这个数出现的次数。

输入格式:

一行输入十进制正整数。
另一行输入要统计的数。

输出格式:

要统计的数出现的次数。

输入样例1:

在这里给出一组输入。例如:

84117512 
8

输出样例1:

在这里给出相应的输出。例如:

3

输入样例2:

在这里给出一组输入。例如:

46883310
e

输出样例2:

在这里给出相应的输出。例如:

2

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案:

n=int(input())
sum=input()
t=list(hex(n))
c=0
for i in t:
    if sum==i:
        c+=1
print(c)

7-4 逆序输出

输入n个数,然后把这n个数逆序输出。

输入格式:

测试数据有多组,处理到文件尾。每组测试数据在一行上首先输入整数n,接着输入n(n<=40)个整数。

输出格式:

对于每组测试,逆序输出n个数,每两个数据之间留一个空格。每两组测试数据之间留一个空行。

输入样例:

5 1 2 3 4 5
3 1 2 3

输出样例:

5 4 3 2 1

3 2 1

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案:

f=1
while True:
    try:
        lst=list(map(int,input().split()))
        del lst[0]
        lst.reverse()
        if f==0:
            print()
        for i in range(len(lst)):
            if i==len(lst)-1:
                print("%d"%lst[i],end="")
            else:
                print("%d "%lst[i],end="")
        f=0
        print()
    except:
        break

7-5 杭州阶梯电价

杭州实行一户一表并阶梯电价制:月用量超过230kw以内的,电价为0.538元;超过230kw并在400kw以内的,超出部分电价上涨0.05元;超过400kw的超出部分再上涨0.3元。编写程序,当输入某用户使用月电量,输出该用户月电费总价(输入为整数,输出保留两位小数)

输入格式:

输入大于零的月电量。

输出格式:

输出月电费。

输入样例:

300

输出样例:

164.90

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案:

x=float(input())
if x<=230:
    print("{:.2f}".format(x*0.538))
elif x<=400:
    print("{:.2f}".format((x-230)*0.05+(x*0.538)))
elif x>400:
    print("{:.2f}".format((x-400)*0.3+(x-230)*0.05+(x*0.538)))

7-6 数值不同求和—实验4

数值不同求和:计算输入数值中出现不同数字的和。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

输入格式:

从键盘输入一个整数n‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬。

输出格式:

输出 n中所出现不同数字的和。例如:123456654321,1、2、3、4、5、6各出现2次,只计算1次,即:1+2+3+4+5+6

输入样例:

在这里给出一组输入。例如:

123456654321

输出样例:

在这里给出相应的输出。例如:

21

代码长度限制 16 KB

Python (python3)

时间限制 400 ms

内存限制 64 MB

Python (python2)

时间限制 400 ms

内存限制 64 MB

其他编译器

时间限制 400 ms

内存限制 64 MB

参考答案:

n=input()
s=set(n)
y=0
for i in s:
    y+=eval(i)
print(y)

7-7 成绩排名

对于n个学生m门课程的成绩,按平均成绩从大到小输出学生的学号(不处理那些有功课不及格的学生),对于平均成绩相同的情况,学号小的排在前面。

输入格式:

首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组数据首先输入2个正整数n,m(1≤n≤50,1≤m≤5),表示有n个学生和m门课程,然后是n行m列的整数,依次表示学号从1到n的学生的m门课程的成绩。

输出格式:

对于每组测试,在一行内按平均成绩从大到小输出没有不及格课程的学生学号(每两个学号之间留一空格)。若无满足条件的学生,则输出“NULL”(引号不必输出)。

输入样例:

2
4 3
60 60 61
60 61 60
77 78 29
60 62 60
4 3
60 60 61
60 61 60
60 62 60
60 62 60

输出样例:

4 1 2
3 4 1 2

代码长度限制 16 KB

时间限制 400 ms

内存限制 64 MB

参考答案:

a=int(input())
for i in range(a):
    d1={}
    s,c=map(int,input().split())
    for i in range(s):
        grade=list(map(int,input().split()))
        if min(grade)<60:
            continue
        d1[i+1]=grade
    if d1=={}:
        print("NULL")
        continue
    list_end=[]
    for i in sorted(d1.items(),key=lambda x:-sum(x[1])):
        list_end.append(str(i[0]))
    print(' '.join(list_end))
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值