python---函数练习题

函数计算传入字符串的个数

isinstance函数判断,输入的是不是字符串。
代码:

def getLen(s):
    if isinstance(s,str):
        return len(s)
    else:
        return '类型错误'
num = getLen('adfdafd')
print(num)

输出:7

判断用户输入的字符串、列表、元组长度是否大于5。

代码:

def getLen(args):
    if isinstance(args,(str,list,tuple)):
        if len(args)>5:
            print("传入的对象长度大于5")
        else:
            print("传入的对象长度小于5")
    else:
        print("类型错误")

getLen(['2','3333'])

输出结果:
传入的对象长度小于5

写入不定格式的字符串,拼接第一个和最后一个字符串。

def Jot(*args):
    return args[0]+args[-1]
print(Jot('dd','fg','222'))

输出结果:
ddd222

输入多个参数,List返回。

def Jot(*args):
    li=[]
    for i in args:
        li.append(i)
    return li
print(Jot(1,2,3,4))

输出结果
[1, 2, 3, 4]

练习:数字积。

def Evensun(n):
    sum=0
    for i in range(2,n+2,2):
        sum+=1/i
    return sum
def OddSum(n):
    sum=0
    for i in range(1,n+2,2):
        sum+=1/i
    return sum

def main():
    numm= int(input("请输入一个数"))
    if numm%2==0:
        print(Evensun(numm))
    else:
        print(OddSum(numm))
main()

输出结果:
请输入一个数12
1.2249999999999999

字典排序

dic={'a':1,'c':3,'b':2}
print(dic)
dic=sorted(dic.items())      
print(dic)#排序后变成元组。

输出:
{‘a’: 1, ‘c’: 3, ‘b’: 2}
[(‘a’, 1), (‘b’, 2), (‘c’, 3)]

dic={'a':1,'c':3,'b':2}
print(dic)
dic=sorted(dic.items(),key=lambda x:x[1],reverse=True)
print(dic)#排序后变成元组。

输出:
{‘a’: 1, ‘c’: 3, ‘b’: 2}
[(‘c’, 3), (‘b’, 2), (‘a’, 1)]

原理如下:
在这里插入图片描述

dic={'a':1,'c':3,'b':2}
print(dic)
dic=sorted(dic.items(),key=lambda x:x[1],reverse=True)
print({k:v for k,v in dic})#排序后变成元组。元组推导式。

输出:
{‘a’: 1, ‘c’: 3, ‘b’: 2}
{‘c’: 3, ‘b’: 2, ‘a’: 1}

字典列表排序:

list01=[{'name':'jeo','age':18},{'name':'susan','age':19},{'name':'tom','age':17}]
dic = sorted(list01,key=lambda x:x['age'],reverse= True)
print(dic)

输出结果:
[{‘name’: ‘susan’, ‘age’: 19}, {‘name’: ‘jeo’, ‘age’: 18}, {‘name’: ‘tom’, ‘age’: 17}]

分析:上面的代码用了lambda表达式,list01是一个一个地把字典传给x,然后按照age排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值