第四讲作业

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

  • 普通参数:以正确的顺序传入函数,调用时数量必须和声明的一样。
  • 指定参数:参数和函数调用关系密切,函数调用使用使用关键字参数来确定传入的参数值,参数允许函数调用时参数的顺序和声明时不一致。
  • 默认参数:函数进行调用时,如果没有新的参数传入则默认的情况下,就调用默认参数
  • 动态参数:个函数能处理比当初声明时更多的参数,这些参数叫动态参数

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

#####判断字母数字出现的次数########
def func1(s):#定义一个函数
    #字符串中出现的数字、字母、空格等其他的符号,初始值为0
    zimu_num = 0
    kongge_num = 0
    shuzi_num = 0
    qita_num = 0
    for i in s:#对字符串进行循环判断
        if i.isalpha():
            zimu_num += 1
        elif i.isspace():
            kongge_num += 1
        elif i.isdigit():
            shuzi_num += 1
        else:
            qita_num += 1
    return (zimu_num,kongge_num,shuzi_num,qita_num)#把所有的结果返回到一个元组中

m = func1("wewqe-*-  **-wqeqe")#调用func1函数
print(m)打印出函数的结果

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

###对象长度#######
def func1(s,li,tup):
    zi = len(s)
    li = len(li)
    tup = len(tup)
    if zi > 5:
        print("shi")
    else:
        print("bushi")
    if li > 5:
        print("shi")
    else:
        print("bushi")
    if tup > 5:
        print("shi")
    else:
        print("bushi")
    return(zi,li,tup)#return返回的是字符、列表、元组的长度
m = func1("kwkwqehk",[11,22,33],(1,"215",5,6,59,6))
print(m)#m是函数体中判断产生的结果

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

def f1(o):
    for i in a:
        i = str(i)
        if ' '  in i:
            return ('空格:',i)
        else:
            return ('没空格')

a = ('q qer','adf')
ret = f1(a)
print(ret)

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

#####列表长度判断#####
def func1(li):
    len_li = len(li)
    if len_li > 2:
        print("列表长度大于2")
        li1 = li[0:2]
    return(li1)
m = func1([11,22,"ddw",4])
print(m)#相当于返回值

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

def func1(li,tup):
    l1 = []
    t1 = []
    for i in range(len(li)):
        if i % 2 == 1:
            l1.append(li[i])
    print(l1)
    for p in range(len(tup)):
        if p % 2 ==1:
            t1.append(tup[p])
    print(t1)
    return (l1,t1)

m = func1([11,22,33,55,64],(156,1321,54,5663,11))
print(m)

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

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

PS:字典中的value只能是字符串或列表

 方法一

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

}
m = dic["k1"]
n = dic["k2"]
if len(m) > 2:
    p = m[0:2]
print(p)
if len(n) > 2:
    q = n[0:2]
print(q)
dic1["k1"] = p
dic1["k2"] = q
print(dic1)

 方法二

def f5(arg):
    ret = {}
    for key,value in arg.items():
        if len(value) > 2:
            ret[key] = value[0:2]
        else:
            ret[key] = value
    return ret


dic = {"k1": "v1v1",
       "k2": [11, 22, 33, 44]
       }
r = f5(dic)
print(r)

 

posted @ 2016-05-09 10:12  还能和老板谈感情吗  阅读(762)  评论(0编辑  收藏  举报