python基础教程读书笔记

获取输入
x=input(“x:”)
input函数会假设用户使用的是合法的python表达式
模块
import math
math.floor(32.9)

__future__模块

拼接字符串:
+连接字符串

字符串表示,str和repr
str: 将字符串转化为合理的形式,便于用户阅读
repr: 以合法的Python形式,表示

input: 要求用户输入合法的Python 表达式
raw_input:

长字符串、原始字符串、Unicode

  • ‘’‘sdfsdf’’’ :长字符串跨越多行
  • “”" “”" :在字符串中间可以使用单引号和双引号,不用转义
  • r" "/r’ ’ :原始字符串。可以转义,但是转义的\也会打印出来
  • u’ ’ :Unicode字符串,与字符串并不是同一个类型

第二章:列表和元组

  • 所有的序列类型都可以进行某些特定的操作:索引、分片、加、乘、检查成员资格
    ####索引,分片
  • tag[1:9] :第一个包含在分片内,第二个不包括
  • number[-3:] :
  • number[:3] :
  • number[0:10:1] :步长为1,可为负数

序列相加

  • [1,2,3] + [4,5,6] :同种类型的序列才能相加

乘法

  • ‘python’*5
  • [42]*10
  • [None]*10 :长度为10的空列表

成员资格

  • ‘w’ in ‘world’

最大值,最小值,长度

  • len()
  • max()
  • min()

###列表

  • list(‘hello’) :转化为列表
  • x[2] = 2
  • del names[2]
  • name[2:] = list(“sdfs”) :分片赋值

列表方法

  • [].append(3)
  • [].count() :统计某个元素出现的次数
  • [].extend([]) :扩展原有列表
  • [].index(’’) :列表中找出匹配项的索引位置
  • [].insert()
  • [].pop() :默认移除列表中最后一个元素
  • [].remove() :同下
  • [].reverse() :改变了列表,但不返回值
  • [].sort() :改变列表
  • [].sort(cmp) :高级排序(传入自定义的函数)
  • sorted() :函数

元组

  • tuple() :序列作为参数,转换为元组

第三章 使用字符串

字符串方法

  • ‘abc’.find(’ ') :查找自字符串
  • ‘/’.join([‘a’,‘b’,‘c’])
  • ‘abc’.lower()
  • ‘abc’.replace(‘a’,‘t’)
  • ‘a b c’.split(’ ')
  • strip() :返回去除两边空格的字符串
  • translate :替换字符串中某些部分,只处理单个字符

第四章 字典

创建字典

  • phonebook = {‘Alice’:‘2314’, ‘Benth’:‘9102’}
  • dict([(‘name’, ‘Gumby’), (‘age’,‘24’)]) :元组的列表创建字典
  • dict(name=‘Gumby’, age = 24)
  • len(d) :返回字典的长度
  • d[k]
  • d[k] = v
  • del d[k]
  • k in d

字典方法

  • clear :清除字典中所有的项,原地操作
  • copy :浅复制,
  • fromKeys :使用给定的键,建立新的字典,每个键默认对应的值为None
  • get
  • has_key() :检查是否有给出的键
  • items :以列表的形式返回字典项
  • iteritems :返回迭代器对象
  • keys() iterkeys()
  • pop() :用来返回给定键的值,然后移除该键值对
  • popitem() :移除随机的项,并处理
  • setdefault
  • update :使用一个字典更新另外一个字典
  • values()
  • itervalues

条件、循环和其他语句

序列解包

  • x, y, z = 1,2,3
  • x,y = y,x
  • is :是否是同一个对象
  • is not :是不同的对象,避免比较数值或者字符串这类不可变值

布尔运算符

  • and :连接两个布尔值
  • or
  • not

断言

while for

  • range

  • xrange

  • for i in range(10)

  • for key, value in d.items()

  • for key in d:

  • zip :将两个序列对应的元素结合成元组,返回元组的列表

  • for循环也可以使用else

列表推导式

  • [x*x for x in range(10)]
  • [x*x for x in range(10) if x % 3 ==0]
  • [(x,y) for x in range(3) for y in range(3)]

del删除

  • del :不仅移除了一个对象的引用,也会移除名字本身(事实上只是移除了名字本身,Python是无法删除值的)
  • exec :执行一个字符串,不返回任何对象
  • eval :eval类似exec,会计算表达式并返回结果值

第六章 抽象

  • def hello(name):
    return …

  • def aquare(x):
    ‘返回计算平房至’
    return x*x :如果在函数开头写上字符串。会作为函数的一部分进行存储

  • doc :函数属性

  • 如果你想改变传入参数的值:使用列表吧,即指针

  • def

    • :将参数收集为元组
      

-** :将参数收集为字典

  • scope = vars() :函数

  • globals() :在函数内部使用全局变量,可以直接使用,若和局部变量重名,使用此函数

  • global x :在函数内声明全局变量

  • 在函数中定义函数,并返回函数,就差不多制造了一个闭包

类和类型

  • 为了让方法或者特性变为私有,只要在它的名字前面加上下双划线即可

  • issubclass(subclass, parents) :检查一个类是否是另一个类的子类

  • isinstance() :检查一个对象是否是另一个对象的实例

  • bases :已知的基类

  • class :

  • type :返回对象类型

魔法方法、属性和迭代器

metaclass=type :如果文件以其开头,所有类都是新类
init(self) :构造方法
super :如果可能的话总应该使用super调用父类的构造函数

len(self): :这个方法应该返回集合中所含项目的数量
getitem(self, key) :返回键对应的值
setitem(self, key, value) :
delitem(self, key) :

@staticmethod
@classmethod

getattribute(self, name):
getattr(self, name):
setattr(self, name, value):
delattr(self, name):

iter(self):
def next(self):

探究模块

dir :查看模块包含的内容
copy.all :
help(copy.copy)
range.doc

集合操作

set([0,1,2,3,4,5,6])

  • | :集合并集
  • a.union(b) :并集
  • &
  • =

  • <=
  • ^

from heapq import *

  • heappush(heap, x)
  • heappop(heap)
  • heapify(heap) :将堆属性强制应用到任意一个列表
  • heapreplace(heap, x) :将堆中最小的元素弹出,同时将x入堆
  • nlargest(n, iter) :返回iter中第n大的元素
  • nsmallest(n, iter) :返回iter中第n小的元素

双端队列

from collections import deque

  • q =deque(range(5))
  • q.append(5)
  • q.appendleft(6)
  • q.pop()
  • q.popleft()
  • q.rotate(3)

time

  • asctime([tuple]) :将时间元组转化为字符串
  • localtime([secs]) :将秒数转化为日期元组,以本地时间为准
  • mktime(tuple) :将时间元组转换为本地时间
  • sleep(secs) :休眠
  • strptime(string[, format]) :将字符串解析为时间元组
  • time() :当前时间

random

  • random() :随机数
  • getrandbits(n) :以长整形形式返回n个随机位
  • uniform(a, b) :返回随机实数n,a<= n < b
  • randrange([start], stop, [step]) :返回range(start, stop, step)中的随机数
  • choice(seq) :从序列中返回随机元素
  • shuffle(seq[, random]) :原地指定序列seq
  • sample(seq, n) :从序列seq中选择n个随机且独立的元素

shelve

import shelve

  • s = shelve.open(‘test.dat’)

re

  • compile(pattern[, flags]) :根据包含的正则表达式的字符串创建模式对象
  • search(pattern, string[, flags]) :在字符串中寻找模式
  • match(pattern, string[, flags]) :在字符串的开始处匹配模式
  • split(pattern, string[, maxsplit=0]) :根据模式的匹配项分割字符串
  • findall(pattern, string) :列出字符串中模式的所有匹配项
  • sub(pat, repl, string[, count=0]) :将字符串中所有的pat的匹配项用repl替换
  • escape(string) :将字符串中所有特殊正则表达式字符转义

你可能感兴趣的:(学习笔记)