首页 > 代码库 > Python
Python
Python
获取用户输入:
>>> input("x:")
x:3
‘3‘
模块导入
>>> import math
>>> math.floor(32.9)
32
>>>
字符串
- 单引号字符串和转义字符
>>> ‘hello world‘
‘hello world‘
>>> "hello world"
‘hello world‘
>>>
>>> "let‘s go"
"let‘s go"
>>> ‘"hello world". she said‘
‘"helo world". she said‘
>>> "\"hello world\" . she said"
‘"hello world" . she said‘
>>>
- 拼接字符
>>> "let‘s say" ‘"hello world"‘
‘let\‘s say"hello world"‘
>>> x="hello "
>>> y="world"
>>> x+y
‘hello world‘
>>>
- str 和 repr
str 值转为合理的字符串
repr 所见即所得
- input 和 raw_input
raw_input: 输入的数据作为原始数据放入字符串内 (python3.x系列不再有 raw_input 函数。3.x中 input 和从前的 raw_input 等效)
input: 直接使用输入格式
- 原始字符串
原始字符串的最后一位不能是反斜杠
>>> print ("c:\nothere")
c:
othere
>>> print(r"c:\nothere")
c:\nothere
>>>
序列 (列表和元组)
列表可以修改
元组: 不可以修改
通用序列操作
操作
- 索引 (indexing)
- 分片 (slicing)
- 加 (adding)
- 乘 (multiplying)
索引
编号从0开始
正数表示从前往后,负数表示从后往前,最后一位是-1
可以函数调用返回序列,可以直接对结果进行索引操作
分片
[slicingStart : remainStart : step]
Step负值表示从右往前
>>> tag=‘1234567890‘
>>> tag[2:4]
‘34‘
>>> tag[0:3]
‘123‘
>>> tag[-3:-1]
‘89‘
>>> tag[-3:]
‘890‘
>>>
>>> tag[0:3]
‘123‘
>>>
>>> tag[0:5:2]
‘135‘
>>> tag[0::2]
‘13579‘
>>> tag[::2]
‘13579‘
>>> tag[6:1:-2]
‘753‘
>>>
运算
可以相加或相乘,不能与字符串相加
>>> [1,2,3] + [4,5,6]
[1, 2, 3, 4, 5, 6]
>>> [1,2,3]*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
函数
in
>>> x = ‘hh‘
>>> x in ‘hello‘
False
>>> x in ‘hhello‘
True
>>> user = ‘123456‘
>>> input("Enter your user name: ") in user
Enter your user name: 1
True
>>>
min – max - len
>>> number = [1,2,3]
>>> len(number)
3
>>> max(number)
3
>>> min(number)
1
列表
[x,x,x]
操作
根据字符串创建列表
>>> list(‘hello‘)
[‘h‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘]
赋值
>>> x=[1,2,3]
>>> x[1]=7
>>> x
[1, 7, 3]
>>>
删除
>>> x
[1, 7, 3]
>>> del x[1]
>>> x
[1, 3]
>>>
分片赋值
>>> name = list(‘12345‘)
>>> name[2:4] = list(‘abc‘)
>>> name
[‘1‘, ‘2‘, ‘a‘, ‘b‘, ‘c‘, ‘5‘]
不等长赋值
>>> name = list("1234567890")
>>> name[5:]=list(‘abc‘)
>>> name
[‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘a‘, ‘b‘, ‘c‘]
>>>
插入
>>> name = list("1234567890")
>>> name[5:5] = list(‘abc‘)
>>> name
[‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘a‘, ‘b‘, ‘c‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘, ‘0‘]
删除
>>> name
[‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘a‘, ‘b‘, ‘c‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘, ‘0‘]
>>> name[5:7] = []
>>> name
[‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘c‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘, ‘0‘]
方法
append
append直接修改原来的表
>>> lst = [1,2,3]
>>> lst.append(‘4‘)
>>> lst
[1, 2, 3, ‘4‘]
>>>
count
统计元素在表中出现的次数
extend
列表的末尾追加另外一个序列,原序列不变
>>> a = [1,2,3]
>>> b = [‘a‘,‘b‘,‘c‘]
>>> c=a+b
>>> c
[1, 2, 3, ‘a‘, ‘b‘, ‘c‘]
>>> a
[1, 2, 3]
>>>
index
从列表中找出第一个匹配项的索引位置
>>> a=[1,2,3,4,5]
>>> a.index(4)
3
pop
移除列表中的一个元素,(默认最后一个),并返回这个元素的值
remove
移除列表中某一个值的第一个匹配项,没有返回值
>>> x=[1,2,3]
>>> x=[1,2,3,11,22,33,1]
>>> x.remove(3)
>>> x
[1, 2, 11, 22, 33, 1]
>>>
reverse
元素反向
sort
>>> x=[1,4,3,2]
>>> x.sort()
>>> x
[1, 2, 3, 4]
>>>
如果需要x不变,返回另外一个排好序的列表
>>> x=[4,3,2,1]
>>> y=x.sort()
>>> x
[1, 2, 3, 4]
>>> print(y)
None
>>>
对y赋值用y=x[:]
>>> x=[4,3,2,1]
>>> y=x[:]
>>> y.sort()
>>> x
[4, 3, 2, 1]
>>> y
[1, 2, 3, 4]
y=x使x和y指向同一个列表
>>> x=[4,3,2,1]
>>> y=x
>>> y.sort()
>>> x
[1, 2, 3, 4]
>>> y
[1, 2, 3, 4]
用sorted函数
>>> x=[4,3,2,1]
>>> y=sorted(x)
>>> x
[4, 3, 2, 1]
>>> y
[1, 2, 3, 4]
>>>
sorted可以用于任何序列,却总是返回一个列表
>>> x=sorted("hello")
>>> x
[‘e‘, ‘h‘, ‘l‘, ‘l‘, ‘o‘]
>>>
元组:不可变序列
(x,x,x)
单个元素
(x,)
操作
tuple
产生元组
>>> tuple(‘abc‘)
(‘a‘, ‘b‘, ‘c‘)
>>> tuple([‘a‘,‘b‘,‘c‘])
(‘a‘, ‘b‘, ‘c‘)
>>> tuple((‘1‘,‘2‘,‘3‘))
(‘1‘, ‘2‘, ‘3‘)
>>>
字符串
字典:当索引不好用时
{x:y:z, m:n:o}
空字典
{}
Dict函数创建
>>> items = ([1,"a"],[2,"b"])
>>> d=dict(items)
>>> d
{1: ‘a‘, 2: ‘b‘}
>>>
>>> d=dict(m=‘a‘,n=‘b‘)
>>> d
{‘m‘: ‘a‘, ‘n‘: ‘b‘}
>>>
>>> x=dict(o="c",p="d",**d)
>>> x
{‘p‘: ‘d‘, ‘m‘: ‘a‘, ‘o‘: ‘c‘, ‘n‘: ‘b‘}
基本字典操作
字典的格式化字符串
字典方法
clear
无返回值
>>> d ={}
>>> d[‘name‘]=‘lucy‘
>>> d[‘id‘] = 2
>>> d
{‘name‘: ‘lucy‘, ‘id‘: 2}
>>> return_value = http://www.mamicode.com/d.clear()>
>>> d
{}
>>> print(return_value)
None
>>>
copy
浅复制 shallow copy
副本中值的替换不会对源字典产生影响
>>> x={‘uername‘:‘lucy‘, ‘age‘:30}
>>> y=x.copy()
>>> y[‘age‘]=15
>>> y
{‘uername‘: ‘lucy‘, ‘age‘: 15}
>>> x
{‘uername‘: ‘lucy‘, ‘age‘: 30}
>>>
副本中值的修改会产生影响
>>> x ={‘username‘:‘lucy‘, ‘books‘:[‘eng‘,‘math‘]}
>>> y=x.copy()
>>> y[‘books‘].remove(‘eng‘)
>>> y
{‘username‘: ‘lucy‘, ‘books‘: [‘math‘]}
>>> x
{‘username‘: ‘lucy‘, ‘books‘: [‘math‘]}
>>>
深复制 deep copy
>>> from copy import deepcopy
>>> d = {‘username‘:[‘zs‘,‘ls‘], ‘age‘:13}
>>> e=d.copy()
>>> f=deepcopy(d)
>>> d
{‘age‘: 13, ‘username‘: [‘zs‘, ‘ls‘]}
>>> d[‘username‘].append(‘wer‘)
>>> e
{‘age‘: 13, ‘username‘: [‘zs‘, ‘ls‘, ‘wer‘]}
>>> f
{‘age‘: 13, ‘username‘: [‘zs‘, ‘ls‘]}
>>>
fromkeys
使用给定的key生成字典,默认值为None
>>> {}.fromkeys([‘name‘,‘age‘])
{‘age‘: None, ‘name‘: None}
>>> d={‘name‘:‘wang‘,‘age‘:12}
>>> d
{‘age‘: 12, ‘name‘: ‘wang‘}
>>> d.fromkeys(‘gender‘)
{‘g‘: None, ‘n‘: None, ‘e‘: None, ‘d‘: None, ‘r‘: None}
>>> d.fromkeys([‘gender‘])
{‘gender‘: None}
如果不想用默认的值None,也可以自己制定值
>>> {}.fromkeys([‘username‘,‘age‘],‘unk‘)
{‘age‘: ‘unk‘, ‘username‘: ‘unk‘}
>>>
get
提供更宽松的方法访问字典,可以检测key不存在的场景
>>> d={}
>>> print(d[‘name‘])
Traceback (most recent call last):
File "<pyshell#100>", line 1, in <module>
print(d[‘name‘])
KeyError: ‘name‘
>>> print(d.get(‘name‘))
None
>>> d=dict(m=‘a‘,n=‘b‘)
>>> print d.get("m")
a
>>> print d.get("x")
None
>>> print d.get("x","not found")
not found
has_key
(python3.3不支持)
items & iteritems
items 返回列表,无特殊顺序
iteritems返回迭代器 (python3.3不支持)
>>> d={‘username‘:‘zs‘, ‘age‘:12}
>>> d.items()
dict_items([(‘username‘, ‘zs‘), (‘age‘, 12)])
keys & iterkeys
pop
>>> d
{‘username‘: ‘zs‘, ‘age‘: 12}
>>> d.pop(‘age‘)
12
>>> d
{‘username‘: ‘zs‘}
>>>
popitem
popitem弹出随机项
setdefault
类似于get,如果键值不存在,会将键值设定,值默认为None,也可根据参数设定
>>> d={}
>>> d.setdefault(‘name‘)
>>> d
{‘name‘: None}
>>> d={}
>>> d.setdefault(‘name‘,‘unkonwn‘)
‘unkonwn‘
>>> d
{‘name‘: ‘unkonwn‘}
>>>
update
利用一个字典更新另外一个字典
>>> d={"name":"haha", "age":32}
>>> x={"name":"haha", "age":23}
>>> d.update(x)
>>> d
{‘age‘: 23, ‘name‘: ‘haha‘}
>>>
values & itervalues
返回字典的值
>>> d= {}
>>> d[1]=1
>>> d[2]=2
>>> d[3]=3
>>> d[4]=1
>>> d.values()
dict_values([1, 2, 3, 1])
>>>
条件,循环和其他语句
包
__init__.py
this file is required to tell Python that the folder is to be treated as a package.
异常
装饰器
Python