• 基础知识第一部分
  • 1、打印:
  • python2 : print 'hello,world'
  • python3 : print('hello,world')
  • 注意:在print语句中可以打印多个字符串,用逗号相连即可,逗号会被当做空格打印出来
  • 2、首行代码格式:当代码中包含中文的时候,需要告诉解释器代码以utf-8编码保存
  • #-*- coding: utf-8 -*-
  • 3、输入:
  • python2 : raw_input()
  • python3 : input()
  • 4、变量:可以改变的量,可以是整数、浮点数、字符串等
  • a='ABC'
  • b=a
  • a='XYZ'
  • print(b)
  • 注意:这里的b仍然指向‘ABC’
  • 5、缩进:4个空格,如果使用Tab键,则要将Tab键设置为默认4个空格,并且Tab键和空格不要混用
  • 6、数据类型:
  • 整数:1、100、-8、0 等
  • 浮点数:也称小数
  • 字符串:在python3中字符串使用Unicode编码
  • 用单引号或者双引号括起来的任意文本
  • 如果字符串中包含多行内容,可以使用三引号 '''......'''
  • 如果字符串内包含了单引号或者双引号,可以使用转义字符 \ 来标识,或者使用原始字符串r'......'
  • 如果要计算字符串包含多少个字符,可以使用 len() 函数
  • 布尔值:True或者False
  • 空值:None ,注意None不是0
  • 7、常量:如π等
  • 8、除法:
  • / : 结果取浮点数,即使可以整除
  • // : 地板除,结果取整数部分
  • % : 结果取余数部分
  • 9、编码
  • 8比特(bit)作为一个字节(byte),一个字节能表示的最大整数是255(二进制的11111111)
  • Unicode通常用两个字节表示一个字符(特殊字符使用4个字节)
  • ASCII编码是1个字节,Unicode编码通常是2个字节
  • UTF-8 编码把一个Unicode字符根据不同的数字大小变成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。
  • 如果需要传输的文本包含大量的英文字符,使用utf-8编码可以节省空间。
  • 对于单个字符的编码,ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符
  • python的字符串类型是str,在内存中以Unicode表示,一个字符串对应若干个字节。如果要在网络上传输,或者保存到磁盘中,就需要把str变成以字节为单位的bytes,通过 encode() 方法进行转换,对bytes类型的数据用带b前缀的单引号或者双引号表示。反之通过decode()方法将bytes类型转换为str类型。
  • 10、格式化
  • % 运算符用来格式化字符串(%%表示一个%)
  • %s表示用字符串替换
  • %d表示用整数替换
  • %f表示用浮点数替换
  • %x表示用十六进制整数替换
  • 11、list:有序的集合,可以随时添加或者删除其中的元素 ,用 [ ] 表示
  • len() 函数可以获得 list 元素的个数
  • list的索引从0开始,最后一个元素的所引为 -1 。
  • append() 方法可以往list中追加元素到末尾
  • insert() 方法可以把元素插入到指定的位置
  • pop(i) 方法可以删除list中的元素,默认删除最后一个元素
  • 要把某个元素替换成别的元素,可以直接赋值给对应元素的索引位置
  • list里面的元素的数据类型可以不同,也可以是一个列表或者元组
  • 12、tuple:有序的集合,与list类似,但是元组不可修改。
  • 定义tuple的时候,元素必须被确定下来。
  • 要定义一个空的tuple,可以写成 ( )
  • 要定义一个只有一个元素的tuple,要在唯一的元素后面加上一个逗号
  • tuple不可变指的是tuple中的元素指向不可变,比如其中的一个元素指向一个list,这个list中的内容是可以变的。
  • 13、条件判断
  • if、elif、 else
  • 注意 冒号和缩进 。
  • if语句的执行是从上往下判断的,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else。
  • 14、循环
  • for循环:依次把list或者tuple中的每一个元素迭代出来
  • while循环:只要条件满足就不断循环
  • break:跳出本循环,执行之后的程序
  • continue:跳出本次循环,进入下一次循环
  • 15、dict(字典)
  • 用 { } 表示
  • key-value
  • 无序
  • 一个key只能对应一个value,多次对一个key放入value会把前面的值冲掉,如果key不存在,会报错
  • 避免报错的方法有两个:
  • 通过in判断key是否存在
  • 通过get方法
  • 要删除一个key,可以使用pop(key)的方法,对应的value也会被删除
  • dict的key必须是不可变对象
  • 16、set(集合)
  • set是一组key的集合,不包含value
  • 无序
  • 用 { } 表示
  • 用set()方法创建,需要提供一个列表作为输入集合
  • 元素无重复
  • add(key)方法可以添加元素到set中
  • remove(key)方法可以删除元素
  • 两个set可以做数学意义上的交集、并集等操作
  • 基础知识第二部分(函数)
  • 1、内置函数
  • abs():取绝对值
  • int(): 把其他数据类型转换为整型
  • float(): 把其他数据类型转换为浮点型
  • str(): 把其他数据类型转换为字符串
  • bool(): 把其他数据类型转换为布尔类型
  • max(): 接受任意多个参数,返回其中最大的元素
  • min(): 接受任意多个参数,返回其中最小的元素
  • isinstance()可以对参数类型进行检查
  • >>> isinstance(1,int)
  • True
  • >>> isinstance(1,str)
  • False
  • 2、自定义函数
  • 格式: def 函数名 () :
  • 函数的返回值用return语句返回,如果没有return语句,函数执行完会返回None
  • 函数也可以返回多个值,以tuple形式返回
  • 3、空函数:
  • pass语句
  • 4、函数参数:
  • (1)位置参数:根据对应的位置对参数进行赋值
  • def power(x,y):
  • return x**y
  • power(2,3)
  • #x=2; y=3
  • (2)默认参数:
  • 定义函数时对某些参数进行赋值,在函数调用的时候,如果重新对该参数进行了赋值,则采用新的值,如果没有进行赋值,则采用默认值。
  • def power(2,y=3):
  • return x**y
  • power(2) ->8
  • power(2,4) ->16
  • 当有多个默认参数时,既可以按顺序提供参数来调用函数,也可以通过指定参数的名字来调用函数
  • def hanshu(x,y=2,z=3):
  • return x+y+z
  • >>> hanshu(2)
  • 7
  • >>> hanshu(2,1,1)
  • 4
  • >>> hanshu(2,z=1,y=2)
  • 5
  • 默认参数必须指向不可变对象,因为对于可变对象,在函数被调用时如果对参数进行了修改,再下一次调用该函数时,默认参数是被修改过后的值。
  • (3)可变参数:这里的可变是指参数的数量是可变的,而不是参数的内容。这些参数在调用时自动组装成一个tuple
  • def hanshu(*num):
  • print(num)
  • >>> hanshu(1,2,3,4)
  • (1, 2, 3, 4)

  • def calc(*numbers):
  • sum = 0
  • for i in numbers:
  • sum = sum + i
  • return sum
  • >>> calc(1,2)
  • 3
  • >>> calc(1,2,3,4)
  • 10
  • >>> calc(*(1,2,3)) 注意:如果传入的参数本身就是一个tuple或者list,可以在前面加上 * 将其中的所有元素作为可变参数传入。
  • 6
  • (4)关键字参数:关键字参数允许传入0个或者任意个含参数名的参数,这些参数咋函数内部自动组装为一个dict
  • def hanshu(**num):
  • print(num)
  • hanshu(one = '1',two = '2')
  • {'two': '2', 'one': '1'}
  • (5)参数组合的顺序:
  • 参数定义的顺序必须是:必选参数、默认参数、可变参数/命名关键字参数和关键字参数。  
  • 在函数调用的时候, Python 解释器自动按照参数位置和参数名把对应的参数传进去。
  • 5、递归函数:如果在一个函数内部调用这个函数本身,那么这个函数就是递归函数
  • def fact(n):
  • if n==1:
  • return 1
  • return n*fact(n-1)
  • >>>fact(1)
  • 1
  • >>>fact(5)
  • 120
  • 高级特性
  • 1、切片:取一个list、tuple或者字符串的其中一部分
  • >>> a = [1,2,3,4,5]
  • >>> a[0:3]
  • [1, 2, 3]
  • 注意:
  • 切片包含第一个索引位置的值,但是不包含后一个索引位置的值(顾前不顾后)
  • [:] 可以直接复制一个list、tuple或者字符串
  • 2、迭代:
  • 给定一个list或者tuple,可以通过for循环来遍历这个list或者tuple,这种遍历称作迭代
  • python的for循环不仅可以用在list和tuple上,还可以用在其他可迭代对象上,比如字典默认迭代的是key。
  • 如果想要对list对象实现下标循环,可以使用enumerate() 函数把一个list对象变成索引-元素对。
  • for i, value in enumerate(['A','B','C']):
  • print(i,value)
  • 0 A
  • 1 B
  • 2 C
  • 3、列表生成式
  • list(range(0,10)) => list[0,1,2,3,4,5,6,7,8,9]
  • 举例:
  • >>>[x * x for x in range(0,10)]
  • [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

  • >>> [x * x for x in range(1, 11) if x % 2 == 0]
  • [4, 16, 36, 64, 100]

  • >>> [m + n for m in 'ABC' for n in 'XYZ']
  • ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

  • >>> d = {'x': 'A', 'y': 'B', 'z': 'C' }
  • >>> [k + '=' + v for k, v in d.items()]
  • ['x=A', 'y=B', 'z=C']

  • >>> L = ['Hello', 'World', 'IBM', 'Apple']
  • >>> [s.lower() for s in L]
  • ['hello', 'world', 'ibm', 'apple']