翼度科技»论坛 编程开发 python 查看内容

python基础操作练习题

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
使用版本:python 3.6.8
IDE:pycharm
前言

这些练习题是在神经网络与深度学习课程上老师提供的,原因是有些同学没学过python,作为简单的练手习题。
题目都很简单,加上python本身也比较简单,有些题目的作答可以一行代码实现(虽然可读性就下降了)。
练习题

2.1 数位之和

编写程序,输入一个正整数,然后输出各位数字之和。
例如,输入字符串1234,输出10。
  1. from functools import reduce
  2. from operator import add
  3. print(reduce(add, map(int, list(input()))))
复制代码
2.2 字符串翻转

编写程序,输入一个字符串,输出翻转(首尾交换)后的字符串,要求使用内置函数实现。
例如,输入字符串12345,输出54321。
  1. print(''.join(reversed(input())))
复制代码
2.3 最大值

编写程序,输入一个包含若干整数的列表,输出列表中的最大值。
例如,输入[1, 2, 3, 4, 5, 888],输出888。
  1. print(max(eval(input())))
复制代码
2.4 类型转换——整数转字符串

编写程序,输入一个包含若干整数的列表,把列表中所有整数转换为字符串,然后输出包含这些字符串的列表。
例如,输入[1, 2, 3, 4, 5, 888],输出['1', '2', '3', '4', '5', '888']
  1. print(list(map(str, eval(input()))))
复制代码
2.5 filter

编写程序,输入一个包含若干任意数据的列表,输出该列表中等价于True的元素组成的列表。
例如,输入[1, 2, 0, None, False, 'a'],输出[1, 2, 'a']。
  1. print(list(filter(None, eval(input()))))
复制代码
2.6 指定key排序

编写程序,输入一个包含若干整数的列表,输出一个新列表,新列表中奇数在前偶数在后,并且奇数之间的相对顺序不变,偶数之间的相对顺序也不变。
  1. nums = eval(input())
  2. print(sorted(nums, key=(lambda x: x%2), reverse=True))
复制代码
3.1 列表推导式与列表求和

阿凡提与国王比赛下棋,国王说要是自己输了的话阿凡提想要什么他都可以拿得出来。阿凡提说那就要点米吧,棋盘一共64个小格子,在第一个格子里放1粒米,第二个格子里放2粒米,第三个格子里放4粒米,第四个格子里放8粒米,以此类推,后面每个格子里的米都是前一个格子里的2倍,一直把64个格子都放满。编写程序,生成一个列表,其中元素为每个棋盘格子里米的粒数,并输出这些数字的和,也就是一共需要多少粒米。
要求使用列表推导式。
  1. from functools import reduce
  2. from operator import add
  3. print(reduce(add, [2**x for x in range(64)]))
复制代码
3.2 列表推导式if筛选

编写程序,输入一个包含若干整数的列表,输出由其中的奇数组成的新列表。
例如,输入[1,2,3,4,5,6,7,8],输出[1, 3, 5, 7]。
要求使用列表推导式。
  1. data = eval(input())
  2. print([x for x in data if x%2==1])
复制代码
3.3 向量内积

编写程序,输入两个包含若干整数的等长列表表示两个向量,输出这两个向量的内积。
例如,输入[1,2,3]和[4,5,6],内积计算方法为1*4 + 2*5 + 3*6 = 32,输出32。
要求使用列表推导式。
  1. from functools import reduce
  2. from operator import add
  3. x1 = eval(input())
  4. x2 = eval(input())
  5. print(reduce(add, [a*b for (a, b) in zip(x1, x2)]))
复制代码
3.4 找最大值与其下标

编写程序,输入一个包含若干整数的列表,输出其中的最大值,以及所有最大值的下标组成的列表。
例如,输入[1,2,3,1,2,3,3],输出3和[2, 5, 6]。
要求使用列表推导式。
  1. data = eval(input())
  2. max_num = max(data)
  3. print(max_num, [idx for idx in range(len(data)) if data[idx]==max_num])
复制代码
3.5 生成随机序列与计数

编写程序,首先生成包含1000个随机数字字符的字符串,然后统计每个数字的出现次数。
  1. from random import choices
  2. import string
  3. s = ''.join(choices(string.digits, k=1000))
  4. print(s)
  5. cnt = {}
  6. for x in s:
  7.     cnt[x] = cnt.get(x, 0) + 1
  8. print(cnt)
复制代码
3.6 字符串去重(保持顺序)

编写程序,输入一个字符串,输出其中唯一字符组成的新字符串,要求新字符串中的
字符顺序与其在原字符串中的相对顺序一样。
例如,输入'1122a3344',输出'12a34'。
  1. s = input()
  2. ss = list(set(s))
  3. ss.sort(key=s.index)
  4. print(''.join(ss))
复制代码
3.7 集合运算

编写程序,输入两个集合A和B,输出它们的并集、交集、对称差集以及差集A-B和B-A。
要求使用集合运算符。
  1. A = set(eval(input()))
  2. B = set(eval(input()))
  3. print(A | B)
  4. print(A & B)
  5. print(A ^ B)
  6. print(A - B)
  7. print(B - A)
复制代码
3.8 空格去重

编写程序,输入一个字符串,删除其中的重复空格,也就是如果有连续的多个空格的话就只保留一个,然后输出处理后的字符串。
  1. s = input()
  2. print(''.join([s[idx] for idx in range(len(s)) if idx==0 or s[idx]!=' ' or s[idx-1]!=' ']))
复制代码
3.9 元音字母大写

编写程序,输入一个字符串,把其中的元音字母i、o、a、e和u替换成对应的大写字母,然后输出新字符串。
  1. vowel = ('a', 'e', 'i', 'o', 'u')
  2. s = input()
  3. print(''.join(list(map(
  4.     (lambda x: x.upper() if x in vowel else x),
  5.     s
  6. ))))
复制代码
3.10 检查列表是否存在相同整数

编写程序,测试列表中的若干整数之间是否有重复。
  1. data = eval(input())
  2. print("没有重复") if len(data) == len(list(set(data))) else print("存在重复")
复制代码
4.7 递归实现数位求和

使用递归法计算自然数各位数字之和。
  1. def sum_by_digit(num):
  2.     return num%10 + sum_by_digit(num//10) if num > 10 else num
  3. test_data = (1234, 6789, 6379)
  4. for test in test_data:
  5.     print(f"{test} --> {sum_by_digit(test)}")
复制代码
4.8 猜数游戏

通过参数可以指定一个整数范围和猜测的最大次数,系统在指定范围内随机产生一个整数,然后让用户猜测该数的值,系统根据玩家的猜测进行提示(例如,猜大了,猜小了,猜对了),玩家则可以根据系统的提示对下一次的猜测进行适当调整,直到猜对或次数用完。
  1. from random import choice
  2. config = {
  3.     'max_num': 1000,
  4.     'min_num': 0,
  5.     'max_guess_times': 20
  6. }
  7. answer = choice(range(config['min_num'], config['max_num']+1))
  8. guess_times = 0
  9. while guess_times < config['max_guess_times']:
  10.     print(f"猜数游戏,请输入一个数字,\n范围是[{config['min_num']}, {config['max_num']}]: ") \
  11.         if guess_times == 0 else print("再猜一次: ")
  12.     guess = int(input())
  13.     guess_times += 1
  14.     if guess == answer:
  15.         print("猜对了!")
  16.         break
  17.     elif guess > answer:
  18.         print("猜大了")
  19.     else:
  20.         print("猜小了")
  21. if guess_times >= config['max_guess_times']:
  22.     print("--- 机会用完了 ---")
复制代码
来源:https://www.cnblogs.com/feixianxing/p/python-basis.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具