python包含6种内奸的序列:列表、元组、字符串、Unicode字符串、buffer对象和xrange对象

列表和元组的主要区别在于,列表可以修改,元组则不能。

索引:

使用负数索引时,最后一个元素的位置编号是-1

下面的代码自己也有不明白的地方:

分片:可以使用分片操作来访问一定范围内的元素。

列表,支持相加;li.extend()批量增加

v1=[1,1]
v2=[2,2]
v3=v1+v2
v1.extend(v2)
print(v3)
print(v1)

推导式for循环嵌套:

data = []
for i in ['a','b']:
for j in [1,2,3]:
data.append((i,j))
print(data) data = [(i,j) for i in ['a','b'] for j in [1,2,3]]
print(data)

函数,函数名本质是一个变量

  函数基础:

    关键字传参和位置传参。两种方式可以混搭,但关键字传参一定要放到后面

    默认参数

    动态参数:在执行函数时,可以支持任意个参数 *args,内部处理自动打包成元组

def x(*args):
pass
x('n','ss')
li = ['kk','ii']
x(*li)

      **args,都必须用关键字传参   

def xx(**x1):
pass
xx(x='ww',v=123)
dic = {'name':'jack','age':18}
xx(**dic)

  混合使用

def func(*args,**kwargs):
pass
func(1,2,4,v='xx')
func(1,2,3)

 return:

'''
返回值:函数中未出现return,默认则为None
函数一旦遇到return则立即终止
return 后面未写值 则为None
return 1, 如果返回值加了","则返回类型是元组
'''
def get_count():
text = 'nihehifhieeo'
count = 0
for item in text:
if item == 'h':
count += 1
return count res = get_count()
print(res)

函数进阶:

  函数名本质是变量:

num = 123
age = 18
def func():
return 666
data_list = [num,age,func]
print(data_list) _list = [num,age,func()]
print(_list) def a():
pass
def b():
pass
def c():
pass data_func = [a,b,c]
for item in data_func:
item() dic_func = {
'1':a,
'2':b,
'3':c
}
dic_func['2']()
def login():
pass
def register():
pass
def show_user():
pass print("welcome to xxx system,1 login 2 register 3 show user list")
choice = input("please choice No")
if choice == '1':
login()
elif choice == '2':
register()
elif choice == '3':
show_user()
else:
sys.exit() '''
method 2:
'''
func_list = [login,register,show_user] if int(choice) in (0,len(func_list)):
func_list[int(choice)]()
else:
sys.exit() """
method 3
""" func_dict = {
"1":login,
"2":register,
"3":show_user
}
func = func_dict.get(choice)
if func == None:
print("error")
else:
func()
def f1(a):
pass
def f2(a,b=None):
pass
func_list = [f1,f2]
for item in func_list:
item(1)
"""
method parames can any type
"""
def f1(a,b,c,d,e,f):
pass
def f2():
pass
name = 'jack'
f1(1,name,['3',3],True,(2,),f2)

 变量作用域:

函数参数传递引用(内存地址):

关于默认参数,默认参数不要用可变类型:

def func(num,l=[]):
l.append(num)
return l
v1 = func(11)
v2 = func(22,[55,33])
v3 = func(44) print(v1) #[11, 44]
print(v2) #[55, 33, 22]
print(v3) #[11, 44]

函数高级:

  生成器函数,yield关键字是标志,只有被循环时才执行。平时用的较少,底层代码会用到

#生成器
def f():
print("-----")
yield 1
print("*****")
yield 2
#生成器对象
data = f()
for item in data:
print(item)
def create_num(max_num:int):
val = 0
while True:
if val == max_num:
return
yield val
val += 1 data = create_num(10)
for item in data:
print(item)

eval() 字符串编译成函数拿过来用

def f(arg):
print(arg)
data = "f('jjj')" eval(data)

jsonp类型的用eval()便捷

import requests

def jsonp_queryMoreNums(args):
print(args) res = requests.get(url="https://num.10010.com/NumApp/NumberCenter/qryNum?callback=jsonp_queryMoreNums")
# print(res.text)
# print(type(res.text)) eval(res.text.rstrip(";"))

闭包    装饰器    生成器

最新文章

  1. 11.Configure Many-to-Many(配置多对多关系)【Code-First系列】
  2. flex布局
  3. 一个servlet处理多个功能
  4. ML_R Kmeans
  5. PHP7安装笔记
  6. 维护没有源代码,float改成double
  7. 文件I/O(不带缓冲)之write函数
  8. 【模拟】【HDU1443】 Joseph
  9. 转: Apache开启gzip
  10. NLP 苏图南 打破自我设限 突破自我—在线播放—优酷网,视频高清在线观看
  11. 根据html生成Word文件,包含图片
  12. CY7C68013A控制传输
  13. 20175303 2018-2019-2 《Java程序设计》第7周学习总结
  14. KTV项目之3个ListView的跳转和加载歌手图片
  15. 清除 idea 缓存
  16. 在CentOS4上安装JMagick
  17. HDFS文件上传
  18. MyEclipse安装及破解步骤
  19. Unity3D中的弹道和移动目标提前量计算
  20. 关于在Android中访问和使用到上下文变量

热门文章

  1. 从原理剖析带你理解Stream
  2. CAD问题
  3. gem5 使用记录, 基于理解来写个最简单的计数器程序
  4. 聊聊 asp.net core 认证和授权
  5. 目标检测-SSD算法从零实现
  6. 《Win10——如何设置开机自启动项》
  7. 01 uniapp/微信小程序 项目day01
  8. 【学习笔记】前馈神经网络(ANN)
  9. 应用健康: Liveness 与 Readiness
  10. MySql的InnoDB的三层B+树可以存储两千万左右条数据的计算逻辑