Skip to content

Latest commit

 

History

History
169 lines (136 loc) · 6.23 KB

python-notebook.md

File metadata and controls

169 lines (136 loc) · 6.23 KB

PYTHON语法和使用

基础语法

  1. 交互式编程VS脚本式编程;
  2. 标识符:
  • 标识符由字母、数字、下划线组成;
  • 标识符可以包括英文、数字、下划线,但不能以数字开头;
  • 标识符区分大小写;
  • python可以同一行显示多条语句,用分号;分开;
  • 特殊:
    • 以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
    • 以双下划线开头的 __foo 代表类的私有成员;
    • 以双下划线开头和结尾的 foo 代表 Python 里特殊方法专用的标识,如 init() 代表类的构造函数;
  1. 保留字符:菜鸟教程

  2. 行和缩进:

  • Python的代码块不使用大括号{}来控制类,函数以及其他逻辑判断,它使用缩进来写模块;
  • 缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量;
  • 错误提示:
    • IndentationError: unexpected indent:文件里格式不对了,可能是tab和空格没对齐的问题;
    • IndentationError: unindent does not match any outer indentation level:使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可;
  1. 多行语句:
  • Python语句中一般以新行作为语句的技术符,也可以使用斜杠()将一行的语句分为多行显示,语句中包含[],{},()就不需要使用多行连接符:
total = item_one + \
        item_two + \
        item_three
  1. 引号和注释
  • 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串;
  • 单行注释用#,多行注释用三个单引号(''')或三个双引号(""");

运算符

  1. 算数运算符: + - * / % ** //
  • **:幂,返回x的y次幂
  • //:取整数,返回商的整数部分
  1. 比较(关系)运算符:== != <> > < >= <=
  • <>:不等于,比较两个对象是否不相等,类似!=
  1. 赋值运算符:= += -= *= /= %= **= //=

  2. 逻辑运算符:and or not

  • not x:布尔“非”,如果x为true,返回false;如果x为false,但返回true;
  1. 位运算符:& | ^ ~ << >>
  • &:按位与运算符,参与运算的两个值,如果两个相应位都为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
  1. 成员运算符: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 中"
  1. 身份运算符:用于比较两个对象的存储单元
  • 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 没有相同的标识
  1. 运算符优先级:菜鸟教程

变量类型

  1. 数字

  2. 字符串

  3. 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;
  1. tuple:有序列表——元祖,tuple和list非常类似,但是tuple一旦初始化就不能修改。
  • 代码:list = ('Michael', 'Bob', 'Tracy')
  • 索引:和list相同,但不能赋值成另外的元素;
  • 特点:
    • 当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来;
    • 如果要定义一个空的tuple,可以写成:t = ();
    • 如果要定义一个只有1个元素的tuple:t = (1,);
    • tuple所谓的“不变”是说,tuple的每个元素指向永远不变,即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
  1. 字典

  2. 数据类型转换

语句

  1. 条件语句
  2. while循环语句
  3. for循环语句
  4. 循环嵌套
  5. break语句
  6. continue语句
  7. pass语句