1.编写函数,求1+2+3+…N的和
def sum(n):
"""
求1+2+3+…N的和
:param n: N的值
:return:
"""
num = 0
for i in range(1, n + 1):
num += i
print('1+2+3+…N的和 :', num)
sum(100)
2.编写一个函数,求多个数中的最大值
def imax(*i):
"""
求多个数中的最大值
:param i: 一个元祖
:return:
"""
maxx = i[0]
for j in i:
if j > maxx:
maxx = j
print(maxx)
imax(3, 2, 1, 2, 3, 4)
3.编写一个函数,实现摇骰子的功能,打印N个骰子的点数和
def ytz(n):
"""
打印N个骰子的点数和
:param i: 摇一次骰子
:return:
"""
from random import randint
num = 0
for i in range(1, n + 1):
x = randint(1, 6)
print('第', i, '个骰子的点数是', x)
num += x
print(n, '个骰子的点数和是:', num)
ytz(3)
4.编写一个函数,交换指定字典的key和value。
def exc(**dict1):
"""
交换指定字典的key和value。
:param i: 摇一次骰子
:return:
"""
new1 = {}
for i in dict1:
new1[dict1[i]] = i
dict1 = new1
print(dict1)
exc(a=1, b=2, c=3)
5.编写一个函数,提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串
def new1(n):
"""
产生一个新的字符串
:param n: 原字符串
:return:
"""
s = ''
for i in n:
if '\u0041' <= i <= '\u005a' or '\u0061' <= i <= '\u007a':
s += i
print(s)
new1('12AA&bc12D-+')
6.写一个函数,求多个数的平均值
def new2(*n):
"""
求多个数的平均值
:param n: 一个含有多个数的元祖
:return:
"""
print(sum(n)/len(n))
new2(1,2,3,4)
7.写一个函数,默认求10的阶乘,也可以求其他数字的阶乘
def new3(n=10):
"""
求一个数字的阶乘
:param n: 被阶乘的数字
:return:
"""
num = 1
for i in range(1, n + 1):
num *= i
print(num)
new3()
8.写一个自己的capitalize函数,能够将指定字符串的首字母变成大写字母
def ch1(n):
"""
首字母变成大写字母
:param n: 指定字符串
:return:
"""
if '\u0061'<=n[0]<='\u007a':
z1=chr(ord(n[0])-32)
z2=n[1:len(n)]
print(z1+z2)
else:
print(n)
ch1('s12asd')
9.写一个自己的endswith函数,判断一个字符串是否已指定的字符串结束
def ch1(n, m):
"""
判断一个字符串是否已指定的字符串结束
:param n: 主字符串
:param m: 子字符串
:return:
"""
print((n[-len(m):len(n)]) == m)
ch1('abc231ab', '1ab')
- 写一个自己的isdigit函数,判断一个字符串是否是纯数字字符串
def ch1(n):
"""
判断一个字符串是否是纯数字字符串
:param n: 被判断的字符串
:return:
"""
for i in n:
if not ('\u0030' <= i <= '\u0039'):
print(False)
break
else:
print(True)
ch1('121211213123a3')
11.写一个自己的upper函数,将一个字符串中所有的小写字母变成大写字母
def ch1(n):
"""
将一个字符串中所有的小写字母变成大写字母
:param n:被upper的字符串
:return:
"""
new1=''
for i in range(0,len(n)):
if not ('\u0061' <= n[i] <= '\u007a'):
new1+=n[i]
else:
z1=chr(ord(n[i]) - 32)
new1+=z1
n=new1
print(n)
ch1('abH23好rp1')
12.写一个自己的rjust函数,创建一个字符串的长度是指定长度,原字符串在新字符串中右对齐,剩下的部分用指定的字符填充
def rj(n,m,k):
"""
写一个自己的rjust函数,
创建一个字符串的长度是指定长度,
原字符串在新字符串中右对齐,
剩下的部分用指定的字符填充
:param n: 原字符串
:param m: 指定的字符
:param k: 指定长度
:return:
"""
if len(n) < k:
print((k-len(n))*m+n)
else:
print(n)
rj('1234','y',6)
13.写一个自己的index函数,统计指定列表中指定元素的所有下标,如果列表中没有指定元素返回-1
def index1(n, ls):
"""
统计指定列表中指定元素的所有下标,
如果列表中没有指定元素返回-1
:param n: 要查找的元素
:param ls: 指定列表
:return:
"""
if n not in ls:
print('-1')
else:
for i in range(0, len(ls)):
if ls[i] == n:
print(i, end=' ')
index1(1, [1, 2, 45, 'abc', 1, '你好', 1, 0])
14.写一个自己的len函数,统计指定序列中元素的个数
def len(xl):
"""
"""
count=0
for i in xl:
count+=1
print(count)
len([1,1,1,1])
15.写一个自己的max函数,获取指定序列中元素的最大值。如果序列是字典,取字典值的最大值
def maxx(xl):
"""
获取指定序列中元素的最大值
:param xl: 指定序列
:return:
"""
mx = 0
if type(xl) == dict :
for i in xl:
if xl[i] > mx:
mx = xl[i]
print(mx)
else:
yy=list(xl)
mx2 = yy[0]
for j in range(len(yy)):
if yy[j] > mx2:
mx2 = yy[j]
print(mx2)
maxx([1,1,1,1])
maxx('abcdpzasdz')
maxx({'小明':90, '张三': 76, '路飞':30, '小花': 98} )
16.写一个函数实现自己in操作,判断指定序列中,指定的元素是否存在
def cz(n,xl):
"""
判断指定序列中,指定的元素是否存在
:param n: 指定的元素
:param xl: 指定序列
:return:
"""
for i in xl:
if n == i:
print(True)
break
else:
print(False)
cz('90',(12, 90, 'abc'))
cz(3,[1,1,2,1])
cz('a','abcdpzasdz')
cz('小明',{'小明':90, '张三': 76, '路飞':30, '小花': 98} )
17.写一个自己的replace函数,将指定字符串中指定的旧字符串转换成指定的新字符串
def re(cc,ff,nff):
"""
将指定字符串中指定的旧字符串转换成指定的新字符串
:param cc: 指定字符串
:param ff: 旧字符串
:param nff: 新字符串
:return:
"""
new1=cc.split()
li=[]
for i in range(0,len(new1)):
if new1[i] == ff:
li.append(nff)
else:
li.append(new1[i])
str1=''
for j in li:
str1+=(j+' ')
print(str1)
re('how are you? and you?','you?','me?')
18.写四个函数,分别实现求两个列表的交集、并集、差集、补集的功能
s1={1,2,3,4}
s2={3,4,5,6}
tt=[]
t1=list(s1)
t2=list(s2)
def jj(n,m):
"""
交集
:param n: 集合1
:param m: 集合2
:return:
"""
for i in s1:
if i in s2:
tt.append(i)
ss=set(tt)
print(ss)
jj(t1,t2)
def bing(n, m):
"""
并集
:param n: 集合1
:param m: 集合2
:return:
"""
for i in n:
if i not in m:
m.append(i)
print(set(m))
bing(t1,t2)
def cj(n, m):
"""
差集
:param n: 集合1
:param m: 集合2
:return:
"""
cj=[]
dj=[]
for j in n:
if j not in m:
cj.append(j)
for k in m:
if k not in n:
dj.append(k)
print('集合1 - 集合2的差集:',set(cj))
print('集合2 - 集合1的差集:',set(dj))
cj(t1,t2)
sa={4,5,6}
sc={1,2,3,4,5,6,7,8}
zz1=[]
zz2=[]
def bu(n, m):
"""
补集
:param n:
:param m:
:return:
"""
if n>m or m>n:
if n > m:
for i in n:
if i not in m:
zz1.append(i)
print('大集合对于小集合的补集是',zz1)
elif m > n :
for j in m:
if j not in n:
zz2.append(j)
print('大集合对于小集合的补集是',zz2)