deffunc(n):
re =[0,0,0,0]for i in n:if i.isupper():
re[0]= re[0]+1elif i.islower():
re[1]= re[1]+1elif i.isdigit():
re[2]= re[2]+1else:
re[3]= re[3]+1returntuple(re)
func('Abc123!@#$')
(1, 2, 3, 4)
方法二:
defdemo(v):
capital = little = digit = other =0for i in v:if'A'<=i<='Z':
capital+=1elif'a'<=i<='z':
little+=1elif'0'<=i<='9':
digit+=1else:
other+=1return(capital,little,digit,other)
x ='capital = little = digit = other =0'print(demo(x))
defSumfunc(n):
s =0for i in n:
s = s + i
return s
print(Sumfunc([1,2,3]))print(Sumfunc((1,2,3)))
6
6
*5.11 编写函数,模拟内置函数sorted()。
help(sorted)
Help on built-in function sorted in module builtins:
sorted(iterable, /, *, key=None, reverse=False)
Return a new list containing all items from the iterable in ascending order.
A custom key function can be supplied to customize the sort order, and the
reverse flag can be set to request the result in descending order.
from random import randint
defmySorted(lst, reverse=False):
lst = lst[:]
length =len(lst)for i inrange(0, length):
flag =Falsefor j inrange(0, length-i-1):#比较相邻两个元素大小,并根据需要进行交换#默认升序排序
exp ='lst[j] > lst[j+1]'#如果reverse=True则降序排序if reverse:
exp ='lst[j] < lst[j+1]'ifeval(exp):
lst[j], lst[j+1]= lst[j+1], lst[j]#flag=True表示本次扫描发生过元素交换
flag =True#如果一次扫描结束后,没有发生过元素交换,说明已经按序排列ifnot flag:breakreturn lst
lst =[randint(1,100)for i inrange(20)]print('Before sorted:\n', lst)print('After sorted:\n', mySorted(lst,True))
5.2 编写函数,判断一个整数是否为素数,并编写主程序调用该函数def func(n): for i in range(2,n): if n % i == 0: print('{}不是素数'.format(n)) break else: print('{0}是素数'.format(n))func(7...