第二十五节,自定义函数作业

1,简述普通参数、指定参数、默认参数、动态参数的区别

函数

         a.def(声明自定义函数开始)

         b.函数名()如:f1()

         c.返回值return(关键字)

                   函数内部一旦遇到return,以下代码不在执行

         d.参数

                   1.形式参数(定义函数时的参数),实际参数(调用函数时的参数)

                   2.普通参数:数量一致,一一对应

print("普通参数:数量一致,一一对应")
def f1(a,b):
    c = a + b
    print(c)
f1(5,5)

 

                   3.指定参数

                            调用函数时指定参数如:f1(p="xxx")

print("指定参数:调用函数时指定参数")
def g1(a,b):
    c = a + b
    print(c)
g1(b = 4, a = 3)

 

                   4.默认参数

                            在定义函数时形式参数指定默认实参,默认参数要写在尾部

print("默认参数:在定义函数时形式参数指定默认实参")
def h1(a=5, b=3):
    c = a + b
    print(c)
h1()

 

                   5.动态参数

                            *args (接收实际参数组合成元组)

print("动态参数:*args (接收实际参数组合成元组)")
def i1(*args):
    print(args)
i1(123, 456, 789)

 

                            **kwargs (接收实际参数组合成字典)

print("动态参数:**kwargs (接收实际参数组合成字典)")
def j1(**kwargs):
    print(kwargs)
j1(k1=123,k2=456,k3=789)

 

2,写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数
def pduan(s):
    shuzi = 0       #统计数字
    zimu = 0        #统计字母
    kongge = 0      #统计空格
    qita = 0        #统计其他
    for i in s:     #循环字符串
        if i.isdigit():     #判断循环到的字符是否是数字
            shuzi += 1      #如果是数字,统计加1
        elif i.isalpha():   #判断循环到的字符是否是字母
            zimu  += 1      #如果是字母,统计加1
        elif i.isspace():   #判断循环到的字符是否是空格
            kongge += 1     #如果是空格,统计加1
        else:               #判断循环到的字符都不是以上类型,则为其他
            qita += 1       #如果是其他,其他统计加1
    return {"shuzi":shuzi, "zimu":zimu, "kongge":kongge, "qita":qita}    #返回由各种统计组合的字典

jieg = pduan("1567df jweiwo r22r")  #调用函数传入字符串
print(jieg) #打印函数
print("\n")

#用字典索引的方式,分别获取到各项统计到的数量
print("数字:", jieg["shuzi"], "字母:", jieg["zimu"], "空格:", jieg["kongge"], "其他:", jieg["qita"])

 

3,写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5"""
print("写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5")
def pduan(s):   #定义函数
    if isinstance(s,str) or isinstance(s,list) or isinstance(s,tuple):  #判断接收到的是否是(字符串、列表、元组)类型
        if len(s) > 5:  #判断接收到的元素是否大于5
            print("大于五")    #大于5
        else:
            print("小于五")    #小于5
    else:    #如果接收到的不是(字符串、列表、元组)类型
        print("您输入的类型,不在范围内")   #不是(字符串、列表、元组)类型 打印提示

#shuju = "自贡玉1111111"
#shuju = [123,456,789]
shuju = (123,456,789,101112,131415,16171819)

pduan(shuju)    #调用函数

 

4,写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。"""
print("写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。")

def hanshu(s):  #定义函数
    tj = False  #空格统计默认False没有
    for i in s: #循环接收的字符串
        if i.isspace(): #判断循环到的字符是否是空格
            tj = True   #如果是空格将空格统计改为True有空格
    return tj   #返回空格统计

shuj = "112344233"

hsh = hanshu(shuj)  #调用函数
print(hsh)

 

5、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者"""
print("写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者")

def f2(s):  #定义函数
    if len(s) > 2:  #判断列表的长度是否大于2
        return s[0:2]   #如果大于2切片保留2位长度
    else:
        return s    #如果不大于2直接返回列表

fs = [123,456,789,987,654,321]

f3 = f2(fs) #调用函数
print(f3)

 

6、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者"""
print("写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者")

def f4(s):      #自定义函数
    tj = []     #统计奇数索引的元素
    for i in range(len(s)):     #循环列表的索引
        if i % 2 == 1:      #判断循环到的索引除以2是否等于1
            tj.append(s[i]) #如果除以2等于1,将此下标的元素追加到,统计奇数索引的元素
        else:
            pass    #如果除以2不等于1,什么都不做
    return tj   #返回统计奇数索引的元素

fsa = [123,456,789,987,654,432]

f5 = f4(fsa)    #调用函数
print(f5)

 

7、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者"""
print("写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者")

def f5(s):      #定义函数
    tj = {}     #新建保留两位长度的字典
    for key,value in s.items():     #循环出字典的键和值
        if len(value) > 2:      #判断循环到的字典值是否大于两位
            tj[key] = value[0:2]    #如果大于两位将字典值切片成两位后,更新到新建保留两位长度的字典
        else:
            tj[key] = value     #如果不大于两位,就直接更新到新建保留两位长度的字典
    return tj   #返回新建保留两位长度的字典

dic = {"k1": "v1v1", "k2": [11,22,33,44], "k3": "12"}

f6 = f5(dic)    #调用函数
print(f6)

列2 

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者"""
print("写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者")
dic = {"k1": "v1v1", "k2": [11,22,33,44], "k3": "12"}
def f6(s):  #定义函数
    for key,value in s.items():     #循环出字典的键和值
        if len(value) > 2:  #判断循环到的字典值是否大于两位
            s[key] = value[0:2]     #如果大于两位将字典值切片成两位
        else:
            s[key] = value      #如果不大于两位,就直接返回

f6(dic)
print(dic)

 

 

posted @ 2016-07-16 21:53  林贵秀  阅读(968)  评论(0编辑  收藏  举报