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