#!/usr/bin/env python
# -*- coding:utf-8 -*-
1.計算傳入字符串中數字,字母,空格,以及其它的個數
def f(a):
al_num = 0
space_num = 0
dig_num = 0
other_num = 0
for n in a:
if n.isdigit()==True:
dig_num+=1
elif n.isspace()==True:
space_num+=1
elif n.isalpha()==True:
al_num+=1
else:
other_num+=1
return(dig_num,space_num,al_num,other_num)
r=f("134bb **")
print(r)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
2.判斷用戶傳入的對象長度是否大於5
def f2(arg):
#isinstance()判斷對象是否為字符串,列表,元組
if isinstance(arg,str) or isinstance(arg,list) or isinstance(arg,tuple):
if len(arg)>=5:
return True
else:
return False
else:
return None
r=f2(123)
print(r)
3.檢查元素是否含有空內容
def f3(a):
ret=True
for n in a:
if n.isspace():
ret=False
break
return ret
r2=f3("134 4 5")
print(r2)
4.檢查傳入列表的長度,大於2的話,保留前兩個長度的內容,並將新內容返回給調用者
#引用傳入的變量值
def f4(a):
if len(a)>2:
return (a[0:2])
return a
l1=f4([1,3,8,24,23,35,100])
print (l1)
#當函數形參是一個數值,引用傳入的變量值
def f4(a):
a=[123]
li=[11,22,33]
f4(li)
print(li)
#當函數形參是一個變量,引用傳入的變量值
def f5(arg):
if len(arg)>2:
del arg[2:]
li=[11,22,33,44,24]
f5(li)
print(li)
5.查出奇數索引的元素並插入到新的列表中
def f5(a):
c =[]
for i in range(len(a)):
if (i%2) ==1:
c.append(a[i])
return c
l1=(1,3,8,24,32,50)
print(f5(l1))
6.檢查傳入的每個字典的value長度,如果大於2,保留前兩個長度的內容,並將新內容返回給調用者
#方法一,創建新變量,把key,value賦值給新變量並返回給用戶:
def f6(arg):
ret={}
for key,value in arg.items():
if len(value)>2:
ret[key]=value[0:2]
else:
ret[key]=value
return ret
d1={"k1":'12345',"k2":[1,2,3,8,24,35],"k3":'12'}
print(f6(d1))
#方法二,改變原有變量的值,並返回給用戶:
def f6(arg):
for key,value in arg.items():
if len(value)>2:
arg[key]=value[0:2]
else:
arg[key]=value
return arg
d1={"k1":'12345',"k2":[1,2,3,8,24,35],"k3":'34'}
f6(d1)
print(d1)
7.利用遞歸獲取斐波那契列中的第10個數
def f7(n):
a,b=0,1
for i in range(n-1):
a,b=b,a+b
return a
print(f7(10))