1. 编写程序,利用元组作为函数的返回值,求序列类型中的最大值、最小值和元素个数,并编写测 试 代 码 , 假 设 测 试 数 据 分 别 为
s1=[9,7,8,3,2,1,55,6] 、
s2=[" apple","pear" melon","kiwi"]
和
s3=" TheQuickBrownFox"。
运行效果参见下图。
s1=[9,7,8,3,2,1,55,6]
s2=["apple","pear","melon","kiwi"]
s3="TheQuickBrownFox"
def a(m):
li=list(m)
maxx=max(m)
minx=min(m)
lenx=len(m)
return maxx,minx,lenx
n=a(s1)
print('list=',s1)
print(str.format("最大值 = {},最小值={},元素个数={}",n[0],n[1],n[2]))
n=a(s2)
print('list=',s2)
print(str.format("最大值 = {},最小值={},元素个数={}",n[0],n[1],n[2]))
n=a(s3)
print('list=',s3)
print(str.format("最大值 = {},最小值={},元素个数={}",n[0],n[1],n[2]))
s=input('请输入:')
a = s.split(',')
a=[int(a[i])for i in range(len(a))] #需要转换为int值,不可省,不然是字符串
z=list(a)
def a(m):
b=max(m)
c=min(m)
d=len(m)
return b,c,d
n=a(z)
print('list=',s)
print(str.format('最大值={},最小值={},元素个数={}',n[0],n[1],n[2]))
2.
设计一个函数
,
实现输入一个五位数的正整数
(
程序要对输入数据 的合法性进行检查),
对输入的数据加密后再返回,加密规则
:
每位数字都加上 7,
然后用
10
取模
,
再将得到的结果交换顺序
:
第一位和第 二位交换,
第三位和第五位交换
,
第一位和第四位交换。
#取模运算是求两个数相除的余数。
def a(m):
b=list(m)
b=[int(b[i])for i in range(len(b))]
for i in range(0,5):
b[i]=(b[i]+7)%10
b[0],b[1]=b[1],b[0]
b[2],b[4]=b[4],b[2]
b[0],b[3]=b[3],b[0]
return(''.join(map(str,b)))
n=input('输入一个五位整数:')
z=int(n)
if(z//1000!=0):
s=a(n)
print('加密后的数据为',s)
else:
print('输入错误,请重新输入')
3.
请编写一个程序
,
使用字典存储学生信息
(
自己编写至少十个学生
的信息
),
学生信息包括学号和姓名
,
请根据学生学号从小到大输出 学生的信息。
提示:使用sorted
函数并指定其对应的参数
key
的值。
dict1={1:'张一',2:'李二',3:'王三',4:'陈四',5:'鹿五',6:'唐六',7:'刘七',8:'赵八',9:'曹九',10:'范十'}
dict2=sorted(dict1.items(),key=lambda x: x[0])
print(dict2)
#sorted(d.items(),key=lambda x:x[1])
#d.items():待排序对象
#key=lambda x:x[1]:选择进行排序的对象。
dict1={1:'张一',2:'李二',3:'王三',4:'陈四',5:'鹿五',6:'唐六',7:'刘七',8:'赵八',9:'曹九',10:'范十'}
dict2=sorted(dict1)
dict3=[]
for i in dict2:
dict3.append(dict1[i])
dict3=dict(zip(dict2,dict3)) #打包
print(dict3)
4.
首先
,
使用标准库
random
生成一个包含
50
个介于
1~100
的随机整数的列表,
编写函数
def isPrime(n)
用来测试整数
n
是否为素数
;
接下来使用内置函数 filter(
把函数
isPrime()
作用到包含若干随机整 数的列表 lst
上
,
最后程序输出一个列表
,
其中只包含列表
lst
中不是素数的那些整数。
from random import randint
list1=[]
for i in range(0,50):
x=randint(1,101)
list1.append(x)
def isPrime(n):
a=[2,3,5,7,9]
for i in a:
if n%i==0 and n!=[2,3,5,7,9]:
return n
a=filter(isPrime,list1)
print(list(a))
import random
x = [random.randint(1, 101) for i in range(50)]
def isPrime(n):
if n == 1:
return 1
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return 1
return 0
print(list(filter(isPrime, x)))
5.
编写程序
,
清分别使用递归和非递归方式实现。定义一个求阶乘的函数 fact(n)
,并编写测试代码,要求输入整数
(n
≥
0)
。运行效果如下图所示。
a=int(input('请输入整数:'))
def fact(n):
summ=1
while(n!=0):
summ=summ*n
n=n-1
return summ
print('阶乘为',fact(a))
递归方法:直接或间接地调用自身的算法/函数称为递归算法/函数
def face(n):
if n==0:
sum=1
else:
sum=face(n-1)*n
return sum
a=int(input('请输入整数:'))
print(face(a))
6.
编写程序实现斐波那契数列,斐波那契数列:
1
、
1
、
2
、
3
、
5
、
8
、13、
21
、
34
、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1
,
F(2)=1, F(n)=F(n-1)+F(n-2)
(
n>=3
,
n
∈
N*
)。
def Fi(n):
if n<=2:
return 1
else:
return Fi(n-1)+Fi(n-2)
a=int(input('请输入整数,确定想输出数列的前多少个数:'))
for i in range(1,a+1):
s=Fi(i)
print(s)