码迷,mamicode.com
首页 > 编程语言 > 详细

Python开发Day03(练习解答)

时间:2016-05-08 19:48:07      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:

练习一、

技术分享
‘‘‘普通参数分为形参、实参,有多少形参,就必须要给函数多少个实参。
指定参数为,假如有name和age两个形参,在给函数参数的时候指定name=****,age=**
默认参数为必须放在参数的尾部,列如一个name形参,一个age形参,我们可以将name形参放在前面,这样用户必须给函数一个名字,age放在后面默认等于18。(name,age=18)
动态参数:在形参前面加一个*号,可以传入多个参数,在函数内类型会变为元组。
    在形为参数前面加两个*号,传入的值为字典类型,相当于可以传入多个参数,并且改为字典格式。def he(**kwargs):
    给动态参数传元组、列表、字典,给他们传入时加*或者**
‘‘‘
练习一

练习二、

技术分享
def lianxier(a):        #创建一个新的函数,函数名为lianxier,可以使用一个参数,参数名为a
    shuzi=0
    zifuchuan=0
    kongge=0
    qita=0
    for i in a:     #for循环取出每一个值
        if i.isdigit():         #判断循环的是不是数字,如果是给固定的局部变量shuzi+1
            shuzi+= 1
        elif i.isalpha():       #判断循环的是不是字符串,如果是给固定的局部变量zifuchuan+1
            zifuchuan += 1
        elif i.isspace():       #判断循环的是不是空格,如果是给固定的局部变量kongge+1
            kongge += 1
        else:               #循环的是其他的,给固定的局部变量qita+1
            qita += 1
    return 数字有:,shuzi,\t字符串有:,zifuchuan,\t空格有:,kongge,其他有:,qita             #返回数据的点用函数的使用者
print(lianxier(asdasd    1234(((())       #输出执行函数后的结果
执行结果:
(数字有:, 4, \t字符串有:, 6, \t空格有:, 4, 其他有:, 4)
练习二

练习三、

技术分享
def lianxisan(b):        #创建一个新的函数,函数名为lianxisan,可以使用一个参数,参数名为b
    if len(b) >= 6:             #判断b参数的程度是不是大于6,如果大于6给调用函数者返回 您输入的长度过长!
        return 您输入的长度过长!
    else:                    #调用函数者传进来的参数小于6,给调用函数者返回输入成功!
        return 输入成功!
print(lianxisan({1:2,2:3,3:4,4:5,5:6,6:7}))         #输出执行函数后的结果
执行结果:
您输入的长度过长!
练习三

练习四、

技术分享
def lianxisi(b):            #创建一个新的函数,函数名为lianxisi,可以使用一个参数,参数名为b
    for i in b:                     #for循环参数b
        if i.isspace():         #判断参数有没有空格,如果有空格就不在执行了,给调用函数者返回:对不起您输入了空格!
            return 对不起您输入了空格!
    return 输入成功!      #如果循环完毕没有空格给调用函数者返回:输入成功!
print(lianxisi(adsfsdafasd ))         #输出执行函数后的结果
执行结果:
对不起您输入了空格!
练习四

练习五、

技术分享
def lianxiwu(a):        #创建一个新的函数,函数名为lianxiwu,可以使用一个参数,参数名为a
    if type(a) == list:         #判断调用者传进来的参数是不是列表,如果不是返回:请传入列表!
        if len(a) > 2:              #满足上面的条件判断传进来的列表长度是不是大于2,如果大于2返回列表中的前两个元素
            return a[:2]
        else:       #判断等于或者小于2,返回列表元素
            return a
    else:
        return 请传入列表!
print(lianxiwu([1,2,3,4,5]))                     #输出执行函数后的结果
执行结果:
[1, 2]
练习五

练习六、

技术分享
def lianxiliu(a):        #创建一个新的函数,函数名为lianxiliu,可以使用一个参数,参数名为a
    li=[]           #定义一个空的列表
    if type(a) == list:         #判断调用函数者传进来的参数是不是列表
        for i in range(len(a)):         #使用range来for循环用户传进来参数的长度,找到索引
            if type(a[i]) == int:           #判断调用函数者传的列表中是数字,如果不是返回:请确保列表中全时数字!
                if a[i]%2 == 1:         #判断从索引开始到结束中的数字是奇数的添加到局部变量li列表中
                    li.append(i)
            else:
                return 请确保列表中全时数字!
    else:
        return 请传入列表!
    return li           #执行完毕函数后返回li列表
print(lianxiliu([1,2,3,4,55,66,77,88,11,33,22]))                     #输出执行函数后的结果
执行结果:
[0, 2, 4, 6, 8, 9]
练习六

练习七、

技术分享
def lianxiqi(a):        #创建一个新的函数,函数名为lianxiqi,可以使用一个参数,参数名为a
    b={}        #定义一个空的字典
    if type(a) == dict:     #判断调用函数者传进来的参数是不是字典类型的,如果不是返回:请传入字典!
        for k,v in a.items():   #for循环输出传进来字典的key和value。
            if len(v) > 2:          #判断传进来字典的value长度大于2的
                b[k] = v[:2]            #判断成功后将value长度大于2的改为value的前两位
            else:
                b[k] = v          #if判断长度小于或者等于2的不改变
    else:
        return 请传入字典!
    return b              #执行完毕函数后返回b字典。
print(lianxiqi({"k1": "v1v1", "k2": [11,22,33,44]}))         #输出执行函数后的结果
执行结果:
{k1: v1, k2: [11, 22]}
练习七

练习八、

技术分享
arg3=0      #定义的全局变量arg3。
def func(arg1,arg2,abc=0):        #定义了函数名和两个参数。
    cishu=abc
    if cishu <= 10:             #判断全局变量中的a数字是否小于或者等于10,如果大于10直接返回结果。
        if arg1 == 0:       #判断arg1=0
            pass                #如果arg1等于0什么都不干......
        global arg3         #更改全局变量arg3
        arg3 = arg1 + arg2          #arg3的结果等于arg1+arg2
        cishu += 1              #a每一次执行这个函数+1
        func(arg1=arg2,arg2=arg3,abc=cishu)        #再次调用本身这个函数并把本身现在的arg2和arg3当做参数进行下一次的执行
    return arg3     #执行完毕函数后返回斐波那契执行十次的结果。
print(func(arg1=0,arg2=1))         #输出执行函数后的结果
执行结果:
144
练习八

练习九、

技术分享
old_dict = {
    "#1":{ hostname:c1, cpu_count: 2, mem_capicity: 80 },
    "#2":{ hostname:c1, cpu_count: 2, mem_capicity: 80 },
    "#3":{ hostname:c1, cpu_count: 2, mem_capicity: 80 }
}
new_dict = {
    "#1":{ hostname:c1, cpu_count: 2, mem_capicity: 800 },
    "#3":{ hostname:c1, cpu_count: 2, mem_capicity: 80 },
    "#4":{ hostname:c2, cpu_count: 2, mem_capicity: 80 }
}
# old_set=set(old_dict)       #将字典改成集合
# new_set=set(new_dict)       #将字典改成集合
def dic(old,new):       #创建一个变量名称,并需要传入两个参数。
    if type(old) == dict and type(new) == dict:     #判断传进来的参数是不是全是字典格式的。
        old_set=set(old)         #将字典改成集合
        new_set=set(new)         #将字典改成集合
        a=old_set.difference(new_set)       #判断old_set中存在new_set中不存在的,将结果给变量b
        for i in a:         #循环new中有的old中没有的服务器名称:
            print(服务器,i,已经不存在是否删除?Y/N\t\t其配置为:\thostname:,old_dict[i][hostname],\tcpu_count:,old_dict[i][cpu_count],\tmem_capicity:,old_dict[i][mem_capicity])
            shuru1=input()          #等待用户输入y或者n。
            if shuru1.upper() == Y:   #用户输入的是y转成大写。
                    old_dict.pop(i)             #将old字典中的对用的服务器名称删除
            elif shuru1.upper() == N:      #用户输入的是n转成大写。
                pass                #什么都不做
            else:           #用户输入的其他的。
                print(请正确输入!)     #提示用户正确输入
                dic(old,new)            #函数本身重新调用本身函数
        dic2(old,new)       #执行完毕以上代码后执行dic2函数并将调用dic函数的参数传给dic2
    else:      #传进来的参数不是字典格式。
        return 您传入的格式不正确!         #结束函数返回传入的参数不正确
    return old      #整个函数执行完毕,将数据返回给调用函数者。
def dic2(old,new):
    old_set=set(old)         #将字典改成集合
    new_set=set(new)         #将字典改成集合
    b=new_set.difference(old_set)           #判断new_set中存在old_set中不存在的,将结果给变量b
    for i in b:         #循环old中有的new中没有的服务器名称:
        print(是否新建,i,Y/N?\t配置为:\thostname:,new_dict[i][hostname],\tcpu_count:,new_dict[i][cpu_count],\tnew_capicity:,new_dict[i][mem_capicity])#自定义输出
        shuru2=input()      #等待用户输入
        if shuru2.upper() == Y:   #用户输入的是y转成大写。
            old_dict[i] = new_dict[i]              #在old字典中添加对应的服务器名称和值
        elif shuru2.upper() == N:      #用户输入的是n转成大写。
            pass        #什么都不做
        else:           #用户输入的其他的。
            return 请正确输入!     #提示用户正确输入
            dic2(old,new)           #函数本身重新调用本身函数
    dic3(old,new)           #执行完毕以上代码后执行dic2函数并将调用dic函数的参数传给dic3
def dic3(old,new):
    for old_key in old:         #循环old字典中现有的key
        for new_key in new:         #循环new字典中现有的key
            if new_key == old_key :     #判断old循环的key和new循环的key是相同的。
                for old_key2,old_value in old[old_key].items():         #for循环取出old字典中对应key的value,value是字典所以使用items()方法取出第二层的key和value
                    for new_key2,new_value in new[new_key].items():         #for循环取出new字典中对应key的value,value是字典所以使用items()方法取出第二层的key和value
                        if old_key2 == new_key2:        #判断取出的key是相同的,如果不相同就跳过。重新循环new字典中对应的key下的value下的key
                            if old_value == new_value :         #判断value是一样的。
                                break           #跳出这次循环
                            else:   #key一样value不一样。
                                print(old_dic中,new_key,服务器的,old_key2,已被换掉,是否更新?Y/N)#自定义输入
                                shuru3=input()          #等待用户输入
                                if shuru3.lower() == y:       #用户输入的任何字母转换成小写,是y
                                    old[new_key][new_key2] = new_value      #是y修改old字典中对应的key的value下的key的值
                                elif shuru3.lower() == n:     #用户输入的任何字母转换成小写,是n
                                    pass            #什么都不做
                                else:           #用户输入的其他的任意东西
                                    print(对不起您的输入有误!)         #输出输入的有误
                                    dic3(old,new)           #函数本身重新调用本身函数
            else:             #判断old循环的key和new循环的key是不同的。
                continue            #跳过这一次循环,进行下一次new字典的循环
a=dic(old_dict,new_dict)        #函数执行完毕后将结果返回,我们将结果赋值给变量a
print(现有的服务器有:)       #自定义输出
for inkey in a:     #for循环a,因为是字典取出所有的key
    print(服务器+inkey+\t其参数为:hostname:+old_dict[inkey][hostname],\tcpu_count:,old_dict[inkey][cpu_count],\tmem_capicity,old_dict[inkey][mem_capicity])      #自定义输出。
执行结果:
C:\Python35\python.exe F:/oldboy-Python/py_code/task/task-3.py

服务器 #2 已经不存在是否删除?Y/N        其配置为:    hostname: c1     cpu_count: 2     mem_capicity: 80
y
是否新建 #4 Y/N?    配置为:    hostname: c2     cpu_count: 2     new_capicity: 80
y
old_dic中 #1 服务器的 mem_capicity 已被换掉 是否更新?Y/N
y
现有的服务器有:
服务器#4    其参数为:hostname:c2     cpu_count: 2     mem_capicity 80
服务器#3    其参数为:hostname:c1     cpu_count: 2     mem_capicity 80
服务器#1    其参数为:hostname:c1     cpu_count: 2     mem_capicity 800

Process finished with exit code 0
练习九

 

Python开发Day03(练习解答)

标签:

原文地址:http://www.cnblogs.com/WuYongQi/p/5471104.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!