一、运算符
算术运算符
/ 计算结果是真实值
// 地板除法,向下取整
** 乘方运算符
比较运算符
!= 不等于
逻辑运算符
and or not
二、赋值方式
增量赋值方式
n += 1
注意:Python不支持自增1和自减1运算符。(Python 会将 --n 解释为-(-n) 从而得到 n , 同样 ++n 的结果也是 n.)
链式赋值方式
y = x = x + 1
多重赋值方式
x=y=z=1
多元赋值方式
x, y, z = 1, 2, 'a string'
三、数据类型
数字
int
float
bool True False
complex x+yj
字符串-str
使用索引运算符( [ ] )和切片运算符( [ : ] )可以得到子字符串。
加号( + )用于字符串连接运算,星号( * )则用于字符串重复。
>>>'-' * 20
'--------------------'
列表和元组
列表元素用中括号 [ ] 包裹,元素的个数及元素的值可以改变。
元组元素用小括号 ( ) 包裹,不可以更改。元组可以看成是只读的列表。
通过切片运算( [ ] 和 [ : ] )可以得到列表和元组的子集。
注意:元组也是用[ ]读取。
字典
字典是 Python 中的映射数据类型,工作原理类似 Perl 中的关联数组或者哈希表,由键-值(key-value)对构成。
例:
aDict = {'host':0, 'earth':'baby'}
aDict['year'] = 80#在字典中添加数据
四、变量命名
_xxx 模块中的私有变量,只能在模块内访问,不能用'from module import *'导入
__xxx 类中的私有变量,只能在类中访问,无法在外部访问
__xxx__ 系统定义名字,无法个人使用
核心风格:避免用下划线作为变量名的开始。
五、判断、循环
判断
if、elif、else if:如果表达式为True,则代码组执行
if x<0:
print(-x)
elif x>0:
print(x)
else:
print(0)
同时可以通过if判断元素是否在列表中:
if x in _list:
return True
循环
while while:如果表达式为True,则代码组执行
while x<0:
print(x)
x += 1
for for:与传统的 for 循环(计数器循环)不太一样, 它更像shell 脚本里的 foreach 迭代。 for x in List
a=['1', '2', '3']
for i in range(len(a)):
print(a[i])
列表解析
在python中可以使用循环和判断方便的操作列表,被称为列表解析。
squared = [x ** 2 for x in range(4)]
squared = [0 1 4 9]
sqdEvens = [x ** 2 for x in range(8) if not x % 2]
sqdEvens = [0 4 16 36]
六、文件
打开文件(或创建文件)
f = open(file_name, access_mode = 'r') #f:文件的句柄
file_name 变量包含我们希望打开的文件的字符串名字, access_mode 中 'r' 表示读取,'w' 表示写入, 'a' 表示添加。
'w+' 可读可写。操作前清空文件内容。
'r+' 可读可写。指针在文件开头。写入时覆盖之前内容。
'a+' 可读可写。指针在文件末尾。写入时在之前的内容后追加。
关于读写要注意文件指针的位置,比如使用'r+',读取文件后指针到了末尾,这时候再写入会从文件末尾追加,而不再是从头进行覆盖。
当一个文件对象返回之后, 我们就可以访问它的一些方法, 比如 read(),readlines() 和 close()。通过句点属性标识法访问。
读取文件
f.read() #以字符串的形式读取文件
f.readlines() #将文件中的每行保存为序列(列表)中的一个(换行读取为\n)
写入文件
f.write() #将字符串写入文件
f.writelines() #将序列(列表)写入文件(需自行加入\n进行换行)
若读取的字符串中含有分隔符' '或'\n',可使用以下函数将其分开:
fi.split(' ') 根据' '将字符串分割成列表
fi.strip('\n') 去掉字符串末尾的'\n'
七、类
创建类
class ClassName(base_class[es]):
"optional documentation string"
static_member_declarations
method_declarations
使用 class 关键字定义类。 可以提供一个可选的父类或者说基类; 如果没有合适的基类,那就使用 object 作为基类。
class 行之后是可选的文档字符串, 静态成员定义, 及方法定义。
初始化类
当一个类实例被创建时, init() 方法会自动执行, 在类实例创建完毕后执行, 类似构建函数。不过不创建实例,只是执行一些该对象的必要的初始化工作。
python中的self相当于其他语言中的this,是类实例自身的引用。
class Solution:
def __init__(self):
self.res=['a','b','c']
def get(self,s):
for a in s:
if not self.getItem(a):
return False
return True
def getItem(self,a):
if a in self.res:
return True
else:
return False
创建类实例
so = Solution()
so.get(['a','b'])
附:
type(obj) #返回对象的类型(返回值本身是一个 type 对象!)
dir([obj]) #显示对象的属性,如果没有提供参数, 则显示全局变量的名字