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. STM32F103ZET6 用定时器级联方式输出特定数目的PWM(转载)

    STM32F103ZET6里共有8个定时器,其中高级定时器有TIM1-TIM5.TIM8,共6个.这里需要使用定时器的级联功能,ST的RM0008 REV12的P388和P399页上有说明对于特定的定 ...

  2. python入门教程链接

    python安装 选择 2.7及以上版本 linux: 一般都自带 windows: https://www.python.org/downloads/windows/ mac os: https:/ ...

  3. 数据库视图 (View)和EntityFramework Code First结合使用

    问题来源: 项目需要进行查询操作,会涉及多表间的联合查询,使用Entity Framework会牵涉到效率问题,为增加查询速度,所以使用数据库视图技术,综合来讲是将Model类映射到数据库View. ...

  4. SQL 执行计划(一)

    缓存执行计划  SQL Server 2008提供了一些服务器对象来分析执行计划Sys.dm_exec_cached_plans:    包含缓存的执行计划,每个执行计划对应一行.Sys.dm_exe ...

  5. Java Statement和PreparedStatement性能测试(转)

    本文转载自http://blog.csdn.net/liubo5005/article/details/7239935 先上代码: import java.sql.Connection; import ...

  6. NGUI 滑动页(UIToggle和UIToggledObjects)

    1.NGUI->Create->Scroll View 2.给Scroll View添加一个 UIGrid,自己设置Arragement(横向竖向) 3.给Grid添加元素 4.给元素添加 ...

  7. Semaphore(信号量)

    Semaphore msdn介绍: 限制可同时访问某一资源或资源池的线程数. 命名空间: System.Threading 程序集: System(在 System.dll 中) 通俗理解: 1:宾馆 ...

  8. 回调函数中使用MFC类的成员或对话框控件的简单方法

    在MFC的很多程序中,常常需要在回调函数中调用MFC类的类成员变量.类成员函数,亦或者对话框控件的句柄.由于回调函数是基于C编程的Windows SDK的技术,而类成员又有this指针客观条件限制.. ...

  9. JS 异步加载的方法

    (1) defer,只支持IE : <script type="text/javascript" defer="defer"> </scrip ...

  10. struts2环境配置

    struts2环境配置 struts2框架,大多数框架都在使用.由于工作需要,开始做Java项目.先学个struts2. 一.下载struts2 有好多版本,我下载的是struts-2.2.1.1. ...