《Python 学习手册》读书笔记

  • Python 脚本首行 P72
#! /usr/local/bin/python
or
#! /usr/bin/env python
  • Windows 上输入的技巧 P77

input() 函数防止双击 py 文件执行时一闪而过

  • 模块导入和重载 P81
>>> import script1
>>> from imp import reload
>>> reload(script1) # 重新加载无需再次 import 导入
  • from myfile import title # 实际会复制一份 title 模块里的变量,与直接 import title 而言,变量名被复制到了当前命名空间,可能会变量名冲突
  • dir(module_name) # 返回模块内部所有可用的变量名列表,返回对象的所有属性
  • exec(open(‘module.py’).read()) # 运行某个 py 文件
  • path=r’c:\python\test’ # 不需要转义,可用于 Windows 的路径 P117
  • P129 Python 中字典是无序的,若需要访问时做到有序,那么可以把字典的 key 值单独放到一个列表中并对列表排序;每次访问字典时都从该列表取 key 值即可;或者使用 sorted() 函数:
>>> for key in sorted(D): print(D(key))
  • 元组 Tuple 不可改变,可省略括弧,有两个独特函数:T.index(4) 元组中 4 的索引值是3;T.count(4) 元组中 4 的个数是1
>>> T = (1, 2, 3, 4)
  • 读取文件:
>>> for line in open(r'./data.txt'): print(line)
  • 自动回收未被引用的对象;变量是引用,是指向对象的指针,a 和 b 共享引用,指向同一个 3 对象
>>> a = 3
>>> a = 'spam'
>>> a = 3
>>> b = a
  • 多个变量引用同一个对象时,可通过任意一个变量改变该对象,因为是共享引用,所以造成其他变量引用的对象(其实是同一个对象)发生了改变;若想不发生改变,可使用 copy 或 deepcopy P192
  • 字符串分片
>>> 'spam'[1:3]
>>> 'spam'[slice(1, 3)]
>>> 'spam'[::-1] # 反转
>>> 'spam'[slice(None,None,-1)]
  • 格式化字符串
>>> 'That is %d %s bird!' % (1, 'dead')
>>> 'That is {0} {1} bird!'.format(1, 'dead')
  • 将字符串转换为可修改的列表,修改完后再转换为字符串
>>> S = 'spammy'
>>> L = list(S)
>>> L
['s', 'p', 'a', 'm', 'm', 'y']
>>> L[3] ='x'
>>> S = ''.join(L)
>>> S
'spaxmy'
  • 字符串分割
>>> line = "I'mSPAMaSPAMlumberjack"
>>> line.split("SPAM")
  • 基于字典的格式化表达式
>>> reply = """
Greetings..
Hello %(name)s!
Your age is %(age)s
"""
>>> values = {'name':'Bob', 'age':40}
>>> print(reply % values)
  • P230 ‘first={0}, last={1}, middle={2}’.format(*parts) # *parts 解包一个元组的项作为单独的函数参数
  • **data 是一种特殊语法,把一个由键值对组成的字典解包为一组组像 “name=value” 的关键字参数
  • 列表推导
>>> L=[x**2 for x in range(5)]
>>> L
[0, 1, 4, 9, 16]
  • 对比
类型构造示例序列一个包含其他对象的有序集合不可变性创建后不能原位置改变
数字 略否 
字符串 略
列表[1, [2, ‘three’], 4.5]list(range(10))
字典{‘food’:’spam’, ‘taste’:’yum’}dict(hours=10)
元组(1, ‘spam’, 4, ‘U’)tuple(‘spam’) == (‘s’, ‘p’, ‘a’, ‘m’)
集合set(‘abc’){‘a’,’b’,’c’}否(不可变集合)

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google photo

You are commenting using your Google account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理