1.拷贝

字符串和数字、赋值 id一样

import copy   #提供拷贝功能
copy.copy() #原来的和现在的一起修改,不用修改时用浅copy,节省内存,复制最外层
copy.deepcopy() #只修改现在的,复制所有,除最内层

2.集合

1).无序且不重复的集合
2).访问速度快
3).天生解决重复问题
s=set()  #创建空集合专用
s={,,,} s1=set(['alex','eric','tony']) #转换:可以是元组、列表、字符串 s1.add('alll') #增加元素,原集合
s1.update() #可增加多个元素 s2=s1.difference(['alex','eric'])#生成新的集合,删除相同元素,不改变原集合A-(AnB) print(s2)
s1.difference_update(['alex','eric']) #删除相同元素,修改原集合
s.discard() #移除指定元素 s2.pop() #.随机删除一个元素2.把元素赋值给ret,有返回值
print(s2)
s1.remove('alll') #移除指定的,
print(s1) old=set(old_dict.keys())
new=set(new_dict.keys())
updata_set=old.intersection(new) #取交集,并更新自己AnB
ret=old.isdisjoint(new) #有交集是False,没交集是True
old.issubset(new) #是否是子集
old.issuperset(new) #是否是父集
old.union(new) #取并集 deleat_set= old.symmetric_difference(updata_set) # 并-交,拿出所有不一样的 AuB-AnB add_set=new.symmetric_difference(updata_set) #并-交,

3.三元运算

用于简单的if语句

# r= if True else False   # r=值1 if 条件 else 值2
# print(r)

4.函数的返回值

def mail(user):
ret=True
try:
n=m #失败
except Exception:
ret=user
return ret #成功返回123,失败返回456 #返回值,结束子程序
ret=mail('xxx')
print(ret)

返回给mail()

4.1两个参数

def show(rr,yy=):  #默认参数yy=  #默认参数必须放在最后
print(rr,yy)
show(,) ##指定参数show(yy=,)

4.2动态参数

#动态参数  *arg 多个参数,默认输出是元组
# **arg 多个参数,默认输出是字典 show(n1=,n2=) 传参数要有key value
# *arg,**arg show(,,,n1=,n2=)前几个放进元组,后几个放进字典1.一个星在前,两个星放后面2.执行时按顺序
# l=[,,] d={'n1':,'n2':'hh'} show(*l,**d)
#动态参数实现字符串格式化
'''
s1='{0} is {1}'
l=['kk','ll']
result=s1.format(*l)
'''
'''
s1='{name} is {acter}'
l={'name':'kk','ll':'hh'}
result=s1.format(**l)
'''

4.3函数传参数

#函数传参,传引用。java,c#在形参前加ref或out,不加相当于再创建一份值

def fun(args):
args.append(123) li=[11,22]
fun(li)
print(li)

5.练习

5.1集合

# 数据库中原有
old_dict = {
"#1":{ 'hostname':'c1', 'cpu_count': , 'mem_capicity': },
"#2":{ 'hostname':'c1', 'cpu_count': , 'mem_capicity': }
"#3":{ 'hostname':'c1', 'cpu_count': , 'mem_capicity': }
} # cmdb 新汇报的数据
new_dict = {
"#1":{ 'hostname':'c1', 'cpu_count': , 'mem_capicity': },
"#3":{ 'hostname':'c1', 'cpu_count': , 'mem_capicity': }
"#4":{ 'hostname':'c2', 'cpu_count': , 'mem_capicity': }
}
m=[]
n=[]
for i in old_dict:
m.append(i)
for i in new_dict:
n.append(i) old_set=set(m)
new_set=set(n)
#更新
updata_set=old_set.intersection(new_dict) #取交集
#删除
del_set=old_set.symmetric_difference(updata_set)
#新建
new=new_set.symmetric_difference(updata_set)

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

# 、简述普通参数、指定参数、默认参数、动态参数的区别
# 普通参数:分为形参和实参
# 指定参数 :在实参中指定参数的值
# 默认参数:在形参中定义参数的默认值
# 动态参数:可接收任意数量,任意类型的参数
'''
def func(*args):
print args # 执行方式一
func(,,,,) # 执行方式二
li = [,,,,,,]
func(*li)
'''
'''
def func(**kwargs):
print args # 执行方式一
func(name='wupeiqi',age=) # 执行方式二
li = {'name':'wupeiqi', age:, 'gender':'male'}
func(**li)
'''
'''
#动态参数 *arg 多个参数,默认输出是元组
# **arg 多个参数,默认输出是字典 show(n1=,n2=) 传参数要有key value
# *arg,**arg show(,,,n1=,n2=)前几个放进元组,后几个放进字典1.一个星在前,两个星放后面2.执行时按顺序
# l=[,,] d={'n1':,'n2':'hh'} show(*l,**d)
'''

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

a='123ssdf  *_'
digital=
alphabet=
space=
others=
for i in a:
if i.isdigit():
digital+=
elif i.isalpha():
alphabet+=
elif i.isspace():
space+=
else:
others+=
print('digital=%d,alphabet=%d,space=%d,others=%d'%(digital,alphabet,space,others))

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

def str_len():
a=raw_input('请输入字符串')
if len(a)>5:
print('长度大于5')
else:
print('长度不大于5')
def list_len():
a=raw_input('请输入列表')
if len(a)>5:
print('长度大于5')
else:
print('长度不大于5')
def tuple_len():
a=raw_input('请输入字符串')
if len(a)>5:
print('长度大于5')
else:
print('长度不大于5')
'''  

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

def a():
b=raw_input('请输入字符串或列表或元组:')
if all(b)==True:
print('无空内容')
else:
print('有空内容')

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

def a():
b=[1,2,3,4]
if len(b)>2:
c=b[:2]
return c

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

def a():
b=[1,2,3,4,5,6]
c=[]
i=1
while i<=len(b):
c.append(b[i])
i+=2

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

def dir_updata():
dic={"k1": "v1v1", "k2": [11,22,33,44],}
for i,j in dic.items():
if len(j)>2:
dic[i]=j[:2]
return dic print(dir_updata())

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

def fun(k):
# while b[k]<30:
while k<9:
a=b[k]+b[k+1]
b.append(a)
fun(k+1)
return b
b=[0,1,]
print(fun(0))
print(b[9])

6.lambda 表达式

func=lambda a:a+1   #冒号前是参数,后面表达式,作为return值
ret=func(99)
print(ret)

7.字节和字符串的转换

 b=bytes(a,encoding='utf-8') #字符串转成字节
# c=str(b,encoding='utf-8') #字节转字符串
#一般字符串操作形成新的内容,列表,字典一般对自身进行操作
'''
for i in '刘讲座':
zijie=bytes(i,encoding='utf-8') #1.转化为字节,并制定编码方式
print(zijie)
for j in zijie: #16进制字节经for循环会转化为10进制
print(j)
print(bin(j)) #bin 10进制转2进制

8.enumerate可把列表转字典

相当于给列表加一列元素
# new_dic=dic(enumerate(li,1))

9.内置函数(不需要导入模块)

9.1  abs()

#绝对值

9.2  all([1,2,3,4])

#所有值是真才是真#假:0 None、空字符串、空列表、空字典、空元组是否为真

 #用bool查看是否为真
  any()  #一个为真就为真
 

9.3进制转换

bin()#二进制
hex()#10进制转16进制
oct()#10进制转8进制 #其他进制转10进制
i=int('0b11',base=2)
i=int('0o11',base=8)
i=int('0x11',base=16)

9.4  callable,是否可执行

f=lambda x:x+1
callable(f)==True#是否可执行

9.5

chr()#数字转ascii里的字符
ord()#ascii字符转数字

9.6 random随机数

import random
random.randint(1,99)#输出1到99的随机数
随机验证码:1.随机数2.chr
random.randrange(65,91) #大写字母
random.randrange(97,123) #小写字母
#产生验证码 import random temp=''
for i in range(6):
num=random.randrange(0,4) #每一位数字、小写、大写字母产生的概率(不依赖位数i)
if num==3: #数字产生的概率
rad1=random.randrange(0,10)
temp+=str(rad1)
elif num==1: #小写字母产生的概率
rad2=random.randrange(97,123)
c1=chr(rad2)
temp+=c1
else: #大写字母产生的概率
rad2=random.randrange(65,91)
c1=chr(rad2)
temp+=c1
print(temp)

9.7  divmod

r=divmod(10/3)返回商和余数(3,1)

9.8  eval、exec

eval('6*8')#计算字符串等式    #有返回值
exec('for i in range(10):print(i)') 3执行代码无返回值

9.9  filter #过滤筛选,符合条件留下

f1=lambda x:x>22
ret=filter(f1,[11,22,33,44]) #参数:函数,可迭代的对象
for i in ret:
print(i)

9.10    map #筛选,得结果,对所有数操作并返回值

ret=map(lambda x:x+1 if x%2==0 else x,[11,22,33,44])
for i in ret:
print(i)

9.11  round、sum、sorted

# round()#四舍五入
# sum()#求和
# sorted()#数字和字符串不能混合比较,数字从小到大排,字母按ascii码排

9.12  判断对象的类型  isinstance

li=[1,2]
r=isinstance(li,list)
print(r)

拷贝,集合,函数,enumerate,内置函数的更多相关文章

  1. day 14 三元运算符,列表字典推导式,递归,匿名函数,内置函数(排序,映射,过滤,合并)

    一.三元运算符 就是if.....else..... 语法糖 前提:if和else只有一条语句 #原始版 cmd=input('cmd') if cmd.isdigit(): print('1') e ...

  2. Python 入门基础12 --函数基础5 匿名函数、内置函数

    今日内容: 1.三元表达式 2.列表.元组生成式 | 字典生成式 3.递归 4.匿名函数 5.内置函数 一.三元表达式 三元运算符:就是 if...else... 语法糖 前提:if 和 else # ...

  3. python基础之函数式编程、匿名函数、内置函数

    一 函数式编程 不修改外部状态. 模仿数学里得函数进行编程. 用函数编程写出得代码相当精简. 可读性比较差. 例子: y=2*x+1 x=1 def test(x): return 2*x+1 tes ...

  4. day14(1)--递归、匿名函数、内置函数

    一.递归 定义:本质上是回溯和递推 回溯:询问答案的过程 递推:推出答案的过程 前提: 回溯到一个有结果的值开始递推 回溯与递推的条件要有规律 方式: 直接递归:自己调用自己 间接递归:通过别人来调用 ...

  5. python之三元表达式、列表推导、生成器表达式、递归、匿名函数、内置函数

    目录 一 三元表达式 二 列表推到 三 生成器表达式 四 递归 五 匿名函数 六 内置函数 一.三元表达式 def max(x,y): return x if x>y else y print( ...

  6. python协程函数、递归、匿名函数与内置函数使用、模块与包

    目录: 协程函数(yield生成器用法二) 面向过程编程 递归 匿名函数与内置函数的使用 模块 包 常用标准模块之re(正则表达式) 一.协程函数(yield生成器用法二) 1.生成器的语句形式 a. ...

  7. day15(生成器send方法,递归,匿名函数,内置函数)

    一,复习 ''' 1.带参装饰器 - 自定义 | wraps def wrap(info) def outer1(func): from functools import wraps @wraps(f ...

  8. python函数知识六 内置函数二、匿名函数与内置函数三(重要)

    19.内置函数二 abs():绝对值 lst = [1,2,-3,1,2,-5] print([abs(i) for i in lst]) enumerate("可迭代对象",&q ...

  9. Python函数05/内置函数/闭包

    Python函数05/内置函数/闭包 目录 Python函数05/内置函数/闭包 内容大纲 1.内置函数(二) 2.匿名函数及内置函数(重要) 3.闭包 4.今日总结 5.今日练习 内容大纲 1.内置 ...

  10. day03 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ...

随机推荐

  1. BZOJ 4423: [AMPPZ2013]Bytehattan

    Sol 对偶图+并查集. 思路非常好,将网格图转化成对偶图,在原图中删掉一条边,相当于在对偶图中连上一条边(其实就是网格的格点相互连边),每次加边用并查集维护就可以了. 哦对,还要注意边界就是网格外面 ...

  2. 一个IP多个https站点配置

    在一台主机上放置一个https网站,究竟该怎么配置?对于IIS和Apache以及Nginx等不同的服务器,方法是不同的,网上有很多教程,在此就不再赘述了. 至于一台主机,如何配置多个https网站呢? ...

  3. PHP输出控制(Output Control)函数

    ob_start 此函数将打开输出缓冲.当输出缓冲激活后,脚本将不会输出内容(除http标头外),相反需要输出的内容被存储在内部缓冲区中. 内部缓冲区的内容可以用 ob_get_contents() ...

  4. django操作数据库之查询F,Q操作 和 seach搜索功能

    # F 使用查询条件的值 # # from django.db.models import F # models.Tb1.objects.update(num=F('num')+1) # Q 构建搜索 ...

  5. Java web中为什么要用Service接口和DAO接口?

    面向接口:依赖倒转原理----使用service接口的原因是为了让表示层不依赖于业务层的具体实现,使用dao接口的原理也是如此,而且便于spring ioc容器,当修改dao层,时不需要修改servi ...

  6. Js 的 this 是什么

    this指的是调用函数的那个对象,谁调用函数,谁就是this 更多: http://www.cnblogs.com/justany/archive/2012/11/01/the_keyword_thi ...

  7. Centos安装firefox/chrome

    centos安装chrome:去官网下载chrome安装包(xxx.rpm),带软件安装工具的系统双击该xxx.rpm就能自动安装,或者sudo rpm -i xxx.rpm安装. centos卸载自 ...

  8. KVC 与 KVO 理解

    KVC 与 KVO 是 Objective C 的关键概念,个人认为必须理解的东西,下面是实例讲解. Key-Value Coding (KVC) KVC,即是指 NSKeyValueCoding,一 ...

  9. TCP三次握手原理详解

    TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族. 从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层.网络层.传输层.应用层. TCP协议:即传输控制 ...

  10. 如何在maven中添加本地jar包

    mvn install:install-file -DgroupId=mytest-DartifactId=test-Dversion=1.1 -Dpackaging=jar -Dfile=d:\te ...