2018-07-14 Python基础
数据类型
整数,写法同数学逻辑,某些情况使用16进制(0xa5b4c3d2)
浮点数,对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5。
注意,整数运算永远是精确的(除法也是精确的?!),而浮点数运算则可能会有四舍五入的误差。
字符串,以单引号'或双引号"括起来的任意文本,比如'abc',"xyz"等等。如果'本身也是一个字符,那就可以用""括起来。如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识。为了简化,Python允许用'''...'''的格式表示多行内容,还允许用r' '表示''内部的字符串默认不转义
>>> print('\\\t\\')
\ \
>>> print(r'\\\t\\')
\\\t\\
>>>print(r'''Hello,
Lisa!''')
Hello,
Lisa!
布尔值,可以用and、or和not运算,即与或非。
空值,是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
有趣的是,Python中对整数和浮点数的大小没有限制,但超出一定范围时,浮点数会变为inf(无限大)。
常量和变量
变量,Python作为动态语言,变量本身类型不固定,在赋值时无需对类型进行声明。
Python中没有对常量的固定声明,仅在书写习惯上使用的全部大写来表示常量。
字符串和编码
Python3中,以Unicode编码,并且,提供了 ord() 和 chr() 函数获取字符的编码和将编码转换为对应字符,同样的,使用转制符 \ 也能输出编码对应的字符。Python对bytes类型的数据用带b前缀的单引号或双引号表示。
Python对bytes类型的数据用带b前缀的单引号或双引号表示。通过encode和decode函数可以实现不同编码方式的编码和译码。
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87
>>> b'ABC'.decode('ascii')
'ABC'
>>>b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文‘
要计算str包含多少个字符,可以用len()函数。len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数。
保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行,同时必须并且要确保文本编辑器正在使用UTF-8 without BOM编码:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
格式化
类似与C艹,举例如下,可以用%%转义表示%。例如%02d可以补零。
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
也可以使用format()函数,如下
>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
'Hello, 小明, 成绩提升了 17.1%
使用list和tuple
list
classmates = ['Michael','Bob','Tracy'] 即为一个list。
lens(classmates)可获得该list元素个数,classmates[i]或classmates[i-n]访问第i-1个元素。
classmates.append('Adam')可以追加元素到list的末尾。
classmates.pop() 用以删除末尾元素;classmates.pop(i) 删除对应元素。
tuple
classmates = ('Michael','Bob','Tracy'),classmates即为一个tuple,与list不同,tuple一旦初始化不可修改,在括号与tuple冲突时,认为是小括号。
条件判断
if条件 : 执行部分 else : 执行部分 (多层时可以用elif) 注意,执行部分需缩进
循环
for x in y 将list或tuple y中的每一个x迭代出来循环。for x in range(101) 即可执行0到100的整数序列循环
while 同C艹
break 同C艹,可提前结束循环
continue同C艹,可跳过当前循环
dict和set
dict
d = {'Michael':95,'Bob':75,'Tracy':85}即为一个dict,d['Michael']即可读取和写入对应value。通过用pop(key)方法,要删除一个key。
注意,dict的key必须是不可变对象。
set
set和dict类似,也是一组key的集合,但不存储value。重复元素在set中自动被过滤。
EG: s = set([1,2,3])
通过add(key) remove(key)方法可以添加或删除元素到set中。
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集s1 & s2、并集s1 | s2等操作。