代码改变世界

1.python基础知识

2016-05-19 23:01  我在雨中等你  阅读(223)  评论(0)    收藏  举报

1.输入输出

输出实例

>>> print 'hello world'
hello world

输入实例

>>> name = raw_input();
world
>>> print 'hello',name
hello world

输入提示实例

>>> name = raw_input('please enter you name:')
please enter you name:Jason
>>> print 'hello',name
hello Jason

raw_input 函数读入的是字符串,如果想要转换成int类型,就要用到int函数。

>>> birth = int(raw_input('birth:'))
birth:25
>>> print birth
25

 

2.字符表示

十进制正常表示,十六进制在前面加0x,小数正常表示,科学计数法表示1.23×109就是1.23e9,或者 12.3e8

转义符\

转义符实例

\是转义的意思,'\n'是换行

>>> print '\\'
\
>>> print '\\\n\\'
\
\

防止转义,可在前面加r

\t表示tab键功能

>>> print '\\\t\\'
\    \
>>> print r'\\\t\\'
\\\t\\

多行内容表示,用三引号包括

>>> print '''line1
line2
line3 '''
line1
line2
line3 

布尔值的表示 True 和 False

>>> print 3>2
True
>>> print 3<2
False

空值 None,相当于Java,C 中的 null

>>> print None==None
True

Unicode表示的字符串用 u’…’ 表示,转化成 UTF-8 编码

>>> u'ABC'.encode('utf-8')
'ABC'
>>> u'你好'.encode('utf-8')
'\xc3\x84\xc3\xa3\xc2\xba\xc3\x83'

 

3.格式化

格式 描述
%% 百分号标记 #就是输出一个%
%c 字符及其ASCII码
%s 字符串
%d 有符号整数(十进制)
%u 无符号整数(十进制)
%o 无符号整数(八进制)
%x 无符号整数(十六进制)
%X 无符号整数(十六进制大写字符)
%e 浮点数字(科学计数法)
%E 浮点数字(科学计数法,用E代替e)
%f 浮点数字(用小数点符号)
%g 浮点数字(根据值的大小采用%e或%f)
%G 浮点数字(类似于%g)
%p 指针(用十六进制打印值的内存地址)
%n 存储输出字符的数量放进参数列表的下一个变量中

格式化输出实例

将2016,2,1三个数字格式化成日期,用到%d有符号整数,%04d表示宽度为4,不足4在前面补0

>>> print '%04d-%02d-%02d'%(2016,2,1)
2016-02-01

将8.123格式化为宽度为6(不足6补0)的2位小数

>>> print '%06.2f'%8.123
008.12

 以科学计数法输出浮点型保留2位小数

>>> print '%.2e'%10.5546
1.06e+01

按位置顺序格式化

>>> print 'Hi,%s,you have $%.2f'%('Michael',10000)
Hi,Michael,you have $10000.00

输出百分号 %,用双 % 即可

>>> print 'growth rate:%d %%'%7
growth rate:7 %

 

4.列表list

列表 list ,可变的有序表

列表实例

>>> classmate=['dog','duck','cat']
>>> classmate
['dog', 'duck', 'cat']

获取长度

>>> len(classmate)
3

用位置索引获取列表内的元素,左侧第一个为0,右侧倒序为-1

>>> classmate[0]
'dog'
>>> classmate[1]
'duck'
>>> classmate[2]
'cat'
>>> classmate[-1]
'cat'
>>> classmate[0]
'dog'
>>> classmate[-2]
'duck'

append 追加元素到末尾

>>> classmate.append('chick')
>>> classmate
['dog', 'duck', 'cat', 'chick']

pop用位置索引删除指定位置的元素

>>> classmate.pop(3)
'chick'
>>> classmate
['dog', 'duck', 'cat']

也可直接对某位置的元素重新赋值

>>> classmate[1]='bird'
>>> classmate
['dog', 'bird', 'cat']

list可以嵌套,可用二维索引

>>> classmate.append(['duck','chick'])
>>> classmate
['dog', 'bird', 'cat', ['duck', 'chick']]
>>> classmate[3][0]
'duck'
>>> classmate[3][1]
'chick'

空列表

>>> L=[]
>>> len(L)
0

 

 5.元组tuple

元组与列表类似,但不同之处在于元组的元素不能修改

元组使用小括号,列表使用方括号

元组创建也很简单,只要在小括号内添加元素,并用逗号隔开就可以

如下:

>>> classmate=('dog','duck','cat')
>>> classmate
('dog', 'duck', 'cat')

创建空元组

>>> classmate=()
>>> classmate
()

创建一个元素的元组

注意:classmate=(1)并不是元组,要创建元组,就算只有一个元素,也要加逗号,classmate=(1,)才是元组

这是因为括号既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1

>>> classmate=(1)
>>> classmate
1
>>> classmate=(1,)
>>> classmate
(1,)

 

 访问元组

元组可以使用下标索引来访问元组的元素,坐起第一个索引为0

注意看以下几个的关系,[1:2]表示访问下标为1的元素,[1:3]访问下标为1和2的元素

>>> classmate=('dog','duck','cat')
>>> classmate[1]
'duck'
>>> classmate[1:2]
('duck',)
>>> classmate[1:3]
('duck', 'cat')

元组运算符

与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

Python 表达式结果描述
len((1, 2, 3)) 3 计算元素个数
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 连接
['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 复制
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print x, 1 2 3 迭代
>>> len(classmate)
3
>>> classmate+classmate
('dog', 'duck', 'cat', 'dog', 'duck', 'cat')
>>> classmate*2
('dog', 'duck', 'cat', 'dog', 'duck', 'cat')
>>> 'dog' in classmate
True

 

 元组内置函数

cmp(tuple1, tuple2)
比较两个元组元素。

len(tuple)
计算元组元素个数。

 min(tuple)
返回元组中元素最小值。

tuple(seq)
将列表转换为元组。

>>> roommate=['jack','rose']
>>> room_tuple=tuple(roommate)
>>> room_tuple
('jack', 'rose')

 

 6.字典

字典dict即键值对组,dict的key必须是不可变对象

>>> d={'dog':50,'cat':80,'duck':75}
>>> d['dog']
50

把数据放入dict的方法,除了初始化指定外,还可以通过Key放入,在这之前,d必须被声明,否侧会报错

>>> d={'dog':50,'cat':80,'duck':75}
>>> d['dog']
50
>>> d['dog']=60
>>> d
{'duck': 75, 'dog': 60, 'cat': 80}

判断key是否在字典中

>>> 'chick' in d
False

通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value

>>> print d.get('chick')
None
>>> print d.get('chick',-1)
-1

要删除一个key,用 pop(key) 方法,对应的value也会从dict中删除

>>> d.pop('dog')
60
>>> d
{'duck': 75, 'cat': 80}

 

7.集合set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的Key

要创建一个set,需要提供一个List作为输入集合

>>> s=set([1,2,3])
>>> s
set([1, 2, 3])

重复元素在set中会自动过滤

>>> s=set([1,1,2,3,3,4])
>>> s
set([1, 2, 3, 4])

通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果

>>> s=set([1,1,2,3,3,4])
>>> s
set([1, 2, 3, 4])
>>> s.add(4)
>>> s
set([1, 2, 3, 4])
>>> s.add(5)
>>> s
set([1, 2, 3, 4, 5])

通过remove(key)可以删除元素

>>> s
set([1, 2, 3, 4, 5])
>>> s.remove(3)
>>> s
set([1, 2, 4, 5])

判断元素是否在set中

>>> 3 in s
False

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:交集用&操作,并集用|

>>> s1=set([1,2,3])
>>> s2=set([2,3,4])
>>> s1&s2
set([2, 3])
>>> s1|s2
set([1, 2, 3, 4])

 

具体参考:http://cuiqingcai.com/792.html