归纳整理几个Excel2021特色函数的用法(excel2021功能介绍)
628
2022-05-29
Python基础语法、数据结构、正则表达式、多任务和魔法方法的使用
理论学习视频:《AI基础课程--Python编程知识》
一、逆序除重
题目描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。 保证输入的整数最后一位不是0。
输入描述: 输入一个int型整数
输出描述: 按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
示例1 输入: 30010733 输出: 3701
字符串是由Unicode码点组成的不可变序列
代码实现
num = input("随机输入一个整数:") list =[] for i in num[::-1]: if i not in list: list.append(i) res='' for i in list: res +=i print("逆序除重后结果:",res)
原理
其中利用list把他们切片,list是由三个元素所组成:param1,param2,param3
param1表示头索引,可以为空,默认0;
param2表示尾索引,可以为空,默认为list.size,
param3表示步长,默认为1,-1表示倒叙原序列输出
list[param1:param2:param3]
代码中list[::-1]就表示把原数据倒叙输出
动手实践一下吧:https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=f0af65c2-8ec9-48e0-9a60-b98f6fc93d17
二、简单的加法
题目描述
输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。
如果有多对数字的和等于输入的数字,输出任意一对即可。
例如:输入数组1 2 4 7 11 15和数字15。
由于4+11=15,因此输出4和11。
代码实现
l = input("请输入字符串,以空格为间隔:") n = input("输入数字:") def func(): # 在此编写代码 larr=l.split(" ") llen=len(larr) for i in range(llen-1): a=larr for j in range(i+1,llen): b=larr[j] if int(a)+int(b)==int(n): print("所输入的字符串中符合条件的两个数为:") print(a,b) func()
动手实践一下吧:https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=07029b24-d843-41f5-bec4-0dcc21143986
三、巧玩字符串
题目描述
输入一个字符串,求最大的没有重复字符的子字符串长度
比如:输入huaweicloudaigallery
输出 9 (huaweiclo或aweicloud或weiclouda)
代码实现
string = input("请输入一组字符串:") # 手动输入字符串 def func(str): maxlength=[] length=len(str) for i in range(length): tmp=str for j in range(i+1, length): if str[j] not in tmp: tmp += str[j] else: break maxlength.append(tmp) N=len(maxlength) for n in range (N): for m in range(n+1,N): if len(maxlength[n]) 先把所有包含的基本情况拆出来,然后再调试一下统计最大字符串数 str0=input("请输入一组字符串:") def func(str_): max_num = 0 str_list = [] for i in str_: if i not in str_list: str_list.append(i) print(str_list) else: str_list = [] str_list.append(i) new_max_num = len(str_list) if new_max_num > max_num: max_num = new_max_num final_str = "".join(str_list) print("最长字串长度:",max_num) return max_num, final_str resulut=func(str0) 只显示最大无重复的字符串: string = input("请输入一组字符串:") def func(): done = False final_str = [] len_string = len(string) for i in range(len_string,-1,-1): for j in range(len_string-i+1): sub_string = string[j:i+j] len_sub_string = len(sub_string) len_set_sub_string =len(set(sub_string)) if len_sub_string == len_set_sub_string: maxlength = len_sub_string final_str.append(sub_string) done = True if done: break print("最长字串长度:",maxlength,final_str) func() 动手实践一下吧:https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=992e8582-4407-4029-9fe6-26df5b01cf8c 四、奇妙的三元组 题目描述 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。 * 注意:答案中不可以包含重复的三元组。 示例: 给定数组 -1 0 1 2 -1 -4 满足要求的三元组集合为: -1 0 1 -1 -1 2 代码实现 def func(nums, a=0): if len(nums) < 3: return [] a = 0 result = [] for i in range(len(nums)): for j in range(i+1, len(nums)): for k in range(j+1, len(nums)): if nums+nums[j]+nums[k] == a: # 判断是否等于目标值 temp = [nums, nums[j], nums[k]] if sorted(temp) not in result: # 去重 result.append(sorted(temp)) return result if __name__ == '__main__': nums = [-1, 0, 1, 2, -1, -4] result = func(nums, a=0) print(result) ok输出没问题,改进一下还是喜欢可以用户自定义输入的: string = input("请输入一个数组:") def func(): nums = [int(t) for t in string.split()] list1 = [] a = 0 for i in range(len(nums)): for j in range(i+1, len(nums)): for k in range(j+1, len(nums)): if nums + nums[j] + nums[k] == a: #判断是否等于目标值 temp = [nums, nums[j], nums[k]] temp.sort() if temp not in list1: #去重 list1.append(temp) print("满足要求的三元组集合为:") for result in list1: print(result) func() 动手实践一下吧:https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=247ebb72-fe21-4847-9e11-16f38afe3764 五、学习成绩划分(判断1) 题目描述 输入一个0-100之间的整数成绩, 学习成绩>=90的同学,用A表示; 学习成绩60-89分的同学,用B表示; 学习成绩<60的同学,用C表示。 例如:输入成绩98,则会输出A 代码实现 score = input("请输入你的成绩:") score = float(score) if 100 >= score >= 90: print("恭喜您的成绩是:A") elif 90 > score >= 60: print("您的成绩是:B") elif score < 60: print("再接再厉您的成绩是:C") else: print("请输入正确的分数") 动手实践一下吧:https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=3cf7d42d-f5c8-451b-8aa6-973809bbe3bc 六、奖金分配(判断2) 题目描述 企业发放的奖金根据利润提成。 利润(I)低于或等于10 万元时,奖金可提10%; 利润高于10 万元,低于20 万元时,低于10 万元的部分按10%提成,高于10 万元的部分,可可提成7.5%; 20 万到40 万之间时,高于20 万元的部分,可提成5%; 40 万到60 万之间时高于40 万元的部分,可提成3%; 60 万到100 万之间时,高于60 万元的部分,可提成1.5%; 高于100 万元时,超过100 万元的部分按1%提成, 从键盘输入当月利润I,求应发放奖金总数? 代码实现 money = input("请输入公司当月所获利润总额(万元):") money = float(money) if 0 <= money <= 10: bonus = money*0.1 elif 10 <= money <= 20: bonus = 10*0.1 + (money-10)*0.075 elif 20 < money <= 40: bonus = 10*0.1 + 10*0.075 + (money - 20)*0.05 elif 40 < money <= 60: bonus = 10*0.1 + 10*0.075 + 20*0.05 + (money - 40)*0.03 elif 60 < money <= 100: bonus = 10*0.1 + 10*0.075 + 20*0.05 + 20*0.03 + (money - 60)*0.015 elif 100 < money: bonus = 10*(0.1 + 0.075) + 20*(0.05 + 0.03) + 40*0.015 + (money-100)*0.01 print("当月应发放奖金总数为:%f万元" %bonus) 动手实践一下吧:https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=4e26bd2a-a5e3-4d17-a34e-548d752d7f99 七、回文检查器 题目描述 如果给定的一个字符串是回文,那么返回true,否则返回false。 palindrome(回文),指在忽略标点符号、大小写和空格的前提下,正着读和反着读一模一样。 代码实现 *我这里用了两种方法 1、函数法: def func(): s = input('请输入一个数或者字符串:') if s == s[::-1]: #判断正序是否等于逆序,并返回True or False print('True') else: print('False') func() 2、循环法: str=input("请输入一个数或者字符串:") str = str*2 #强制偶数位 i = 0 while i 动手实践一下吧:https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=2fe5a68a-fda3-4ba9-9eb8-d6679661c3e7 八、罗马数字转换器 题目描述 把传入的数字转变为罗马数字。(0~9) 转换后的罗马数字字母必须都是大写。 代码实现 这是个简单的10以内(0~9)转换: num=input("请输入0-9间任意数字:") b = dict([("1", "Ⅰ"),("2", "Ⅱ"), ("3", "Ⅲ"),("4", "Ⅳ"),("5", "Ⅴ"),("6", "Ⅵ"),("7", "Ⅶ"),("8", "Ⅷ"),("9", "Ⅸ")]) print("转换后的大写罗马数字字母: ", b[num]) 这是多位的转换: num = int(input('请输入任意数字:')) c = { 'g': ('', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'), 's': ('', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC'), 'b': ('', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM'), 'q': ('', 'M', 'MM', 'MMM') } roman = [] # 用整除和取余获得个十百千对应的数字 roman.append(c['q'][num // 1000]) roman.append(c['b'][(num // 100) % 10]) roman.append(c['s'][(num // 10) % 10]) roman.append(c['g'][num % 10]) print("转换后的大写罗马数字字母: ") print(''.join(roman)) 动手实践一下吧:https://marketplace.huaweicloud.com/markets/aihub/notebook/detail/?id=350bebb5-3faf-497a-a5ca-c8ac67b51383 AI开发平台ModelArts Python 数据结构
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。