day5作业

ezway ezway     2022-08-21     141

关键词:

练习:寻找差异

# 数据库中原有
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 }
}
# cmdb 新汇报的数据 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 } }

需要删除:?
需要新建:?
需要更新:?
注意:无需考虑内部元素是否改变,只要原来存在,新汇报也存在,就是需要更新

 答案:

#!usr/bin/evn python
# -*- coding:utf-8 -*-

#寻找差异

# 数据库中原有
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 }
}

# cmdb 新汇报的数据
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 }
}

updated_dict=old_dict
#dict的set
old_dict_set=set(old_dict.keys())
new_dict_set=set(new_dict.keys())

#交集 #1#3
old_new_intersection=old_dict_set.intersection(new_dict_set)

#需要删除
#old存在,new中不存在,old中要删除
#del #2 
old_dict1={}
old_new_intersection=old_dict_set.intersection(new_dict_set)
for j in old_new_intersection:
    old_dict1.setdefault(j,old_dict[j])
    #old_dict1[j]=old_dict[j]
print(old_dict1)

#old_dict_del=#2,#3
old_dict_del=old_dict_set.difference(new_dict_set)

#需要新建
#new中存在,old中不存在,old中添加
new_set=new_dict_set.difference(old_dict_set)
old_dict2=old_dict
for k in new_set:
    old_dict2[k]=new_dict[k]
print(old_dict2)

#需要更新
#注意:无需考虑内部元素是否改变,只要原来存在,新汇报也存在,就是需要更新
updated_dict=old_dict
old_dict_update=old_dict_set.intersection(new_dict_set)
for i in old_dict_update:
    updated_dict[i]=new_dict[i]
print(updated_dict)

 

练习题

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

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

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

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

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

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

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

1
2
3
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
 
PS:字典中的value只能是字符串或列表

8、写函数,利用递归获取斐波那契数列中的第 10 个数,并将该值返回给调用者。

答案:

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

(1)普通参数分为形式参数和实际参数;

(2)指定参数就是给函数一个特点的参数;

(3)默认参数就是在给函数设定好一个默认值,并且需要房子参数列表最后;

(4)动态参数就给函数一个带*(tuple or strings orlist)的参数或在带**(dict)的参数

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

#!usr/bin/evn python
# -*- coding:utf-8 -*-

def count_it(it):

    count=len(str(it))
    print(count)
count_it(22)

 

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

 

def whats_len(ob):
    length=len(ob)
    if length>5:
        print('大于5啦!')
    else:
        print('没事,还小着呢!')
whats_len([1,2,7])

 

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

def is_empty(ob):
    if type(ob)==str and ob=='':
        print('i am empty!')
    else:
        for i in ob:
            if i=='':
                print('这货是空的!')
            else:
                print('这里有东西!')
is_empty('')
is_empty([1,2,3,''])

 

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

def only2(ob):
    length=len(ob)
    if length>2:
        ob=ob[0:2]
        print(ob)
    else:
        print(ob)
    return ob
only2([1])
only2([1,3,2,23])

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

def odd_element(ob):
    list_new=[]
    length=len(ob)
    for i in range(len(ob)):
        if i%2==1:
            list_new.append(ob[i])
        else:
            pass
    return  list_new
print(odd_element([1,2,3,4,5]))

 

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

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

 

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

 

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


def dict_only2(ob):
    new_dic={}

    for k,v in dic.items():
        if len(v)>:
            new_dic[k]=v[0:2]
        else:
            pass
    return new_dic

print(dict_only2(dic))

 8、写函数,利用递归获取斐波那契数列中的第 10 个数,并将该值返回给调用者。

 

#!usr/bin/env python
# -*- coding:utf-8 -*-
#
# import
fib=[]
def fibonacci(depth,a1,a2):

    if depth!=11:
        a3 = a1 + a2
        fibonacci(depth + 1,a2,a3)
        fib.append(a1)
        print(a1)
        # print(a2)
        # print(a3)
        # print(fib)
#为什么写成:
    # else:
    #     fib.sort()
    #     print(fib)
    # 输出的结果是:[34, 21, 13, 8, 5, 3, 2, 1, 1, 0]
    # fib.sort()
    # print(fib)
        # print(depth)
    return depth
fibonacci(1,0,1)
# fib.sort()
# fib.reverse()
print(fib)

  

 

day5作业购物商城+atm

模拟实现一个ATM+购物商城程序   1.额度15000或自定义   2.实现购物商城,买东西加入购物车,调用信用卡接口结账   3.可以提现,手续费5%   4.每月22号出账单,每月10号为还款日,过期... 查看详情

beta冲刺-day5

这个作业属于哪个课程2021春软件工程实践|W班(福州大学)这个作业要求在哪里团队作业六——beta冲刺+事后诸葛亮团队名称unity从入门到入土这个作业的目标完成Beta冲刺参考文献《构建之法》成员进展221801402阿寒今日任务完成情... 查看详情

实践作业2:黑盒测试实践——小组任务分工day5

1、处理了学生信息管理系统运行的小细节2、总结了katalon的使用流程如下  a.在KatalonStudio中创建一个自动化测试项目.  b.创建一个测试案例,用来写入所有必要的测试步骤  c.编写自动化测试用例(使用Record-Playback功能). ... 查看详情

饱满骑士团队第六次作业—beta冲刺+事后诸葛亮:day5冲刺随笔

这个作业属于哪个课程2021春软件工程实践S班(福州大学)这个作业要求在哪里团队作业六——beta冲刺+事后诸葛亮团队名称饱满骑士这个作业的目标完成Beta冲刺其他参考文献无目录SCRUM成员描述代码签入截图Issue记录SCRUM会议图片PM... 查看详情

负责撰写实践作业3:白盒测试---细化明确任务day5

...郜昌磊、王俊杰、吴慧杰记录人:刘思佳会议议题:本次作业的分工以及初期安排  查看详情

day5.对文件的增删改查+三次登陆后锁定

作业1:对文件haproxy.conf进行增删改查:haproxy.conf原文件内容如下:globallog127.0.0.1local2daemonmaxconn256log127.0.0.1local2infodefaultslogglobalmodehttptimeoutconnect5000mstimeoutclient50000mstimeoutserver50000msoptiond 查看详情

王道c语言作业初级(代码片段)

王道C语言作业初级week1day1作业week1day2作业week1day3作业week1day4作业week2day5作业week1day1作业#include<stdio.h>intmain()printf("hellowangdao");return0;week1day2作业#include<stdio.h>intmain()inta,b;scan 查看详情

第七次作业

1、Beta阶段敏捷冲刺每日报告Beta敏捷冲刺每日报告——Day5Beta敏捷冲刺每日报告——Day4Beta敏捷冲刺每日报告——Day3Beta敏捷冲刺每日报告——Day2Beta敏捷冲刺每日报告——Day1MyGod--Beta版本前期报告2、Beta版本测试报告http://www.cnblog... 查看详情

day5

Sharejoyisadoublejoy,sharedsorrowishalfasorrow.prugeot   mercedes   ford  daughter  Naokohowfar   howoften  howsoon  howlongWhatcolorisyoupen?Whatnationalityareyou?Whattimeisit?nation&n 查看详情

day5

day5:今天学习了多重循环和函数的概念,对于多重循环程序的运作和编码方式不熟练,没有理解{}的运行方式和意义,以后要注意弄清楚。intmyabs(inta,intb){  intc;  if(a>=b) c=a-b;  else    c=b-a;  returnc;} 查看详情

五一day5(代码片段)

     五一 DAY5     V 点 1----n    E 边   /*GivenagraphwithNnodesandMunidirectionaledges.Eachedgee_i 查看详情

day5:vcp考试

Q81.Anadministratorneedstorecoverdiskspaceonapreviously-usedthinprovisionedvirtualdisk.ThevolumeswheretheadministratorneedstorecoverthediskblocksareonVAAI-compliantstoragearrays.Whichtwoactionsshouldt 查看详情

day5------------系统启动流程

一、引导顺序BIOS--------------------->MBR-------------------->bootloader------------------------>kernel------------------------>init找启动盘----------------->找装有操作系统的分区----------------->启动装载程序 查看详情

day5

模块介绍time&datetime模块randomossysshutiljson&picleshelvexml处理yaml处理configparserhashlibsubprocesslogging模块re正则表达式模块,用一砣代码实现了某个功能的代码集合。 类似于函数式编程和面向过程编程,函数式编程则完成一个功... 查看详情

day5基本类型

1,strip:去除,lstrip:leftstrip的简写,rstrip:rightstrip.name=‘33app3333‘----appprint(name.strip(‘3‘))----appprint(name.lstrip(‘3‘))----app3333print(name.rstrip(‘3‘))----33app2,startswith,endswith.(ˇ?ˇ)表示开始带着 查看详情

day5

__file__用于获取模块的相对路径,获取绝对路径的方法如下:os.path.abspath(__file__)   #----返回模块的绝对路径os.path.dirname(os.path.abspath(__file__))   #----返回模块所在的目录,相当于pwd命令__init__ 查看详情

day5

importjson#json串是一个字符串f=open(‘product.json‘,encoding=‘utf-8‘)#res=f.read()#product_dic=json.loads(res)#把json串,变成python的数据类型#print(json.load(f))#传一个文件对象,它会帮你读文件d=‘zll‘:‘addr‘:‘北京‘,‘age‘:28,‘ljj‘:‘a 查看详情

day5下

T1#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<queue>#include<cmath>usingnamespacestd;constintN=1010;intn,m,k,p;intto[N],nex[N];in 查看详情