大神花了1天时间整理出这么详细的Python知识点,记得收藏哦!

1 Python数据类型:哈希类型、不可哈希类型

# 哈希类型,即在原地不能改变的变量类型,不可变类型。可利用hash函数查看其hash值,也可以作为字典的key "数字类型:int, float, decimal.Decimal, fractions.Fraction, complex" "字符串类型:str, bytes" "元组:tuple" "冻结集合:frozenset" "布尔类型:True, False" "None" # 不可hash类型:原地可变类型:list、dict和set。它们不可以作为字典的key。

2 数字的表达式操作符

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 # 对象实体测试 xy, x>=y, x==y, x!=y # 大小比较,集合子集或超集值相等性操作符 1 >y # 位操作:x左移、右移y位 +, -, *, /, //, %, ** # 真除法、floor除法:返回不大于真除法结果的整数值、取余、幂运算 -x, +x, ~x # 一元减法、识别、按位求补(取反) x[i], x[i:j:k], x(……) # 索引、分片、调用 int(3.14), float(3) # 强制类型转换

3 数字相关的模块

# 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 接收字符串类型的参数

4 布尔类型bool

type(True) # 返回 isinstance(False, int) # bool类型属于整形,所以返回True True == 1, True is 1 # 输出(True, False)

5 常见字符串常量和表达式

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 parrot'.format('kind') # 字符串格式化方法 for x in s: print(x) # 字符串迭代,成员关系 [x*2 for x in s] # 字符串列表解析 ','.join(['a', 'b', 'c']) # 字符串输出,结果:a,b,c

6 字符串转换工具:

int('42'), str(42) # 返回(42, '42') float('4.13'), str(4.13) # 返回(4.13, '4.13') ord('s'), chr(115) # 返回(115, 's') int('1001', 2) # 将字符串作为二进制数字,转化为数字,返回13 bin(13), oct(13), hex(13) # 将整数转化为二进制/八进制/十六进制字符串,返回('1001', '0o15', '0xd')

7 用切片来删除序列的某一段

a = [1, 2, 3, 4, 5, 6, 7] a[1:4] = [] # a = [1, 5, 6, 7] a = [0, 1, 2, 3, 4, 5, 6, 7] del a[::2] # 去除偶数项(偶数索引的),a = [1, 3, 5, 7]

– 2.7 for循环的元组赋值

for (a, b) in [(1, 2), (3, 4)]: # 最简单的赋值 for ((a, b), c) in [((1, 2), 3), ((4, 5), 6)]: # 自动解包赋值 for ((a, b), c) in [((1, 2), 3), ("XY", 6)]: # 自动解包 a = X, b = Y, c = 6 for (a, *b) in [(1, 2, 3), (4, 5, 6)]: # 自动解包赋值。

8 Python3.x中的字符串应用

s = '...' # 构建一个str对象,不可变对象 b = b'...' # 构建一个bytes对象,不可变对象 s[0], b[0] # 返回('.', 113) s[1:], b[1:] # 返回('..', b'..') B = B""" xxxx yyyy """ # B = b'\nxxxx\nyyyy\n' # 编码,将str字符串转化为其raw bytes形式: str.encode(encoding = 'utf-8', errors = 'strict') bytes(str, encoding) # 编码例子: S = 'egg' S.encode() # b'egg' bytes(S, encoding = 'ascii') # b'egg' # 解码,将raw bytes字符串转化为str形式: bytes.decode(encoding = 'utf-8', errors = 'strict') str(bytes_or_buffer[, encoding[, errors]]) # 解码例子: B = b'spam' B.decode() # 'spam' str(B) # "b'spam'",不带编码的str调用,结果为打印该bytes对象 str(B, encoding = 'ascii')# 'spam',带编码的str调用,结果为转化该bytes对象

上面分享了这么多知识点,想和小编交流的话推荐建立的裙Python学习:五七七九零一二九四 这里有推荐的学习路线,基础视频学习资料和电子教程文档和Python安装工具及Python技术学习交流和分享。

9 嵌套函数举例:lambda实例

def maker(N): action = (lambda X: X**N) return action f = maker(2) # pass 2 to N f(3) # 9, pass 3 to X

Python 数据结构转换为JSON:

#!/usr/bin/python3import json# Python 字典类型转换为 JSON 对象data = { 'no' : 1, 'name' : 'Runoob', 'url' : 'http://www.runoob.com'}json_str = json.dumps(data)print ("Python 原始数据:", repr(data))print ("JSON 对象:", json_str)

执行以上代码输出结果为:

通过输出的结果可以看出,简单类型通过编码后跟其原始的repr()输出结果非常相似。

接着以上实例,我们可以将一个JSON编码的字符串转换回一个Python数据结构:

#!/usr/bin/python3import json# Python 字典类型转换为 JSON 对象data1 = { 'no' : 1, 'name' : 'Runoob', 'url' : 'http://www.runoob.com'}json_str = json.dumps(data1)print ("Python 原始数据:", repr(data1))print ("JSON 对象:", json_str)# 将 JSON 对象转换为 Python 字典data2 = json.loads(json_str)print ("data2['name']: ", data2['name'])print ("data2['url']: ", data2['url'])

执行以上代码输出结果为:

如果你要处理的是文件而不是字符串,你可以使用json.dump()json.load()来编码和解码JSON数据。例如:

# 写入 JSON 数据with open('data.json', 'w') as f: json.dump(data, f)# 读取数据with open('data.json', 'r') as f: data = json.load(f)

10 用户定制异常数据

class FormatError(Exception): def __init__(self, line ,file): self.line = line self.file = file try: raise FormatError(42, 'test.py') except FormatError as X: print('Error at ', X.file, X.line) # 用户定制异常行为(方法):以记录日志为例 class FormatError(Exception): logfile = 'formaterror.txt' def __init__(self, line ,file): self.line = line self.file = file def logger(self): open(self.logfile, 'a').write('Error at ', self.file, self.line) try: raise FormatError(42, 'test.py') except FormatError as X: X.logger()

好了,今天就分享到这里,有想学习Python编程的伙伴们,欢迎留言和小编交流学习,最后祝大家早日成为Python大牛!

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180202A06OS700?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券