python练习题

(1)输入任意大的自然数,输出各位数字之和

num = input('请输入一个自然数:')
print(sum(map(int, num)))

(2)输入一个自然数,输出它的二进制/八进制/十六进制表示形式

num = int(input('请输入一个自然数:'))
print('二进制:', bin(num))
print('八进制:', oct(num))
print('十六进制:', hex(num))

(3)输入一个包含若干整数的列表,输出一个新列表,要求新列表中只包含原列表的偶数

lst = eval(input('请输入一个包含若干整数的列表:'))
print(list(filter(lambda x: x % 2 == 0, lst)))

(4)输入两个分别包含若干整数的列表lstA 和 lstB,输出一个字典,要求使用列表lstA 中的元素作为键,列表lstB 中的元素作为值,并且最终字典中的元素数量取决于lstA 和 lstB 中元素最少的列表的数量

lstA = eval(input('请输入包含若干整数的列表 lstA:'))
lstB = eval(input('请输入包含若干整数的列表 lstB:'))
print(dict(zip(lstA, lstB)))

(5)输入一个包含若干整数的列表,输出新列表,要求新列表中所有元素来自于输入的列表,并且降序排序

lst = eval(input('请输入包含若干整数的列表 lst:'))
print(sorted(lst, reverse=True))

(6)输入一个包含若干整数的列表,输出列表中所有整数连乘的结果

from functools import reduce
lst = eval(input('请输入包含若干整数的列表 lst:'))
print(reduce(lambda x, y: x * y, lst))

(7)输入两个各包含2个整数的列表,分别表示城市中两个地点的坐标,输出两点之间的曼哈顿距离

lstA = eval(input('请输入包含2个整数的列表 lstA:'))
lstB = eval(input('请输入包含2个整数的列表 lstB:'))
print(sum(map(lambda i, j: abs(i-j), lstA, lstB)))

(8)输入包含若干集合的列表,输出这些集合的并集

from functools import reduce
lstSets = eval(input('请输入包含若干整数的列表:'))
print(reduce(lambda x, y: x | y, lstSets))

(9)输入等比数列的首项/公比(不等于1且小于36的正整数)和一个自然数n,输出这个等比数列前n项的和.

a1 = int(input('首项:'))
q = int(input('公比:'))
n = int(input('前n项:'))
print(a1 * int('1'*n, q))

(10)输入一个字符串,输出其中出现次数最多的字符及出现的次数.要求使用字典

data = input('请输入一个字符串:')
d = dict()
for ch in data:
    d[ch] = d.get(ch, 0)+1
print(max(d.items(), key=lambda item: item[1]))

PS:

在Python中and与or执行布尔逻辑运算,如果两边的操作数是数字,则返回的是实际值。

  • 使用and连接时,如果都为真,则返回最后一个操作数的值;如果有某一操作数为假,则返回第一个假值。

  • 使用or连接时,如果都为假,则返回最后一个操作数的值;如果有某一操作数为真,则返回第一个真值。

你可能感兴趣的:(Python,python)