1.编写函数,求1 + 2 + 3 +…N的和
def fl_sum(n):
"""
求1到数字n的所有整数和
:param n:
:return:
"""
sum1 = 0
for x in range(1, n + 1):
sum1 += x
print('1到%s的和为%s' % (n, sum1))
return
2.编写一个函数,求多个数中的最大值
def fl_max(*args, **kwargs):
"""
求输入数字的最大值
:param args:
:param kwargs:
:return:
"""
num1 = max(args)
for item in kwargs:
if kwargs[item] > num1:
num1 = kwargs[item]
print('最大值为%s' % num1)
return
3.编写一个函数,实现摇骰子的功能,打印N个骰子的点数和
def fl_random_sum(n):
"""
骰子有六个面,分别为1,至6,随机扔n次,求他们的和
:param n:
:return:
"""
import random
sum1 = 0
for x in range(n):
sum1 += random.randint(1, 6)
print('%s个骰子之和为%s' % (n, sum1))
return
4.编写一个函数,交换指定字典的key和value。
# 例如: dict1 = {'a': 1, 'b': 2, 'c': 3} --> dict1 = {1: 'a', 2: 'b', 3: 'c'}
def fl_exchange(dict1: dict):
"""
交换字典中的key与value
:param dict1:
:return:
"""
dict2 = {}
for x in dict1:
dict2.setdefault(dict1[x], x)
dict1 = dict2
print(dict1)
return
5.编写一个函数,提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串
# 例如: 传入'12a&bc12d-+' --> 'abcd'
def fl_letter(string: str):
"""
提起指定字符串中的所有字母,并且将它们连接在一起产生一个新的字符串
:param string:
:return:
"""
str1 = ''
for x in string:
if 'a' <= x <= 'z' or 'A' <= x <= 'Z':
str1 += x
print(str1)
return
6.写一个函数,求多个数的平均值
def fl_average(*args, **kwargs):
"""
求输入多个数据的平均值
:param args:
:param kwargs:
:return:
"""
sum1 = sum(args)
for item in kwargs:
sum1 += kwargs[item]
average = sum1 / (len(args) + len(kwargs))
print(average)
return
7.写一个函数,默认求10的阶乘,也可以求其他数字的阶乘
def fl_product(n=10):
"""
不输入n值时,求10 的阶乘,输入n时,求n的阶乘
:param n:
:return:
"""
product1 = 1
for x in range(1, n + 1):
product1 *= x
print(product1)
return
== == == == == == == == == == =注意:以下方法不能使用系统提供的方法和函数,全部自己写逻辑 == == == == == == ==
8.写一个自己的capitalize函数,能够将指定字符串的首字母变成大写字母
# 例如: 'abc' -> 'Abc' '12asd' --> '12asd'
def fl_capitalize(string: str):
"""
将指定字符串中的首字母变为大写
:param string:
:return:
"""
lowercase_alphabet = 'abcdefghijklmnopqrstuvwxyz'
capital_alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
str3 = ''
str4 = ''
for x in range(len(string)):
if string[x] in lowercase_alphabet or string[x] in capital_alphabet:
if string[x] in lowercase_alphabet:
for m in range(len(lowercase_alphabet)):
if string[x] == lowercase_alphabet[m]:
str3 += capital_alphabet[m]
break
else:
str3 += string[x]
str4 = string[x + 1:]
break
str3 += string[x]
print(str3 + str4)
9.写一个自己的endswith函数,判断一个字符串是否已指定的字符串结束
# 例如: 字符串1:'abc231ab' 字符串2: 'ab'函数结果为: True 字符串1: 'abc231ab' 字符串2: 'ab1' 函数结果为: False
def fl_endswith(string1: str, string2: str):
"""
判断字符串1是否用字符串2 结束
:param string1:
:param string2:
:return:
"""
if string2 == string1[-len(string2):]:
return True
else:
return False
10.写一个自己的isdigit函数,判断一个字符串是否是纯数字字符串
# 例如: '1234921'结果: True'23函数'结果: False'a2390'结果: False
def fl_isdigit(string: str):
"""
判断一个字符串是否为纯数字字符串
:param string:
:return:
"""
for item in string:
if item not in '0123456789':
return False
else:
return True
11.写一个自己的upper函数,将一个字符串中所有的小写字母变成大写字母
# 例如: 'abH23好rp1'结果: 'ABH23好RP1'
def fl_upper(string: str):
"""
将输入字符串中的所有小写字母变为大写字母
:param string:
:return:
"""
lowercase_alphabet = 'abcdefghijklmnopqrstuvwxyz'
capital_alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
str3 = ''
for x in range(len(string)):
if string[x] in lowercase_alphabet or string[x] in capital_alphabet:
if string[x] in lowercase_alphabet:
for m in range(len(lowercase_alphabet)):
if string[x] == lowercase_alphabet[m]:
str3 += capital_alphabet[m]
break
else:
str3 += string[x]
else:
str3 += string[x]
print(str3)
12.写一个自己的rjust函数,创建一个字符串的长度是指定长度,原字符串在新字符串中右对齐,剩下的部分用指定的字符填充
# 例如: 原字符:'abc'宽度: 7字符: '^'结果: '^^^^abc'原字符: '你好吗'宽度: 5字符: '0'结果: '00你好吗'
def fl_rjust(string1: str, width: int, string2: str = ''):
"""
将输入字符串按指定宽度,指定填充字符串右对齐
:param string1:
:param width:
:param string2:
:return:
"""
len_string1 = 0
for _ in string1:
len_string1 += 1
len_string2 = width - len_string1
string3 = ''
for x in range(len_string2):
string3 += string2
print(string3 + string1)
13.写一个自己的index函数,统计指定列表中指定元素的所有下标,如果列表中没有指定元素返回 - 1
# 例如: 列表: [1, 2, 45, 'abc', 1, '你好', 1, 0]元素: 1 结果: 0, 4, 6
# 列表: ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权']元素: '赵云' 结果: 0, 4
# 列表: ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权']元素: '关羽' 结果: -1
def fl_index(list1: list, item):
"""
返回指定元素在列表中的下标
:param list1:
:param item:
:return:
"""
n = -1
for x in list1:
n += 1
if x == item:
print(n)
if n == 0:
print(-1)
14.写一个自己的len函数,统计指定序列中元素的个数
# 例如: 序列:[1, 3, 5, 6]结果: 4序列: (1, 34, 'a', 45, 'bbb')结果: 5序列: 'hello w'结果: 7
def fl_len(order):
"""
计算指定序列中元素的个数
:param order:
:return:
"""
n = 0
for _ in order:
n += 1
return n
15.写一个自己的max函数,获取指定序列中元素的最大值。如果序列是字典,取字典值的最大值
# 例如: 序列:[-7, -12, -1, -9]结果: -1序列: 'abcdpzasdz'结果: 'z'序列: {'小明': 90, '张三': 76, '路飞': 30, '小花': 98}结果: 98
def fl_max2(order):
"""
取出输入序列中的最大值
:param order:
:return:
"""
if isinstance(order, list) or isinstance(order, str) or isinstance(order, tuple):
n = order[0]
for item in order:
if item > n:
n = item
print(n)
elif isinstance(order, set):
n = ''
for item in order:
n = item
break
for item in order:
if item > n:
n = item
print(n)
elif isinstance(order, dict):
n = ''
for x in order:
n = order[x]
break
for x in order:
if order[x] > n:
n = order[x]
print(n)
16.写一个函数实现自己in操作,判断指定序列中,指定的元素是否存在
# 例如: 序列: (12, 90, 'abc')元素: '90'结果: False序列: [12, 90, 'abc']元素: 90结果: True
def fl_in(order, item):
"""
判断指定元素是否存在于指定序列中
:param order:
:param item:
:return:
"""
if isinstance(order, tuple) or isinstance(order, list) or isinstance(order, str) or isinstance(order, set):
for x in order:
if item == x:
return True
else:
return False
elif isinstance(order, dict):
for key in order:
if order == key:
return True
elif order == dict[key]:
return True
else:
print('数据输入错误')
return
17.写一个自己的replace函数,将指定字符串中指定的旧字符串转换成指定的新字符串
# 例如: 原字符串: 'how are you? and you?'旧字符串: 'you'新字符串: 'me'结果: 'how are me? and me?'
def fl_replace(string: str, old_string: str, new_string: str):
"""
用新字符串替换指定字符串中的指定旧字符串
:param string:
:param old_string:
:param new_string:
:return:
"""
lenth = len(old_string)
string1 = ''
string2 = ''
while old_string in string:
for x in range(len(string)-lenth+1):
if string[x:x+lenth] == old_string:
string1 = string[0:x]
string2 = string[x+lenth:]
break
string = (string1+new_string+string2)
print(string)
18.写四个函数,分别实现求两个列表的交集、并集、差集、补集的功能
def fl_jiao(list1: list, list2: list):
"""
计算两个列表的交集
:param list1:
:param list2:
:return:
"""
set1 = set(list1)
set2 = set(list2)
list3 = []
set3 = set(list3)
for item1 in set1:
if item1 in set2:
set3.add(item1)
break
print(set3)
return
def fl_bing(list1: list, list2: list):
"""
计算两个列表的并集
:param list1:
:param list2:
:return:
"""
set1 = set(list1)
set2 = set(list2)
list3 = []
set3 = set(list3)
for item in set1:
if item in set2:
continue
set3.add(item)
for item in set2:
set3.add(item)
print(set3)
def fl_cha(list1: list, list2: list):
"""
计算两个列表的差集
:param list1:
:param list2:
:return:
"""
set1 = set(list1)
set2 = set(list2)
list3 = []
set3 = set(list3)
for item in set1:
if item in set2:
continue
set3.add(item)
print(set3)
def fl_bu(list1: list, list2: list):
"""
计算两个列表的补集
:param list1:
:param list2:
:return:
"""
set1 = set(list1)
set2 = set(list2)
list3 = []
set3 = set(list3)
for item in set1:
if item in set2:
continue
set3.add(item)
for item in set2:
if item in set1:
continue
set3.add(item)
print(set3)