python第10周(python学习题集)

29 篇文章 19 订阅
12 篇文章 24 订阅

不得不说,第十周的难度的确是起来了,就我做完的时间不是很早,也没有人全对,所以难度有,如果有可能,尽量自己做做,未来我会慢慢的吧难题出来,最早应该在明天,今天属实有点累了,先休息了,如果大家喜欢可以多多点赞,我的更新会更快


6-1 求列表中能被3整除的数 (10 分)

本题要求实现一个函数mult3(),带一个整数列表作为输入参数,仅仅输出列表中是3的倍数的那些数值,每个值占一行。

函数接口定义:

 mult3(lst)

lst是传入的整数列表。

裁判测试程序样例:

# 请在这里填写答案  

def main():
    mylist = [3, 1, 6, 2, 3, 9, 7, 9, 5, 4, 5]
    mult3(mylist)

main()

输入样例:

无输入:

 

结尾无空行

输出样例:

输出:

3
6
3
9
9

结尾无空行

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/11/1 16:45
def mult3(lst: list):
    for i in lst:
        if i % 3 == 0:
            print(i)
           

6-2 求列表中和为n的整数对 (10 分)

本题要求实现一个函数pairSum(),带两个输入参数:一个值不重复的整数列表lst和一个整数n。输出列表中所有和为n的整数对的索引。

函数接口定义:

 pairSum(lst, n)

lst是传入的整数列表,n为整数

裁判测试程序样例:

#  请在这里填写答案 */

def main():
    pairSum([7, 8, 5, 3, 4, 6, 5], 11)

main()

输入样例:

无输入

 

结尾无空行

输出样例:

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

0 4
1 3
2 5
5 6

结尾无空行

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/11/1 17:37
def pairSum(lst: list, n):
    for i in range(len(lst)):
        for q in range(i,len(lst)):
            if i != q and lst[i] + lst[q] == n:
                print(i, q)

7-1 词频统计 - 实验11 字典操作及应用 - 《Python编程实验》 (10 分)

从键盘读入由仅由英文构成的多行文本,借助于字典统计其中每个单词出现的次数。然后按字典递增序按格式输出每个单次出现的次数。


要求:
1. 所有单词不区分大小写,输出时按小写格式输出;
2. 需要排除! , : ?等英文符号,即这些符号不应作为单词的构成部分;
3. 需要排除0,1,2,... 9等数字,即这些数字不应作为单词的构成部分。

输入格式:

行数n
第1行内容
第2行内容
....
第n行内容

输出格式:

单词1 单词1出现次数
单词2 单词2出现次数
...
单词k 单词k出现次数

注意: 单词1, 2,.... k 按字典递增序。

输入样例:

4
Hello! baby! Jupyter 4 class 
class ultimately.
class
jupyter

结尾无空行

输出样例:

baby 1
class 3
hello 1
jupyter 2
ultimately 1

结尾无空行


解题思路: 请参考《Python编程实验》(待出版)。
该书是高等教育出版社《Python编程基础及应用》教材的配套实验指导书。

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/11/1 18:20
n = int(input())
dict1 = {}
list1 = []
for ppp in range(n):
    str = input()
    a = ''
    for i in str:
        if i.isalpha():
            a += i.lower()
        elif a != '':
            if a in list1:
                dict1[a] = dict1[a] + 1
                a = ''
            else:
                dict1[a] = 1
                list1.append(a)
                a = ''
    if a != '':
        if a in list1:
            dict1[a] = dict1[a] + 1
            a = ''
        else:
            dict1[a] = 1
            list1.append(a)
            a = ''
list1.sort()
for i in list1:
    print(i, dict1[i])

7-2 集合添加元素 (20 分)

向集合中加入单一元素,可以使用.add() 方法操作,该操作将向集合中加入。 应用你的知识帮助你的好朋友小明,小明喜欢集邮,他有大量的来自不同国家的邮票,他决定数一下他的集邮册中共有来自多少个不同国家的邮票,他请你帮忙,你一个一个的把N张邮票拿出来,找出共有多少个不重复的国家。

输入格式:

第一行输入一个整数N,表示所有邮票的数目‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

接下来的N行,每行输入一张邮票来自哪一个国家的名字

输出格式:

在一行中输出不重复的国家的数量。

输入样例:

7
UK
China
USA
France
New Zealand
UK
France

结尾无空行

输出样例:

5

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/11/1 18:59
n = int(input())
i = input()
list1 = {i}
for lll in range(1,n):
    i = input()
    list1.add(i)
print(len(list1))

7-3 集合应用--列表 (20 分)

集合是一个无序的、没有重复元素的数据类型,在输出或转为序列类型时,其元素位置随机出现。

李白是一个社区大学的老师,一天,他让学生小明计算一下温室里植物的平均高度。‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬ 平均高度 = 不同高度的和 / 不同高度的数量

输入格式:

输入N 个用空格分隔的植物的高度

输出格式:

在一行内输出植物的平均高度,保留小数点后3位

输入样例:

161 182 161 154 176 170 167 171 170 174

结尾无空行

输出样例:

169.375

结尾无空行

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/11/1 19:11
list1 = list(map(int, input().split()))
list2 = list(set(list1))
print("%.3f" % (sum(list2) / len(list2)))

7-4 查验身份证 (15 分)

一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:

首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:

Z:0 1 2 3 4 5 6 7 8 9 10
M:1 0 X 9 8 7 6 5 4 3 2

现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。

输入格式:

输入第一行给出正整数N(≤100)是输入的身份证号码的个数。随后N行,每行给出1个18位身份证号码。

输出格式:

按照输入的顺序每行输出1个有问题的身份证号码。这里并不检验前17位是否合理,只检查前17位是否全为数字且最后1位校验码计算准确。如果所有号码都正常,则输出All passed

输入样例1:

4
320124198808240056
12010X198901011234
110108196711301866
37070419881216001X

结尾无空行

输出样例1:

12010X198901011234
110108196711301866
37070419881216001X

结尾无空行

输入样例2:

2
320124198808240056
110108196711301862

输出样例2:

All passed

鸣谢阜阳师范学院范建中老师补充数据

鸣谢浙江工业大学之江学院石洗凡老师纠正数据

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/11/1 19:17
# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/11/1 19:17
def jisuan(str):
    sum = 0
    list1 = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
    for i in range(17):
        sum += int(str[i]) * list1[i]
    return sum % 11


dict1 = {0: '1', 1: '0', 2: 'X', 3: '9', 4: '8', 5: '7', 6: '6', 7: '5', 8: '4', 9: '3', 10: '2'}
flag = True
nnn = eval(input())
for lll in range(nnn):
    id = input()
    try:
        i = jisuan(id)
        if dict1[i] != id[17]:
            print(id)
            flag = False
    except:
        print(id)
        flag = False
if (flag):
    print("All passed")

7-5 淘淘不喜欢3、6、9 (10 分)

淘淘不喜欢数字3、6、9,在数数时,从1开始数,带有这三个数字的都会跳过。如:1, 2, 4, 5, 7, 8, 10, 11, 12, 14, 15, 17, 18, 20, 21, 22, 24, 25, 27, 28, 40,…… 输入一个n,求淘淘数到n时,她所数的所有数之和是多少?若n包含3、6、9,则显示,淘淘不会数到这个数。

输入格式:

输入一个正整数n。

输出格式:

输入淘淘数的数之和,或者提示淘淘不会数n。

输入样例1:

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

12

结尾无空行

输出样例1:

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

60

结尾无空行

输入样例2:

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

13

结尾无空行

输出样例2:

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

淘淘不会数13

结尾无空行

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/11/1 19:52
n = eval(input())
list1 = []
if '3' not in str(n) and '6' not in str(n) and '9' not in str(n):
    for i in range(1, n + 1):
        if '3' not in str(i) and '6' not in str(i) and '9' not in str(i):
            list1.append(i)
    print(sum(list1))
else:
    print("淘淘不会数%s" % n)

7-6 sdut-统计两个字符串中相同的字符个数 (10 分)

输入字符串A、字符串B,求在字符串A、字符串B中相同的字符个数。

输入格式:

第一行输入,表示字符串A。 第二行输入,表示字符串B。

输出格式:

在一行内,输出字符串A、B中相同字符的个数。

输入样例:

AEIOU
HELLO World!

结尾无空行

输出样例:

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

2

结尾无空行

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/11/1 19:56
n = input()
m = input()
dict1 = {}
for i in n:
    if i in m:
        dict1[i] = 1
        
print(len(dict1))

7-7 sdut-统计工龄(10 分)

给定公司N名员工的工龄,按工龄增序输出每个工龄段有多少员工。

输入格式:

首先给出正整数N(≤105 ),即员工总人数;随后给出N个整数,即每个员工的工龄,范围在[0, 50]

输出格式:

按工龄的递增顺序输出每个工龄的员工个数,格式为:“工龄:人数”。 每项占一行。

输入样例:

8
10 2 0 5 7 2 5 2

结尾无空行

输出样例:

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

0:1
2:3
5:2
7:1
10:1

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/11/1 19:59
n = int(input())
list1 = list(map(int, input().split()))
list2 = list(set(list1))
dict1 = {}
for i in list1:
    if i in dict1:
        dict1[i] += 1
    else:
        dict1[i] = 1
for i in sorted(list2):
    print("%s:%s" % (i, dict1[i]))

7-8 sdut-字典合并 (10 分)

输入用字符串表示两个字典,输出合并后的字典。字典的键用一个字母或数字表示。

注意:1和‘1’是不同的关键字!

输入格式:

在第一行中输入第一个字典字符串;

在第二行中输入第二个字典字符串。

输出格式:

在一行中输出合并的字典,输出按字典序。

"1" 的 ASCII 码为 49,大于 1,排序时 1 在前,"1" 在后。其它的字符同理。

输入样例1:

{1:3,2:5}
{1:5,3:7} 

结尾无空行

输出样例1:

1:8
2:5
3:7

结尾无空行

输入样例2:

{"1":3,1:4}
{"a":5,"1":6}

输出样例2:

1:4
'1':9
'a':5

结尾无空行

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/11/1 20:07
dict1 = dict(eval(input()))
dict2 = dict(eval(input()))
list1 = []
for i in dict1:
    if i in dict2:
        dict2[i] += dict1[i]
    else:
        dict2[i] = dict1[i]
for i in dict2:
    list1.append(i)
list2 = list(set(list1))
list3 = []
list4 = []
for i in list2:
    if isinstance(i, str):
        list3.append(i)
        list4.append(ord(i))
    else:
        list4.append(i)
dict3 = {}
for i in dict2:
    if isinstance(i, str):
        dict3[ord(i)] = dict2[i]
    else:
        dict3[i] = dict2[i]
for i in sorted(list4):
    if chr(i) not in list3:
        print("%s:%s" % (i, dict3[i]))
    else:
        print("'%s':%s" % (chr(i), dict3[i]))

  • 13
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值