码迷,mamicode.com
首页 > 编程语言 > 详细

python_10

时间:2019-03-08 23:18:31      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:十六进制   求和   面试   flush   3.x   pen   二进制   hand   函数   

生成器:

  生成器的获取补充:

    send()和next()效果一样,

    yield时可以使用赋值形式接收send传过来的值

    send获取下一个值的效果和next基本一致

    只是在获取下一个值的时候,给你上一个yield传递数据

    注意事项:

      第一次使用生成器需要预激活,

      第一次取值需要使用next

      最后一个yield不能接收外部值

  在python3.x中增加了field form a:等于取值不惜要一个一个返回,但是外边可以一个一个接收

 

 

推导式:

  列表推导式:

    变量名 = [i for i in range(10)]:会循环打印i

  生成器表达式:

    只是在列表推导式中把中括号换成小括号

  他们的不同:

    返回值不同

    生成器几乎不占用内存

  推导式细化:

    列表推导式:

      [和元素相关的操作 for 元素 in 可迭代对象 ] --遍历

      [满足条件时的操作 for 元素 in 可迭代对象 if 条件语句] -- 条件筛选

  多层嵌套:

    et = [for lst in name for name in lis if name.count(‘e‘) == 2]

  字典推导式:

    macse_frepuency = {macase[k]:k  for k in macse}

  结合推导式:

    自带结果去重

    squared = {x**2 for x in[1,-1,2]}

句柄:

  handler(操纵杆),文件操作符,文件句柄,文件对象

 

    

面试题:

 def demo():
for i in range(4):
yield i
g1=(i for i in g)
g2=(i for i in g1)

print(list(g1)) 到这里才开始执行
print(list(g2)) g1已经变成了生成器,值已经给我list[g1],所以list[g2]已经取不到值了


def add(n,i):
return n+1

def test():
for i in range(4)
yield i

g = test()
for n in [1,10]:
g = (add(n,i) for i in g)

print(list(g))


内置函数:

,某个方法属于某个数据类型的变量,就用,调用
如果某个方法不依赖与任何数据类型,就直接调用 -- 内置函数和自定义函数

作用域:
locals() :返回本地作用域中的所有名字
golbals() :返回全局作用域中的所有名字

迭代器和生成器相关的:
迭代器 = 迭代器.__next__() --> 迭代器 = next(迭代器)
迭代器 = 迭代器.__iter__() --> 迭代器 = iter(可迭代的)
range(1,11,2) ps:是可迭代你的不是迭代器

其他:
dir([]) :查看一个变量拥有的方法
callable(变量名) :判断是否可以被调用,调用就是向函数调用之类的
help(类型) :不需要打印,他会自己打印,返回和类型相关的所有方法和方法用法,和源码差不多
__import__() --> import :导入一个模块

文件:
open() :writ(写)adle(能不能)
open() :read(读)adle(能不能)

内存相关:
hash(): 如果输出了代表可哈希,报错则不可哈希
对于可以hash的数据相同的值的哈希值在一次的程序执行过程中是不变的

id() :内存地址

输入和输出:
input()

print() :
print(‘123‘,end=‘‘):end默认参数是回车,默认不是回车时就不会换行
print(‘1,2,3‘,sep‘|‘)指定输出多个值之间的分隔符
f = open(‘文件名‘,‘w‘)
print(‘aaa‘,file=f)
f.close
不会直接在控制台输出,会输出到文件

打印进度条:
for i in range(0,101,2):
time.sleep(0.1)
char_num = i//2
per_str = ‘\r%s%%:%s\n‘ % (i,‘*‘*char_num) if i == 100 else ‘\r%s%% : %s‘%(i,‘*‘*char_num)
print(per_str,end=‘‘,flush = True)
progress Bar 模块: 打印进度条的

字符串类型代码的执行:
都可以执行一段字符串类型的代码:
exec():
适合处理简单的流程控制
没有返回值

eval():
有结果的简单计算
有返回值,只能用在你明确知道你要执行的代码时什么,

compile():
将字符串类型的代码编译,代码对象通过exec和eval实现

single:
交互类的,执行还是使用exec

复数 -- complex:

实数 : 有理数:
有限循环小数之类的
无理数:
无限不循环小数

虚数:
虚无缥缈的数
几j,比如12j
5+12j == 复合的数 == 复数

浮点数:
小数:
浮点数包括:
有限循环小数
无限循环小数

无限不循环小数

354.123 = 3.54123*2 = 35.4123*10

小数特别长的时候就不准了,因为10进制转2进制时出现偏差
进制转换:
bin():二进制
0b
oct():八进制
0o
hex():十六进制
0x
数学运算:
abs():
求绝对值

divmod():
div:除法
moed:取余
接收两个参数,返回值也是两个数,第一个数是删,第二个数是余数

round():
精确值用的,如(3.1415926,2)结果:3.14

pow():
求幂运算的,传入两个参数(2,3)
幂运算后取余(2,3,3)

sum():求和
必须给一个可迭代的
后边可以传一个start参数,不能用关键字传参,前边求和以后加上后边的值

min():计算最小值
不一定可迭代,可以指定关键字参数key=abs,key可根据传入的方法进行对比

max():计算最大值


 

python_10

标签:十六进制   求和   面试   flush   3.x   pen   二进制   hand   函数   

原文地址:https://www.cnblogs.com/aikang525/p/10498745.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!