dir(obj) # 简单的列出对象obj所包含的方法名称,返回一个字符串列表help(obj.func) # 查询obj.func的具体介绍和用法
if type(L) == type([]): print("L is list")if type(L) == list: print("L is list")if isinstance(L, list): print("L is list")
# 哈希类型,即在原地不能改变的变量类型,不可变类型。可利用hash函数查看其hash值,也可以作为字典的key "数字类型:int, float, decimal.Decimal, fractions.Fraction, complex" "字符串类型:str, bytes" "元组:tuple" "冻结集合:frozenset" "布尔类型:True, False" "None"# 不可hash类型:原地可变类型:list、dict和set。它们不可以作为字典的key。
1234, -1234, 0, 999999999 # 整数1.23, 1., 3.14e-10, 4E210, 4.0e+210 # 浮点数0o177, 0x9ff, 0X9FF, 0b101010 # 八进制、十六进制、二进制数字3+4j, 3.0+4.0j, 3J # 复数常量,也可以用complex(real, image)来创建hex(I), oct(I), bin(I) # 将十进制数转化为十六进制、八进制、二进制表示的“字符串”int(str, base) # 将字符串转化为整数,base为进制数# 2.x中,有两种整数类型:一般整数(32位)和长整数(无穷精度)。可以用l或L结尾,迫使一般整数成为长整数float('inf'), float('-inf'), float('nan') # 无穷大, 无穷小, 非数
yield x # 生成器函数发送协议lambda args: expression # 生成匿名函数x if y else z # 三元选择表达式x and y, x or y, not x # 逻辑与、逻辑或、逻辑非x in y, x not in y # 成员对象测试x is y, x is not y # 对象实体测试x<y, x<=y, x>y, x>=y, x==y, x!=y # 大小比较,集合子集或超集值相等性操作符1 < a < 3 # Python中允许连续比较x|y, x&y, x^y # 位或、位与、位异或x<<y, x>>y # 位操作:x左移、右移y位+, -, *, /, //, %, ** # 真除法、floor除法:返回不大于真除法结果的整数值、取余、幂运算-x, +x, ~x # 一元减法、识别、按位求补(取反)x[i], x[i:j:k], x(……) # 索引、分片、调用int(3.14), float(3) # 强制类型转换
a = 1; a.bit_length() # 1a = 1024; a.bit_length() # 11
"""repr格式:默认的交互模式回显,产生的结果看起来它们就像是代码。str格式:打印语句,转化成一种对用户更加友好的格式。"""
# math模块# Decimal模块:小数模块 import decimal from decimal import Decimal Decimal("0.01") + Decimal("0.02") # 返回Decimal("0.03") decimal.getcontext().prec = 4 # 设置全局精度为4 即小数点后边4位# Fraction模块:分数模块 from fractions import Fraction x = Fraction(4, 6) # 分数类型 4/6 x = Fraction("0.25") # 分数类型 1/4 接收字符串类型的参数
"""set是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素。set支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算。set支持x in set, len(set), for x in set。set不记录元素位置或者插入点, 因此不支持indexing, slicing, 或其它类序列的操作"""s = set([3,5,9,10]) # 创建一个数值集合,返回{3, 5, 9, 10}t = set("Hello") # 创建一个唯一字符的集合返回{}a = t | s t.union(s) # t 和 s的并集b = t & s t.intersection(s) # t 和 s的交集c = t – s t.difference(s) # 求差集(项在t中, 但不在s中) d = t ^ s t.symmetric_difference(s) # 对称差集(项在t或s中, 但不会同时出现在二者中)t.add('x') t.remove('H') # 增加/删除一个item t.update([10,37,42]) # 利用[......]更新s集合x in s, x not in s # 集合中是否存在某个值s.issubset(t) s.issuperset(t) s.copy() s.discard(x) s.clear(){x**2 for x in [1, 2, 3, 4]} # 集合解析,结果:{16, 1, 4, 9}{x for x in 'spam'} # 集合解析,结果:{'a', 'p', 's', 'm'}
"""set是可变对象,即不存在hash值,不能作为字典的键值。同样的还有list、tuple等frozenset是不可变对象,即存在hash值,可作为字典的键值frozenset对象没有add、remove等方法,但有union/intersection/difference等方法"""a = set([1, 2, 3])b = set()b.add(a) # error: set是不可哈希类型b.add(frozenset(a)) # ok,将set变为frozenset,可哈希
type(True) # 返回<class 'bool'>isinstance(False, int) # bool类型属于整形,所以返回TrueTrue == 1, True is 1 # 输出(True, False)
"""变量名通过引用,指向对象。Python中的“类型”属于对象,而不是变量,每个对象都包含有头部信息,比如"类型标示符" "引用计数器"等"""#共享引用及在原处修改:对于可变对象,要注意尽量不要共享引用!#共享引用和相等测试: L = [1], M = [1], L is M # 返回False L = M = [1, 2, 3], L is M # 返回True,共享引用#增强赋值和共享引用:普通+号会生成新的对象,而增强赋值+=会在原处修改 L = M = [1, 2] L = L + [3, 4] # L = [1, 2, 3, 4], M = [1, 2] L += [3, 4] # L = [1, 2, 3, 4], M = [1, 2, 3, 4
S = '' # 空字符串S = "spam’s" # 双引号和单引号相同S = "s\np\ta\x00m" # 转义字符S = """spam""" # 三重引号字符串,一般用于函数说明S = r'\temp' # Raw字符串,不会进行转义,抑制转义S = b'Spam' # Python3中的字节字符串S = u'spam' # Python2.6中的Unicode字符串s1+s2, s1*3, s[i], s[i:j], len(s) # 字符串操作'a %s parrot' % 'kind' # 字符串格式化表达式'a {0} parrot'.format('kind') # 字符串格式化方法for x in s: print(x) # 字符串迭代,成员关系[x*2 for x in s] # 字符串列表解析','.join(['a', 'b', 'c']) # 字符串输出,结果:a,b,c
D = {k:8 for k in ['s', 'd']} # {'d': 8, 's': 8}D = {k:v for (k, v) in zip(['name', 'age'], ['tom', 12])}
class Dict(dict): def __missing__(self, key): self[key] = [] return self[key]dct = Dict()dct["foo"].append(1) # 这有点类似于collections.defalutdictdct["foo"] # [1]
a = [1, 2, 3] # a[1] = 0, OKa = (1, 2, 3) # a[1] = 0, Errora = ([1, 2]) # a[0][1] = 0, OKa = [(1, 2)] # a[0][1] = 0, Error
D = (12) # 此时D为一个整数 即D = 12D = (12, ) # 此时D为一个元组 即D = (12, )
output = open(r'C:\spam', 'w') # 打开输出文件,用于写input = open('data', 'r') # 打开输入文件,用于读。打开的方式可以为'w', 'r', 'a', 'wb', 'rb', 'ab'等fp.read([size]) # size为读取的长度,以byte为单位fp.readline([size]) # 读一行,如果定义了size,有可能返回的只是一行的一部分fp.readlines([size]) # 把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长。fp.readable() # 是否可读fp.write(str) # 把str写到文件中,write()并不会在str后加上一个换行符fp.writelines(seq) # 把seq的内容全部写到文件中(多行一次性写入)fp.writeable() # 是否可写fp.close() # 关闭文件。fp.flush() # 把缓冲区的内容写入硬盘fp.fileno() # 返回一个长整型的”文件标签“fp.isatty() # 文件是否是一个终端设备文件(unix系统中的)fp.tell() # 返回文件操作标记的当前位置,以文件的开头为原点fp.next() # 返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。fp.seek(offset[,whence]) # 将文件打操作标记移到offset的位置。whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。fp.seekable() # 是否可以seekfp.truncate([size]) # 把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。for line in open('data'): print(line) # 使用for语句,比较适用于打开比较大的文件open('f.txt', encoding = 'latin-1') # Python3.x Unicode文本文件open('f.bin', 'rb') # Python3.x 二进制bytes文件# 文件对象还有相应的属性:buffer closed encoding errors line_buffering name newlines等
# Python中的真假值含义:1. 数字如果非零,则为真,0为假。 2. 其他对象如果非空,则为真# 通常意义下的类型分类:1. 数字、序列、映射。 2. 可变类型和不可变类型
联系客服