Learn_Day6 lambda表达式、内置函数、open 函数

上节内容补充
1、if isinstance(变量名, 数据类型)   判断变量为什么数据类型
2、在函数中,传递参数的时候传递的是引用
3、在函数中,一旦遇到等号,重新在内存中创建

lambda表达式:
可以写简单的函数,f1 = f2, f3 = f4
 1 # 1
 2 def f1():
 3     return 123
 4 print(f1, f1())
 5 # <function f1 at 0x10217c950> 123
 6 f2 = lambda: 123
 7 print(f2, f2())
 8 # <function <lambda> at 0x10217c9d8> 123
 9 
10 # 2
11 def f3(a1, a2):
12     return a1 + a2
13 print(f3, f3(1, 2))
14 # <function f3 at 0x10217ca60> 3
15 f4 = lambda a1, a2: a1 + a2
16 print(f4, f4(1, 2))
17 # <function <lambda> at 0x10217cae8> 3
lambda 表达式

内置函数:
abs   绝对值
# 绝对值
a = abs(-1)
print("1.abs ==>> ", a)
# 1.abs ==>>  1
all    循环参数,若每一个都为真,返回True,否则返回False(0,None,False,””,[],()都是假)
# 循环参数,若每一个都为真,返回True,否则返回False
a = all(["", 11, "jksf"])
print("2.all ==>> ", a)
# 2.all ==>>  False
any    循环参数,若有一个都为真,返回True,否则返回False(0,None,False,””,[],()都是假)
# 循环参数,若有一个都为真,返回True,否则返回False
a = any(["", 11, "jksf"])
print("3.any ==>> ", a)
# 3.any ==>>  True
ascii(对象)    到对象的类中寻找__repr__方法,获取返回值
# 到对象的类中寻找__repr__方法,获取返回值
class Foo():
    def __repr__(self):
        return "hello"
obj = Foo()
r = ascii(obj)
print("4.obj ==>> ", r)
# 4.obj ==>>  hello
bin    二进制
# 二进制
a = bin(10)
print("5.bin ==>> ", a)
# 5.bin ==>>  0b1010
oct    八进制
# 八进制
a = oct(10)
print("6.oct ==>> ", a)
# 6.oct ==>>  0o12
int    十进制
# 十进制
a = int(10)
print("7.int ==>> ", a)
# 7.int ==>>  10
hex    十六进制
# 十六进制
a = hex(10)
print("8.hex ==>> ", a)
# 8.hex ==>>  0xa
bool    布尔值,判断真假
# 布尔值,判断真假
a = bool("")
b = bool(" ")
print("9.bool ==>> ", "a:", a, "b:", b)
# 9.bool ==>>  a: False b: True
bytearray    字节列表
#  字节列表
a = bytearray("一个", encoding="utf-8")
print("11.bytearray ==>> ", a)
# 11.bytearray ==>>  bytearray(b'\xe4\xb8\x80\xe4\xb8\xaa')
bytes    字节
# 字节
a = bytes("一个", encoding="utf-8")
print("10.bytes ==>> ", a)
# 10.bytes ==>>  b'\xe4\xb8\x80\xe4\xb8\xaa'
chr();ord():    在ASCIIA码表中字符与十进制互相转换chr():十进制(数字转换为字母);ord():字符(字母转换为数字)
a = chr(65)
b = ord("F")
print(a,b) # A 70

 

# 实例:随机验证码
import random

temp = ""

for i in range(6):
    # 生成0-9的随机数
    num = random.randrange(0, 10)
    # 生成的数字为3或者7的时候
    if num == 3 or num == 7:
        # 生成0 - 9的随机数
        rad1 = random.randrange(0, 10)
        # 将随机数转换成字符串
        c1 = str(rad1)
        temp += c1
    else:  # 否则
        # 生成65-90的随机数
        rad2 = random.randrange(65, 91)
        # 将随机数转换成大写字母
        c2 = chr(rad2)
        temp += c2

print(temp)
callable    检查能否被执行,调用
# 检测能否被执行,调用
def f1():
    pass
f2 = 1223
a = callable(f1)
b = callable(f2)
print("12.callable ==>> ", "a:", a, "b:", b)
# 12.callable ==>>  a: True b: False
compile    编译
exec    执行Python代码或字符串,接受代码或者表达式,无返回值
eval    执行表达式病获取结果,有返回值
 1 # compile()  # 编译
 2 exec()  # 执行Python代码或字符串,接受代码或表达式,无返值
 3 s = "print(123)"
 4 r = compile(s,"<string>","exec")  # 第三位为编译模式,single:单行;eval:表达式;exec:与python一样的代码
 5 print(r)  # <code object <module> at 0x101337ed0, file "<string>", line 1>
 6 # 执行python代码
 7 exec(r)
 8 
 9 # eval()  # 执行表达式并获取结果,有返回值,
10 s = "8*8"
11 ret = eval(s)
12 print(ret)  # 64
13 """
# compile(),# exec(),# eval()
dict    字典
dir    快速查看对象提供了哪些功能
help    快速查看对象的帮助信息 
divmod    计算用于得出商,余(多用于分页)
# 计算用于得出商,余
a = divmod(10, 3)
print("13.divmod ==>> ", a)
# 13.divmod ==>>  (3, 1)
filter    循环第二个参数里面的每一个元素并执行函数,如果返回值为True,表示元素合法(用作筛选,过滤)# 返回值为true,将元素添加到结果中
def f2(a):
    if a > 22:
        return True
list_1 = [11, 22, 33, 44, 55]
ret = filter(f2, list_1)
print(list(ret))
# [33, 44, 55]

# 上述可写成lambda表达式为:
list_1 = [11, 22, 33, 44, 55]
result = filter(lambda a: a > 22, list_1)
print(list(result))
# [33, 44, 55]
map    (函数,可迭代的对象(即可以for循环的东西))  # 数据等批量处理 # 将函数返回值添加到结果中
li = [11, 22, 33, 44, 55]
def f1(a):
    return a + 100
result = map(f1,li)
print(list(result))
# [111, 122, 133, 144, 155]

# 上述可写成lambda表达式为:
li = [11, 22, 33, 44, 55]
result = map(lambda a: a + 100, li)
print(list(result))
# [111, 122, 133, 144, 155] 
frozenset    等同于冻结的set
globals    获取全局变量
locals    获取局部变量
hash    用于Python内部,获取字典key的hash值,可以快速找到,占用内存小
id    查看内存地址
input    等待用户输入
int    强制转换为整数(默认十进制)
isinstance    查看某一个对象是否为另一个对象的实例
issubclass    查看某一个类是否为另一个类的派生类(子类)
iter    创建一个可以被迭代的对象
next    取迭代的值
1 # iter,# next
2 obj = iter([11, 22, 33, 44])
3 print("14.iter ==>> ", obj)
4 # 14.iter ==>>  <list_iterator object at 0x102079c50>
5 
6 r = next(obj)
7 print("15.next ==>> ", r)
8 # 15.next ==>>  11
# iter,# next
len    查看长度:Python2+中按照字节计算;Python3+中按照字符计算
list    返回列表
max    求最大值
min    求最小值
sum()  # 求和
memoryview    类:与内存地址相关
object    类:所有类的副类
open    对文件进行操作
ord    把一个字符串表示的字符转换为字符相对应的整数,适用于UNICODE字符
pow     求指数:平方,次方等
print    输出结果
range    范围
repr    执行类中的__repr__方法
reversed    反转
round    四舍五入
set    集合
slice     切片
sorted     排序(执行类内部的sort方法)
str    字符串
tuple    元组
type    类型
vars    获取当前模块可使用变量
zip    #
# 1
l1 = ["I", 11, 22, 33]
l2 = ["am", 44, 55, 66]
l3 = ["R.H", 77, 88, 99]
r = zip(l1, l2, l3)
temp = list(r)[0]
ret = " ".join(temp)
print("16.zip ==>> ", "r:", r, "ret:", ret)
# 16.zip ==>>  I am R.H
# 2
l1 = ["I", 11, 22, 33]
l2 = ["am", 44, 55, 66]
l3 = ["R.H", 77, 88, 99]
r = zip(l1, l2, l3)
l = []
for i in r:
    l.append(i)
print("16.zip ==>> ", l)
# 16.zip ==>>  [('I', 'am', 'R.H'), (11, 44, 77), (22, 55, 88), (33, 66, 99)]
__import__()  # 倒入模块
loads()  # 将字符串转换成Python的基本数据类型

open函数:
一、打开文件:(两种方式)
    1、f = open("文件名", '打开方式')
    2、with open("文件名", '打开方式', encoding="uttf-8") as f:
    打开模式:
        # 'r'只读文件
        # 'w'只写文件(文件不存在创建文件,文件存在清空后写入,不进行额外操作只打开也清空)
        # 'a'追加(文件最后)
        # 'x'创建(文件存在报错,不存在创建并写入内容)
        # 'r+'可读可写,默认从最后一位写入 ==>> 读写(win默认打开方式为gbk)
        # 'w+'可写可读(清空后写入) ==>> 写读
        # 'a+'可写可读(文件最后追加) ==>> 写读
        # 'x+'可写可读,文件存在报错,不存在创建并写入内容 ==>> 写读
        # 'rb'按字节读取文件
        # 'wb'按字节写文件(清空后写入)
        # 'ab'按字节追加(文件最后)
        # 'xb'文件存在报错,不存在创建并按字节写入内容
        # 'r+b' , 'w+b' , 'a+b' ,  'x+b' 用法同'r+'等一样,只是按字节读取、写入
     注:用with可以一次打开多个文件
    with open("文件名", '打开方式', encoding="uttf-8") as f1, open("文件名", '打开方式', encoding="uttf-8") as f2:
1 # 1-1
2 f = open("ha.txt")  # 打开文件 ==>> 打开方式默认"只读"
3 data = f.read()  # 读取文件
4 f.close()  # 关闭文件
5 print(data)  # 输出
6 # 1-2
7 f = open("ha2.txt", "w")
8 f.write("121111111111")
9 f.close()
View Code
二、操作文件:
    read()  # 无参数,读全部,有参数:b按字节;无b按字符
    tell()  # 获取当前指针位置(字节)
    seek()  # 指针跳转到指定位置(字节)
    write()  # 写数据:有b按字节,无b按字符
    close()  # 关闭
    fileno  # 文件描述符
    flush  # 强刷
    readbale  # 判断是否可读
    readline  # 仅读取一行
    truncate  # 截断数据(指针后内容清空)
    for line in **: #循环每一行
三、关闭文件:
    1、f.close
    2、用with打开操作完成自动关闭
 
posted @ 2017-02-07 22:53  Grisom  阅读(211)  评论(0编辑  收藏  举报