1. 编写函数,求1+2+3+…N的和
def sum_01(*nums):
temp = 0
temp += sum(nums)
return temp
sum_01(1, 2, 3, 4)
2. 编写一个函数,求多个数中的最大值
def max_01(*nums):
temp = 0 #temp = num[0]这个时候不应该取固定值,应该从序列中取值
for num in nums:
if num >= temp:
temp = num
return temp
max_01(1, 3, 6, 125, 15)
3. 编写一个函数,实现摇骰子的功能,打印N个骰子的点数和
def dice():
num = random.randint(1, 6)
return num
N = int(input('请输入骰子个数'))
sumn1 = 0
for n in range(N):
sumn1 += dice()
# print(sumn) 输出每次总和
return sumn1
4. 编写一个函数,交换指定字典的key和value。
def change(dic1: dict):
dic2 = {}
for key in dic1:
dic2.setdefault(dict1[key], key)
dic1 = dic2
print(dic1)
dict1 = {'a': 1, 'b': 2, 'c': 3}
change(dict1)
注意:遍历删除和增加,遍历对象应该原来没有进行修改的原容器的值
5. 编写一个函数,提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串
def letter_01(str1):
str2 = ''
for i in str1:
if 'a' <= i <= 'z' or 'A' <= i <= 'Z':
str2 += i
print(str2)
letter_01(input('请输入一个字符串'))
6. 写一个函数,求多个数的平均值
def avg_01(*nums):
sum1 = 0
for i in nums:
sum1 += i
avg1 = sum1 / len(nums)
print(avg1)
avg_01(1, 2, 3)
7. 写一个函数,默认求10的阶乘,也可以求其他数字的阶乘
def fac_01(b=10):
mul = 1
for x in range(1, b + 1):
mul *= x
print(mul)
fac_01(4)
8. 写一个自己的capitalize函数,能够将指定字符串的首字母变成大写字母
def capitalize_01(str1):
str2 = ''
if 'a' <= str1[0] <= 'z':
str2 += chr(ord(str1[0]) - 32)
else:
str2 += str1[0]
for x in range(1, len(str1)):
str2 += str1[x]
print(str2)
capitalize_01(input('请输入一个字符串'))
9. 写一个自己的endswith函数,判断一个字符串是否以指定的字符串结束
def ends(str1, str2):
# str1为输入字符串,str2为结尾字符串
count = 0
for x1 in str2[::-1]:
if x1 == str1[-1 - count]:
count += 1
else:
return 'false'
return 'true'
print(ends(input('输入字符串'), input('输入指定结尾字符串')))
10. 写一个自己的isdigit函数,判断一个字符串是否是纯数字字符串
def isdigit_01(str1):
for item in str1:
if '0' <= item <= '9':
pass
else:
return 'false'
return 'true'
print(isdigit_01(input('请输入一个字符串,判断是否全是数字')))
11. 写一个自己的upper函数,将一个字符串中所有的小写字母变成大写字母
def upper_01(str1):
str2 = ''
for item in str1:
if 'a' <= item <= 'z':
str2 += chr(ord(item) - 32)
else:
str2 += item
return str2
print(upper_01(input('请输入一个字符串')))
12. 写一个自己的rjust函数,创建一个字符串的长度是指定长度,原字符串在新字符串中右对齐,剩下的部分用指定的字符填充
def rj_01(str1, int1, char1):
str2 = ''
if len(str1) >= int1:
return str1
else:
for item in str1[::-1]:
str2 += item
str2 += (int1 - len(str1)) * char1
str3 = ''
for item1 in str2[::-1]:
str3 += item1
return str3
print(rj_01(input('输入字符串'), int(input('输入需要长度')), input('输入需要填充的字符')))
13. 写一个自己的index函数,统计指定列表中指定元素的所有下标,如果列表中没有指定元素返回-1
def index_01(list1, str2): # 不规定类型,就可以随便输入类型了
if str2 in list1:
for index in range(len(list1)):
if str2 == list1[index]:
print(index, end=',')
print()
else:
print('-1')
index_01([1, 2, 45, 'abc', 1, '你好', 1, 0], 1) # 0,4,6,
index_01(['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'], '赵云') # 0,4
index_01(['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'], '关羽') # -1
14.写一个自己的len函数,统计指定序列中元素的个数
def len_01(a):
sum1 = 0
for _ in a:
sum1 += 1
return sum1
b = len_01('hello w')
c = len_01([1, 3, 5, 6])
d = len_01((1, 34, 'a', 45, 'bbb'))
print(b, c, d)
15.写一个自己的max函数,获取指定序列中元素的最大值。如果序列是字典,取字典值的最大值
序列:[-7, -12, -1, -9] 结果: -1
序列:'abcdpzasdz' 结果: 'z'
序列:{'小明':90, '张三': 76, '路飞':30, '小花': 98} 结果: 98
def max_01(a):
if isinstance(a, dict): # isinstance() 判断是否是字典 是就返回True
max_count1 = a.popitem()[-1] # 字典.popitem 随即从字典中取出一个键值对,取出的形式为元祖(key,value)
for key in a:
if a[key] > max_count1:
max_count1 = a[key]
return max_count1
else:
max_count = a[0] # 随便取出序列的一个数(这里取的第一个),循环序列,让这个数和序列中的每一个数作比较,比这个数大就交换
for item in a:
if item > max_count:
max_count = item
return max_count
b = max_01([-7, -12, -1, -9])
c = max_01('abcdpzasdz')
d = max_01({'小明': 90, '张三': 76, '路飞': 30, '小花': 98})
print(b, c, d) # -1 z 98
16.写一个函数实现自己in操作,判断指定序列中,指定的元素是否存在
def in_01(a, b):
for item in a:
if item == b:
print('True')
break
else:
print('False')
in_01((12, 90, 'abc'), '90') # False
in_01((12, 90, 'abc'), 90) # True