函数 迭代器 生成器 内置函数 匿名函数

'''
#可迭代对象: str,list,dict,tuple,set,range
# 文件句柄:是迭代器.
# with open('01 今日内容大纲', encoding='utf-8') as f1:
# f1.read()
# print('__iter__' in dir(f1))
# print('__next__' in dir(f1))
# l1 = [1, 2, 3]
# from collections import Iterable
# from collections import Iterator
# print(isinstance(l1,Iterable))
# print(isinstance(l1,Iterator))
# print(isinstance(l1,list))
'''



l1 = []
for i in range(1,14):
l1.append(i)
print(l1)
l1 = []
for i in range(1,14):
l1.append('python%d期' % i)
print(l1)
列表推导式
l2 = [i for i in range(1, 14)]
[变量(加工后的变量) for 变量 in iterable] 循环模式
print(l2)
l3 = [ 'python%s期' % i for i in range(1, 14)]
print(l3)
优势:
1,节省代码,一行搞定.
2,看着高大上.
缺点:
,很差排错.
总体:
凡是用列表推导式构造的列表对象,用其余方式均可构建.,很是复杂的列表,列表推导式是构建不出的,
列表推导式比较有魔性.
构建一个列表:
['技师0号','技师1号'... '技师15号']
print(['技师%s号' % i for i in range(16)])
['护士1号', '护士3号','护士5号', ...,'护士13号']
print(['护士%s号' % i for i in range(1, 14, 2)])

分类:
[变量(加工后的变量) for 变量 in iterable] 循环模式
[变量(加工后的变量) for 变量 in iterable if 条件] 筛选模式
l1 = [i for i in range(1, 31) if i % 3 == 0]
print(l1)

10之内全部数的平方
print([i*i for i in range(11)])

30之内全部能被3整除的数的平方
print([i**2 for i in range(31) if i % 3 == 0])

100 之内全部的奇数.
print([i for i in range(1,101,2)])
print([i for i in range(101) if i % 2 == 1])

生成器表达式
l1 = ['python%s期' % i for i in range(1,14)]
print(l1)

g_obj = ('python%s期' % i for i in range(1,14)) # 循环模式
g_obj1 = ('python%s期' % i for i in range(1,14) if i % 2 == 0) # 循环模式
print(g_obj)
print(g_obj.__next__())
print(g_obj.__next__())
print(g_obj.__next__())
print(g_obj.__next__())
for i in g_obj1:
print(i)


生成器:两种方式:
生成器函数. yield
生成器表达式


为何有生成器:
生成器自己是本身用python代码构建的,这样就知足了个性化需求,知足之后你工做中须要.
def func():
print(111)
yield 222
def func2():
print(333)
yield 333

names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
l2 = [name for i in names for name in i if name.count('e') == 2]
l1 = []
for i in names:
for name in i:
if name.count('e') == 2:
l1.append(name)
print(l1)
print(l2)

mcase = {'a': 10, 'b': 34}
print({mcase[i]: i for i in mcase})

内置函数(1)
目前学过的内置函数都有什么样的呢
'''
print()
input()
range()
len()
max()
min()
open()
type()
int()
str()
list()
dict()
set()
dir()
tuple()
bool()
id()
iter()
next()
isinstance()

'''
上面这些大概就是目前咱们以前学过的内置函数了
内置函数什么意思呢?
内置函数: 一些经常使用的功能,python都给你封装好了,供你直接使用.
##内置函数: 一些经常使用的功能,python都给你封装好了,供你直接使用1.1做用域相关#locals: 函数会以字典的类型返回当前位置的所有局部变量.# globals: 函数以字典的类型返回所有全局变量#例子示范:a = 1b = 2print(locals())print(globals())#这两个同样,由于是全局执行的##################################################def func (argv):    c = 2    print(locals())    print(globals())func(3)#这两个不同##其余相关#字符串类型代码的执行   eval , exec ,complie# ***  eval: 执行字符串类型的代码,并返回最终结果.print(eval("2+2"))     ##4n = 81print(eval("n + 4"))     ##85eval('print(666)')       ###666## exec :执行字符串类型的代码.s = """for i in [1,2,3]:    print(i)"""exec(s)              ###结果是 1  2  3#compile: 将字符串类型的代码编译, 代码对象可以经过exec语句来执行或者eval()进行求值##1.2.2 输入输出相关  input ,print#  *** 函数接收一个标准输入数据,返回为string 类型.# ***   print:打印输出print(1,2,3,sep='|')       #设置每一个元素的链接符   sep = '|'print(666 ,end=' ')         #end = '\n'  默认换行print(555)f1 = open('log',encoding='utf-8',mode='w')print('随便写的内容',file=f1)f1.close()#1.2.3 内存相关  hash  id# ** hash: 获取一个对象(可哈希对象:int,str,Bool,tuple)的哈希值print(hash('name'))print(hash(7117817419752622577))print(hash('name1'))print(hash('name2'))print(hash('name3'))print(hash(100))print(hash(1))print(hash(True))# ** id :用于获取对象的内存地址.l1 = [i for i in range(100) if i % 2 == 1]print(l1)count = 0for i in l1:    if i ==51:        print(count)    count +=1#1.2.3 文件操做相关# open:函数打开一个文件,建立一个file 对象,相关的方法才能够调用它进行读写.# 1.2.4 模块相关  __import__#__import__  :函数用于动态加载类和函数.#1.2.5帮助#help :函数用于查看函数或者模块用途的详细说明print(help(str))#1.2.6 调用相关# ** callable: 函数用于检查一个对象是不是可调用的. 若是返回True ,object仍然可能调用失败;但若是返回False,调用对象ojbect 绝对不会成功def func1():    print(111)a = 666print(callable(a))print(callable(func1))     ###检查函数是否能够被调用
相关文章
相关标签/搜索