Python学习记录day4

1.内置函数补充

callable(object)
检查对象object是否可调用
1、类是可以被调用的
2、实例是不可以被调用的,除非类中声明了__call__方法

def f1():
    print("test")

f2 = "test"

print(callable(f1))
print(callable(f2))
True
False

chr(i)
返回整数i对应的ASCII字符

print(chr(81))

print(chr(81))

odr(c)
参数c是一个ascii字符,返回值是对应的十进制整

print (ord(‘b‘))

print (ord(‘b‘))

随机验证码

import random
li = []
for i in range(5):
    temp = random.randrange(65,91)
    c = chr(temp)
    li.append(c)

result = "".join(li)
print(result)
 

compile(source, filename, mode[, flags[, dont_inherit]])
将source编译为代码或者AST对象。代码对象能够通过exec语句来执...
compile(source, filename, mode[, flags[, dont_inherit]])
中文说明:将source编译为代码或者AST对象。代码对象能够通过exec语句来执行或者eval()进行求值。
参数source:字符串或者AST(Abstract Syntax Trees)对象。
参数 filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
参数model:指定编译代码的种类。可以指定为 ‘exec’,’eval’,’single’。
参数flag和dont_inherit:这两个参数暂不介绍,可选参数。

版本:在python2.3、2.6、2.7、3.2中均有不同,使用时要引起注意,兼容python3

英文说明:

Compile the source into a code or AST object. Code objects can be executed by an exec statement or evaluated by a call to eval(). source can either be a string or an AST object. Refer to the ast module documentation for information on how to work with AST objects.
The filename argument should give the file from which the code was read; pass some recognizable value if it wasn’t read from a file (‘‘ is commonly used).
The mode argument specifies what kind of code must be compiled; it can be ‘exec‘ if source consists of a sequence of statements, ‘eval‘ if it consists of a single expression, or ‘single‘ if it consists of a single interactive statement (in the latter case, expression statements that evaluate to something other than None will be printed).
The optional arguments flags and dont_inherit control which future statements (see PEP 236) affect the compilation of source. If neither is present (or both are zero) the code is compiled with those future statements that are in effect in the code that is calling compile. If the flags argument is given and dont_inherit is not (or is zero) then the future statements specified by the flags argument are used in addition to those that would be used anyway. If dont_inherit is a non-zero integer then the flags argument is it – the future statements in effect around the call to compile are ignored.
Future statements are specified by bits which can be bitwise ORed together to specify multiple statements. The bitfield required to specify a given feature can be found as the compiler_flag attribute on the _Feature instance in the future module.
This function raises SyntaxError if the compiled source is invalid, and TypeError if the source contains null bytes.
Note When compiling a string with multi-line code in ‘single‘ or ‘eval‘ mode, input must be terminated by at least one newline character. This is to facilitate detection of incomplete and complete statements in the code module.
Changed in version 2.3: The flags and dont_inherit arguments were added.
Changed in version 2.6: Support for compiling AST objects.
Changed in version 2.7: Allowed use of Windows and Mac newlines. Also input in ‘exec‘ mode does not have to end in a newline anymore.

exec(r)
执行python代码,接收:代码或者字符串

exec(print("test"))

eval(s)
执行表达式,并且获取结果

eval(7*8)

dir(class)
快速查看,对象提供了哪些功能

dir(dict)

help(class)
获取帮助

help(dict)

divmod(d,d)
共:97,每页显示10条,需要多少页

n1 n2 = divmod(97, 10)

isinstance(instance,class)
用于判断,对象是否是类的实例

s = "test"
print(isinstance(s, str))

filter(函数, 可迭代对象)
循环第二个参数,让每个循环元素执行函数,如果函数返回值为True,则元素是合法的。

li = [ 1, 2, 3, 4 ]
ret = filter(None, li)
print(list(ret))

lamda()
默认返回结果为返回值

map(函数,可迭代的对象(可以for循环的东西))
可迭代对象每个元素应用到函数中,返回结果为列表。

filter()     #函数返回True,将元素添加到结果中
map()     #将函数返回值添加到结果中

globals()
所有的全局变量
locals()
所有的局部变量

hash(s)
转换成hash值,一般用于字典的key

len(s)
返回一个对象的长度

s = "字符"
print(len(s))
b = bytes(s, encoding = "utf-8")
print(len(b))

max([list])
返回列表中的最大值

li = [11, 22, 33]
r = max([li])

zip()
将列表的每列值组成一个无组

x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = zip(x, y, z)
print xyz
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

2.Alex鸡汤

推荐书:《林达看美国》

json.loads(s)
将一个字符串,转换成python的基本数据类型,字符串形式的字典必须是双引号引用key value

3.装饰器

装饰器,我的理解是在不影响原函数的情况下(包括执行过程,返回结果,返回值等),增加其它功能(原函数前或后),即达到在不修改原代码的前提下,实现增加的功能。

所以,其优点有:

1.代码修改量小,不影响原函数内部逻辑等;

2.不修改原函数代码,避免原功能因代码语法性错误;

3.灵活性强,在需要增加功能的函数前加简单代码就行;

#def outer(func):
#    print(123,func)
#def outer(func):
#    return "111"
def outer(func):
    def inner(*args,**kwargs):    #支持不定传参
        print("before")
        r = func(*args,**kwargs)    #返回原函数返回值
        return r        #返回原函数返回值
        print("after")
    return inner

# @ + 函数名
# 功能:
#    1. 自动执行outer函数并且将其下面的函数名f1当作参数传递
#    2. 将outer函数的返回值,重新赋值给f1

@outerdef f1():
    print("F1")
 
时间: 2024-09-30 20:37:40

Python学习记录day4的相关文章

Python学习记录day6

Python学习记录day6 学习 python Python学习记录day6 1.反射 2.常用模块 2.1 sys 2.2 os 2.3 hashlib 2.3 re 1.反射 反射:利用字符串的形式去对象(默认)中操作(寻找)成员 cat commons.py #!/usr/bin/env python#_*_coding:utf-8_*_''' * Created on 2016/12/3 21:54. * @author: Chinge_Yang.''' def login(): pr

Python学习记录day1

Python学习记录博客是本人记录学习python3过程中的一些记录和过程,日后也可以帮助自己温习. python优点: 1.Python入门简单,功能强大,适用性强: 2.开发效率高,第三方库强大且多: 3.Python无需考虑底层细节: 4.可移植性,跨平台: 5.可扩展性: 6.可嵌入性,Pthon可嵌入到C/C++程序中: python缺点: 1.速度慢,Python比C慢很多,比java也慢一点: 2.代码不能加密,源码是明文: 3.线程不能利用多 CPU 问题: python版本2和

Python学习记录day3

Python学习记录 day3 今天是银角大王武sir讲课.先回顾了上节课所学,然后讲到了面向对象思想. set set是一个无序且不重复,可嵌套的元素集合 class set(object):     """     set() -> new empty set object     set(iterable) -> new set object     Build an unordered collection of unique elements.     

python学习记录第五篇--遍历目录

#coding=utf-8'''@author: 简单遍历目录删除文件的小程序'''import os#查找文件操作def findFile(path): fileList=[] for rootPath,subRoot,fileName in os.walk(path): for sub in fileName: if os.path.isfile(os.path.join(rootPath,sub)): k=os.path.splitext(sub)[1].lower() if k in (

python学习记录第四篇--数据库

只要用到MySQLdb,使用时请先安装MySQLdb,百度上可以下载! #coding=utf-8'''@author: 使用python操作MySQL数据库'''import MySQLdb#import MySQLdb.cursorsconn=MySQLdb.connect(user='root',passwd='root') #connect共三个值,user,passwd,host,无密码且连接本地数据库时,可以都为空.cur=conn.cursor() #创建游标,使用游标进行数据库操

Python学习记录day5

title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 1.多层装饰器 多层装饰器的原理是装饰器装饰函数后其实也是一个函数这样又可以被装饰器装饰. 编译是从下至上进行的执行时是从上至下进行. #!/usr/bin/env python # _*_coding:utf-8_*_ ''' * Created on 2016/11/29 20:38. * @author: Chinge_Yang. ''' USER

Python学习记录-socket编程

Python学习记录-socket编程 学习 python socket Python学习记录-socket编程 1. OSI七层模型详解 2. Python socket 3. socket()函数 4. TCP socket通信流程 5. Python Internet 模块 1. OSI七层模型详解 以上图见:http://blog.csdn.net/yaopeng_2005/article/details/7064869 其它详情可参考:socket网络基础 2. Python sock

Python学习记录-2016-12-17

今日学习记录 模块: import os#导入os模块 import sys#导入sys模块 os.system("df -h")#执行df -h命令 cmd_res = os.popen("df -h").read()#将命令的返回结果赋值给cmd_res,如果不加入.read()会显示命令的返回加过在内存的位置 print(sys.path)#显示系统变量路径,一般个人模块位于site-packages下,系统模块位于lib下 print(sys.argu[2]

Python学习记录-2016-11-29

今日学习记录: 心灵鸡汤: 要有合适自己的目标,一个目标一个目标实现,切忌好高骛远: 最好的投资就是投资自己: 实现梦想 学习,学习,再学习: Talk is cheap. 从本身而言,余三十而立之年,从事测试行业7七年有余,一年半华为外包路由器,两年无线wifi测试,一年半网管软件测试,一年自动化测试经理,推行公司自动化测试进程,从开始的TCL,到现在的python,工欲善其事必先利其器,所以自己来学习,总体我认为我的目标是一直前进的,不断变化的,但是方向并没有大的错误,有些累,所以近期有些懈