Python作业2

作业二、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,'次');
  • 9
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈希表扁豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值