-
写一个函数,实现maketrans的功能,将两个字符串转换成一个字典,第一个字符串中的字符是键,第二个字符串中的字符是值
第一个字符串: ‘abcmn’ 第二个字符串:‘一二三四五’
结果:{‘a’: ‘一’, ‘b’: ‘二’, ‘c’: ‘三’, ‘m’: ‘四’, ‘n’: ‘五’}
def dict1(str1, str2): '''将两个字符串转换成一个字典,第一个字符串中的字符是键,第二个字符串中的字符是值''' lens = len(str1) dict2 = {str1[i]: str2[i] for i in range(lens)} return dict2 print(dict1('abcmn', '一二三四五')) -
写一个属于自己的join函数,可以将任意序列中的元素以指定的字符串连接成一个新的字符串
序列: [10, 20, 30, ‘abc’] 字符串: ‘+’ 结果:‘10+20+30+abc’
序列: ‘abc’ 字符串: ‘–’ 结果:‘a–b--c’
注意:序列中的元素可以不是字符串哟
def str_sum(sequence, connect): ''' 可以将任意序列中的元素以指定的字符串连接成一个新的字符串 :param sequence:传入的任意序列 :param connect:指定的字符串连接 :return:新的字符串 ''' str1 = '' count = len(sequence) for i in sequence: str1 += str(i) if count > 1: str1 += connect count -= 1 return str1 print(str_sum('abc', '+')) -
写一个输入自己的upper函数,判断指定字符串是否是纯大写字母字符串
‘AMNDS’ -> True
‘amsKS’ -> False
‘123asd’ -> False
def majuscule(str1): ''' 判断指定字符串是否是纯大写字母字符串 :param str1:判断的字符串 :return:结果True或False ''' for i in str1: if not('A' <= i <= 'Z'): return False else: return True print(majuscule('AMNDS')) -
写一个clear函数,清空指定列表。
注意:功能是将原列表清空,不产生新的列表
def clears(list1:list): ''' 将原列表清空,不产生新的列表 :param list1:传入一个字典 :return: 返回[] ''' for i in range(len(list1)): del list1[0] return list1 print(clears(['asfsf', 'sfsaf', 67, 98])) -
写一个reverse函数,将列表中的元素逆序
两种方法:1.产生一个新的列表 2.不产生新的列表,直接修改原列表元素的顺序
方法一: def reverses(list1:list): ''' 将列表中的元素逆序,产生一个新的列表. :param list1:传入的列表 :return: 返回倒序 ''' list2 = [] for i in range(len(list1)-1, -1, -1): list2.append(list1[i]) return list2 print(reverses([1, 2, 3, 34, 5, 6, 77])) 方法二: def reverses(list1:list): ''' 不产生新的列表,直接修改原列表元素的顺序 :param list1:传入的列表 :return:返回倒序 ''' list2 = list1[:] for i in range(len(list1)): list1.append(list2[-i-1]) list1.remove(list1[0]) return list1 print(reverses([1, 2, 3, 34, 5, 6, 77])) -
写一个replace函数,将字符串中指定的子串替换成新的子串
原字符串: ‘abc123abc哈哈哈uui123’ 旧子串: ‘123’ 新子串: ‘AB’
结果: ‘abcABabc哈哈哈uuiAB’
def replaces(str1, str3, str2): ''' :param str1: 原字符串 :param str3: 旧子串 :param str2: 新子串 :return: ''' list1 = list(str1) for i in range(len(str1) - 1, -1, -1): if str1[i:i + len(str3)] == str3: del list1[i + 2] del list1[i + 1] del list1[i] list1.insert(i, str2) str4 = ''.join(list1) return str4 print(replaces('abc123abc哈哈哈uui123', '123', 'AB')) -
写一个函数,可以获取任意整数的十位数
123 -> 2
82339 -> 3
9 -> 0
-234 -> 3
def num1(ten): """获取任意整数的十位数""" if ten < 0: return (-ten) // 10 % 10 else: return ten // 10 % 10 print(num1(345678)) -
写一个函数实现数学集合运算符 & 的功能,求两个集合的公共部分:
集合1: {1, 2, 3} 集合2: {6, 7, 3, 9, 1}
结果:{1, 3}
def set1(set2, set3): ''' 实现数学集合运算符 & 的功能 :param set2:集合1 :param set3: 集合2 :return: ''' set4 = set() for i in set2: if i in set3: set4.add(i) return set4 print(set1({1, 2, 3}, {6, 7, 3, 9, 1})) -
写一个函数实现属于自己的字典update方法的功能,将一个字典中的键值对全部添加到另外一个字典中
字典1: {‘a’: 10, ‘b’: 20} 字典2: {‘name’: ‘张三’, ‘age’: 18} -> 结果让字典1变成: {‘a’: 10, ‘b’: 20, name’: ‘张三’, ‘age’: 18}
字典1: {‘a’: 10, ‘b’: 20} 字典2:{‘a’: 100, ‘c’: 200} -> 结果让字典1变成: {‘a’: 10, ‘b’: 20, ‘c’: 200}
def dict1(dict2:dict, dict3:dict): ''' :param dict2: 被添加的字典 :param dict3: 添加的字典 :return: 返回添加结果 ''' for key, value in dict3.items(): if not(key in dict2): dict2[key] = value return dict2 print(dict1({'a': 10, 'b': 20}, {'name': '张三', 'age': 18})) print(dict1({'a': 10, 'b': 20}, {'a': 100, 'c': 200})) -
写一个函数判断指定数是否是回文数
12321 -> True
2332 -> True
9876789 -> True
1232 -> False
def num1(num2): '''判断指定数是否是回文数''' return str(num2) == str(num2)[::-1] print(num1(123214)) -
写一个函数判断指定数是否是完数(比较难)
完数:各个真因数的和等于这个数本身
例如:6是完数,6的真因子为1、2、3,1+2+3等于6,所以6是完数
28是完数,28的真因子:1、2、4、7、14,1+2+4+7+14等于28,所以28是完数
12不是完数:12的真因子:1、2、3、4、6,1+2+3+4+6不等于12
def perfect_number(num1:int): ''' 判断指定数是否是完数。 :param num1:指定的一个数。 :return:返回该数是不是完数。 ''' num2 = -num1 for i in range(1, num1+1): for j in range(i, num1+1): if i * j == num1: num2 += i num2 += j if num1 == num2: return f'{num1}是完数' else: return f'{num1}不是完数' print(perfect_number(28))
day11-函数基础作业
最新推荐文章于 2023-12-05 08:54:41 发布
本文介绍了如何用Python实现maketrans函数将字符串映射,自定义join和upper函数,清空列表和反转顺序,以及替换子串和获取十位数的方法。同时涵盖了集合交集操作和字典update,以及判断回文数和完数的算法。
338

被折叠的 条评论
为什么被折叠?



