- 交互式编程VS脚本式编程;
- 标识符:
- 标识符由字母、数字、下划线组成;
- 标识符可以包括英文、数字、下划线,但不能以数字开头;
- 标识符区分大小写;
- python可以同一行显示多条语句,用分号;分开;
- 特殊:
- 以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
- 以双下划线开头的 __foo 代表类的私有成员;
- 以双下划线开头和结尾的 foo 代表 Python 里特殊方法专用的标识,如 init() 代表类的构造函数;
-
保留字符:菜鸟教程
-
行和缩进:
- Python的代码块不使用大括号{}来控制类,函数以及其他逻辑判断,它使用缩进来写模块;
- 缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量;
- 错误提示:
- IndentationError: unexpected indent:文件里格式不对了,可能是tab和空格没对齐的问题;
- IndentationError: unindent does not match any outer indentation level:使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可;
- 多行语句:
- Python语句中一般以新行作为语句的技术符,也可以使用斜杠()将一行的语句分为多行显示,语句中包含[],{},()就不需要使用多行连接符:
total = item_one + \
item_two + \
item_three
- 引号和注释
- 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串;
- 单行注释用#,多行注释用三个单引号(''')或三个双引号(""");
- 算数运算符: + - * / % ** //
- **:幂,返回x的y次幂
- //:取整数,返回商的整数部分
- 比较(关系)运算符:== != <> > < >= <=
- <>:不等于,比较两个对象是否不相等,类似!=
-
赋值运算符:= += -= *= /= %= **= //=
-
逻辑运算符:and or not
- not x:布尔“非”,如果x为true,返回false;如果x为false,但返回true;
- 位运算符:& | ^ ~ << >>
- &:按位与运算符,参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0;
- |:按位或运算符,只要对应的二个二进位有一个为1时,结果位就为1;
- ^:按位异或运算符,当两对应的二进位相异时,结果位1;
- ~:按位取反运算符,对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1;
- <<:左移动运算符,运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0;
-
:右移动运算符,把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数;
#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
print "1 - c 的值为:", c # 12
c = a | b; # 61 = 0011 1101
print "2 - c 的值为:", c # 61
c = a ^ b; # 49 = 0011 0001
print "3 - c 的值为:", c # 49
c = ~a; # -61 = 1100 0011
print "4 - c 的值为:", c # -61
c = a << 2; # 240 = 1111 0000
print "5 - c 的值为:", c # 240
c = a >> 2; # 15 = 0000 1111
print "6 - c 的值为:", c # 15
- 成员运算符:in not in
- in:如果在指定的序列中找到值返回true,否则返回false;
- not in:如果在指定的序列中没有找到值返回true,否则返回false;
#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 10
list = [1, 2, 3, 4, 5 ];
if ( a in list ):
print "1 - 变量 a 在给定的列表中 list 中"
else:
print "1 - 变量 a 不在给定的列表中 list 中"
- 身份运算符:用于比较两个对象的存储单元
- is:is是判断两个标识符是不是引用自一个对象;
- is not:is not 是判断两个标识符是不是引用自不同对象;
#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 20
b = 20
if ( a is b ):
print "1 - a 和 b 有相同的标识"
else:
print "1 - a 和 b 没有相同的标识"
# 1 - a 和 b 有相同的标识
# 修改变量 b 的值
b = 30
if ( a is b ):
print "3 - a 和 b 有相同的标识"
else:
print "3 - a 和 b 没有相同的标识"
# 3 - a 和 b 没有相同的标识
- 运算符优先级:菜鸟教程
-
数字
-
字符串
-
list:list是一种有序的集合,可以随时添加和删除其中的元素。
- 代码:list = ['Michael', 'Bob', 'Tracy']
- 索引:从0开始,越界报错,可以为负数;
- 方法:
- len(list): 获得list元素的个数;
- list.append('222'):往list中追加元素到末尾;
- list.insert(1, '222'):把元素插入到指定的位置;
- list.pop():删除list末尾的元素;
- list.pop(1):删除指定位置的元素;
- 特点:
- 可以直接赋值给对应的索引位置;
- list里面的元素的数据类型可以不同;
- list元素也可以是另一个list,二维数组、三维、四维...;
- 如果一个list中一个元素也没有,就是一个空的list,它的长度为0;
- tuple:有序列表——元祖,tuple和list非常类似,但是tuple一旦初始化就不能修改。
- 代码:list = ('Michael', 'Bob', 'Tracy')
- 索引:和list相同,但不能赋值成另外的元素;
- 特点:
- 当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来;
- 如果要定义一个空的tuple,可以写成:t = ();
- 如果要定义一个只有1个元素的tuple:t = (1,);
- tuple所谓的“不变”是说,tuple的每个元素指向永远不变,即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
-
字典
-
数据类型转换
- 条件语句
- while循环语句
- for循环语句
- 循环嵌套
- break语句
- continue语句
- pass语句