获取输入
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) :将字符串中所有特殊正则表达式字符转义