Python编码练习题(2)
发布时间:2020-12-20 10:12:47 所属栏目:Python 来源:网络整理
导读:题目1 Python实现float数的四舍五入 def panf(f): if isinstance(f,float): # 判断输入的数是否为float类型 isinstance(object,classinfo) 判断实例是否是这个类或者object是变量 b=int(str(f).split( ' . ' )[0]) 对该数先转换为字符串 然后进行分割,以‘.
题目1 Python实现float数的四舍五入
def panf(f): if isinstance(f,float): #判断输入的数是否为float类型 isinstance(object,classinfo) 判断实例是否是这个类或者object是变量 b=int(str(f).split('.')[0]) 对该数先转换为字符串 然后进行分割,以‘.’进行分割 取得小数点前半部分 c=str(f).split(')[1] 分割后取小数点后半部分 if int(c[0:1])>=5: 判断分割后的后半部分数据第一个数是否大于5 ,比较前先转换为int类型 b+=1 小数点后半部分第一个数大于5 就将整数部分加1 else: return b 否则直接返回整数部分 return b : return (u不是float类型参数') print(panf(4.5999)) ?题目2 Python 根据key对字典进行排序 dic={name':laohu',agetwentyheight178cm} res =sorted(dic.items(),key=lambda x:x[0],reverse=True) print("按照key降序排序后:",res) result=sorted(dic.items(),key =lambda x:x[1],1)">False) 按照value升序排序后key=lambda x:x[0],reverse=True) # 按照第0个元素降序排列 # dic.items() 为待排序的对象; key=lambda x: x[0] 为对前面的对象中的第一维数据(即key)的值进行排序。 key=lambda 变量:变量[维数] 。维数可以按照自己的需要进行设置。 reverse=True 将元素进行降序排序 key=lambda x:x[0] 第0个元素 也就是按照key值排序 reverse=TFalse 升序排序 ? 题目3: 给定一个非空正整数数组,把数值出现的次数存在一个新的字典中,并按照出现的次数排序 dict_sort(array_L): dic = {} for i in array_L: 依次迭代给定数组中的元素 if array_L.count(i) > 0: list.count()统计元素在列表中出现的次数 dic[i] = array_L.count(i) 字典保存元素和其出现的个数,(key,value)=(元素i,个数count(i)) 对dic中的元素按照个数的多少降序排序 newdic = sorted(dic.items(),1)">lambda items: items[1],1)">True) return newdic 返回降序排序后的结果 array_L = [1,1,6,7,9,3] res=dict_sort(array_L) 结果:",res) 备注: python中的list是python的内置数据类型,list中的数据类不必相同的,而array的中的类型必须全部相同。 numpy中封装的array有很强大的功能,里面存放的都是相同的数据类型 ? ? 题目4: 在一个整数数组中找到两个数之和等于目标值,并把两数下标存在list中返回 #给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 class Solution(): getSum(self,nums,target): nums_index=[] 用于存储目标数据,所获取的下标存放在该列表 in range(len(nums)): 获取数组长度,依次迭代每个元素 循环次数 for j in range(i+1,len(nums)): 循环,使用当前元素和其之后的每个元素依次加 比较和目标值是否相同 if nums[i]+nums[j]==target: nums_index.append(i) # 满足条件时,追加元素的下标 nums_index.append(j) return nums_index 返回结果 if __name__==__main__: nums=[2,8,4] target=15 l=Solution() res=l.getSum(nums,target) ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |