函数计算传入字符串的个数
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排序。