作业二、Python 运算符、内置函数、序列基本用法
作业内容:
1、编写程序,输入任意大的自然数,输出各位数字之和。
2、编写程序,输入两个集合 setA 和 setB,分别输出它们的交集、并集和差集 setA-setB。
3、编写程序,输入一个自然数,输出它的二进制、八进制、十六进制表示形式。
4、编写程序,输入一个包含若干整数的列表,输出一个新列表,要求新列表中只包含原列表中的偶数。
5、编写程序,输入两个分别包含若干整数的列表lstA和lstB,输出一个字典,要求使用列表lstA中的元素作为键,列表lstB中的元素作为值,并且最终字典中的元素数量取决于lstA和lstB中元素最少的列表的数量。
6、编写程序,输入一个包含若干整数的列表,输出新列表,要求新列表中的所有元素来自于输入的列表,并且降序排列。
7、编写程序,输入一个包含若干整数的列表,输出列表中所有整数连乘的结果。
9、编写程序,输入包含若干集合的列表,输出这些集合的并集。要求使用reduce()函数和lambda表达式完成。
9、编写程序,输入等比数列的首项、公比(不等于1且小于36的正整数)和一个自然数n,输出这个等比数列前n项的和。关键步骤要求使用内置函数int()。
10、编写程序,输入一个字符串,输出其中出现次数最多的字符及其出现的次数。要求使用字典。
#2.1
n = input('输入任意大的自然数:');
arr = list(n);
s = 0;
for i in range(len(arr)):#range产生可迭代对象
s+=int(arr[i]);
print(s);
#2.2
str1 = list(input());#输入转化成列表
str2 = list(input());
print(sorted(set(str1).union(str2)));
#set(list)可向set传递列表
#union() 传入一个或多个集合、列表、字典等可迭代对象
#2.3
n = int(input());
print('二进制:',bin(n));
print('八进制:',oct(n));
print('十六进制:',hex(n));
#2.4
arr = list(map(int,input().split(' ')))#对输入的字符串以空格分割,map将分割后的字符串转换成整数
for i in range(len(arr)):#或者直接遍历 for i in arr 用range产生可迭代对象应有长度
if(int(arr[i])%2==0):#前面映射过,可以不加强制类型转换
print(arr[i]);
#2.5
lsta = list(input().split(' '));
lstb = list(input().split(' '));
new_dict = dict(zip(lsta,lstb));#zip():将两个可迭代对象中的元素打包成元组,取最少,返回元组组成的对象
for key,values in new_dict.items():
print('key:',key);
print('value:',values);
#dict():创建字典:dict(key1:value1,key2:value2....)
#通过item()遍历字典,前面一个对象时打包成元组,前面两个时可实现将元组中的两个值赋给key与value
#2.6
arr = list(map(int,input().split(' ')));
a = sorted(arr,reverse=True);#默认升序,reverse=True时降序
for i in range(len(a)):
print(a[i]);
#2.7
arr = list(map(int,input().split()));
ans = 1;
for i in range(len(arr)):
ans*=arr[i];
print(ans);
#2.8
# lambda 匿名函数 ':'前是参数,后面是方法
# reduce(function - 函数, iterable - 可迭代对象)
from functools import reduce
sets = [];
n = input('请输入集合的数量:');
if n.isdigit() == False:
print("非法输入,程序退出!");
else:
for i in range(int(n)):
arr = list(input().split());
a_set = {x for x in arr};#将输入的列表转化成集合,并加入进sets
sets.append(a_set);
ans = reduce(lambda a,b:a&b,sets);#集合元素间的&:取并集
if(ans):
print(ans);
else:
print("集合为空!");
#2.9
a = input("请输入首项:");
q = input("请输入公比:");
n = input("请输入项数:");
ans=0;
for i in range(int(n)):
ans+=int(a);
a=int(a)*int(q);
print(ans);
#2.10
str = input().split();
dic = {};
for i in str:
dic[i] = dic.get(i,0)+1;#跟新字符串i的出现次数,get()返回指定键的值
maxx = max(dic.values());
for k,v in dic.items():
if(v==maxx):
print(k,'出现了',v,'次');