python习题之初识函数

#2、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def test(s):
    li = []
    for i in range(len(s)):
        if i%2 == 0:
            li.append(s[i])
    return li

print(test([345]))
# 第二种
def func(l)
    return l[1::2]

print(func([1,2,3,4,5]))
View Code
#3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
 1 def objt(s):
 2     if len(s) > 5:
 3         return True
 4     else:return False
 5 
 6 print(objt(('qwwadwfwf','adsf','adsdvfa','adsd')))
 7 #第二种
 8 def func(x):
 9     return len(x) > 5
10     
11 print(objt(('qwwadwfwf','adsf','adsdvfa','adsd')))
View Code
#4、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
 1 def objt(s):
 2     li = []
 3     if len(s) > 2:
 4         for i in range(2):
 5             li.append(s[i])
 6     else:li = list(s)
 7     return li
 8 #第二种
 9 def func(1):
10     if len(1) > 2:
11         return l[0:2]
12         
13 print(func([1,2,3,4]))
14 #第三种
15 def func(1):
16     return l[0:2]
17         
18 print(func([1,2,3,4]))
View Code
#5、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数,并返回结果。
 1 def objt(s):
 2     sum = 0
 3     sum1 = 0
 4     sum2 = 0
 5     sum3 = 0
 6     for i in range(len(s)):
 7         if s[i].isdigit():
 8             sum += 1
 9         elif s[i].isalpha():
10             sum1 += 1
11         elif s[i] == ' ':
12             sum2 += 1
13         else:sum3 += 1
14     return sum,sum1,sum2,sum3
15 
16 print(objt('ugguyg   45787!!!'))
17 
18 #第二种
19 def func(s)
20     dic = {'num':0,'alpha':0,'space':0,'other':0}
21     for i in s:
22         if i.isdigit():
23             dic['num'] += 1
24         elif i.isalpha():
25             dic['alpha'] += 1
26         elif i.isspace():
27             dic['space'] += 1
28         else:dic['other'] += 1
29     return dic
30 print(objt('ugguyg   45787!!!'))
View Code
#6、写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容,并返回结果。
 1 def func(x):
 2     if type(x) is str and x:
 3         for i in x:
 4             if i == ' ':
 5                 return True
 6     elif x and type(x) is list or type(x) is tuple:
 7         for i in x:
 8             if not i:
 9                 return True
10     elif not x:
11         return true
View Code
#7、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
# dic = {"k1": "v1v1", "k2": [11,22,33,44]}
# PS:字典中的value只能是字符串或列表
1 def objt(s):
2     for i in s:
3         if len(s[i]) > 2:
4             s[i]=s[i][0:2]
5     return s
6 
7 a = objt({"k1": "v1v1", "k2": [11,22,33,44]})
8 
9 print(a)
View Code
#8、写函数,接收两个数字参数,返回比较大的那个数字。
 1 def objt(*orgs):
 2     a = 0
 3     for i in orgs:
 4         if a < i :
 5             a = i
 6     return a
 7 
 8 print(objt(1,2,3,4,5,6,999))
 9 
10 #三元运算:
11 # a=1
12 # b=5
13 # c = a if a>b else b
14 # 变量 = 条件返回True的结果 if 条件 else 条件返回False的结果
15 
16 #第二种
17 def func(a,b):
18     return a if a>b else b
View Code
#9、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(进阶)。
 1 def objt():
 2     file = input('文件路径:')
 3     text = input('修改前的内容')
 4     text1 = input('修改后的内容')
 5     with open(file,encoding='utf-8') as f,open('file.bak','w',encoding='utf-8') as f1:
 6         for line in f:
 7                 if text in line:
 8                     line = line.replace(text,text1)
 9                 f1.write(line)
10 
11     import os
12     os.remove(file)
13     os.rename('file.bak',file)
14 
15 objt()
View Code
#10、写一个函数完成三次登陆功能,再写一个函数完成注册功能
posted @ 2017-12-27 17:27  摇曳时光  阅读(183)  评论(0编辑  收藏  举报