python学习(01)

开始系统学习python

本节主要回顾python的基本语法

基本语法

标识符

标识符由字母数字下划线组成,开头不能是数字,区分大小写

  • 单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import 而导入。
  • 以双下划线开头的 __foo代表类的私有成员
  • 以双下划线开头和结尾的 __foo__代表 Python 里特殊方法专用的标识,如 init() 代表类的构造函数。

书写语法

  • 多行语句

  • 多行注释

  • Python 可以同一行显示多条语句,方法是用分号 ; 分开

  • print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 ,

  • 1
    2
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-

第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

Number类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int(x [,base ])         将x转换为一个整数  
long(x [,base ]) 将x转换为一个长整数
float(x ) 将x转换到一个浮点数
complex(real [,imag ]) 创建一个复数
str(x ) 将对象 x 转换为字符串
repr(x ) 将对象 x 转换为表达式字符串
eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s ) 将序列 s 转换为一个元组
list(s ) 将序列 s 转换为一个列表
chr(x ) 将一个整数转换为一个字符
unichr(x ) 将一个整数转换为Unicode字符
ord(x ) 将一个字符转换为它的整数值
hex(x ) 将一个整数转换为一个十六进制字符串
oct(x ) 将一个整数转换为一个八进制字符串

Python math 模块提供了许多对浮点数的数学运算函数。

Python cmath 模块包含了一些用于复数运算的函数。

字符串和编码

ASCII编码是1个字节,而Unicode编码通常是2个字节。

把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:

对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:

Python的字符串类型是str,在内存中以Unicode表示,传输时需要转换成bytesbytes类型的数据用带b前缀的单引号或双引号表示

字符串开头的含义

  • b
  • r 非转义原生字符
  • u unicode编码字符,python3默认字符串编码方式。

使用encodedecode进行编解码

List和tuple

list

  • 有序集合

tuple

  • 初始化后无法修改的有序列表

  • 在定义的时候,tuple的元素就必须被确定下来

  • 只有1个元素的tuple定义时必须加一个逗号,,来消除歧义

dict和set

dict

  • 又称map,使用键-值(key-value)存储,具有极快的查找速度

  • 判断key不存在

    • 通过in判断key是否存在
    • 通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value
  • dict是用空间来换取时间的一种方法。

  • hasn算法决定key不可变

set

  • 不重复的key的集合

注意不可变对象,例如str

分享到: