一、实验目的:
1、熟练运用 Python 运算符。
2、熟练运用 Python 内置函数。
3、养成对用户输入立即进行类型转换的习惯。
4、了解lambda表达式作为函数参数的用法。
5、了解列表、元组、字典、集合的概念和基本用法。
6、了解Python函数式编程模式。
二、实验内容:
1、编写程序,输入任意大的自然数,输出各位数字之和。
2、编写程序,输入两个集合 setA 和 setB,分别输出它们的交集、并集和差集 setA-setB。
3、编写程序,输入一个自然数,输出它的二进制、八进制、十六进制表示形式。
4、编写程序,输入一个包含若干整数的列表,输出新列表,要求新列表中只包含原列表中的偶数。
5、编写程序,输入两个分别包含若干整数的列表IstA和lstB,输出一个字典,要求
使用列表istA中的元素作为键,列表IstB中的元素作为值,并且最终字典中的元素数量取决于IstA和istB中元素最少的列表的数量。
6、编写程序,输入一个包含若干整数的列表,输出新列表,要求新列表中所有元素来自于原列表,并且降序排列。
7、编写程序,输入一个包含若干整数的列表,输出列表中所有整数连乘的结果。
8、编写程序,输入两个各包含2个整数的列表,分别表示城市中两个地点的坐标,
输出两点之间的曼哈顿距离。
9、编写程序,输入包含若干集合的列表,输出这些集合的并集。要求使用reduce()
函数和lambda表达式完成。
10、编写程序,输入等比数列的首项、公比(不等于1且小于36的正整数)和一个自然数n,输出这个等比数列前n项的和。关键步骤要求使用内置函数int().
3、 实验步骤:
1. 程序代码(按题号分别给出)
T1:
x=str(input("请输入一个自然数:"));
a=len(x);
sum=0;
for i in range(0,a):
sum=sum+int(x[i]);
print("各位数字之和为:",sum);
T2:
setA=set(input("请输入集合A:"));
setB=set(input("请输入集合B:"));
s1=setA|setB;
s2=setA&setB;
s3=setA-setB;
print("两集合的并集为",s1);
print("两集合的交集为",s2);
print("两集合的差集为",s3);
T3:
x=int(input("请输入一个自然数:"));
a=bin(x);
b=oct(x);
c=hex(x);
print("其二进制为:",a);
print("其八进制为:",b);
print("其十六进制为:",c);
T4:
x=input("请输入一个列表:");
x=list(map(int,x.split( )));
listx=[];
for i in x:
if i%2==0:
listx.append(i);
print("新列表为:",listx);
T5:
lisA=(input("请输入列表A:"));
lisB=(input("请输入列表B:"));
lisA=list(map(int,lisA.split( )));
lisB=list(map(int,lisB.split( )));
listx=dict(zip(lisA,lisB));
print("最终的字典为:",listx);
T6:
listA=input("请输入一个列表:");
listA=list(map(int,listA.split()));
listA.sort(reverse=True);
print("新列表为:",listA);
T7:
listA=input("请输入一个列表:");
listA=list(map(int,listA.split()));
sum=1;
for i in listA:
sum*=i;
print("连乘的结果为:",sum);
T8:
import random;
listA=[];
listB=[];
for i in range(2):
a=random.randint(0,1000);
b=random.randint(0,1000);
listA.append(a);
listB.append(b);
c=abs(listA[0]-listB[0])+abs(listA[1]-listB[1]);
print("曼哈顿距离为:",c);
T9:
from functools import reduce;
setA=set(eval(input("请输入集合A:")));
setB=set(eval(input("请输入集合B:")));
list=[];
list.append(setA);
list.append(setB);
alist=reduce(lambda x,y:x|y,list);
print("并集为:",alist);
T10:
a=input("请输入首项:");
a=int(a);
q=input("请输入公比:");
q=int(q);
n=input("请输入一个自然数:");
n=int(n);
if q in range(2,35):
sum=(a*(1-q**n))/(1-q);
print("前n项和为:",sum);
2. 结果图片
T1:
T2:
T3:
T4:
T5:
T6:
T7:
T8:
T9:
T10: