4. Python基础学习笔记——Python基础

# Python基础

  • 任何一种编程语言都有自己的一套语法,编译器和解释器就是负责把符合语法的代码转换成科执行机器码,最后执行。
  • Python语法简单,采用缩进的方式。
  • #开头的语句是注释,可以是任何有用的信息,解释器则会忽略掉注释。
  • :结尾的语句,缩进的语句位代码块
  • 始终坚持使用4个空格的缩进方式。如果使用Tab,则将Tab设置成自动转换为4个空格,不要和Tab混用。

数据类型和变量

计算机可以处理不同类型的数据,因此就有不同类型数据的定义。在Python中,可以直接处理的数据类型主要如下。

  • 整数:Python可以处理任意大小的整数。使用十六进制表示整数比较方便。如0xff00
  • 浮点数:整数和浮点数在计算机内部存储的方式是不同的。整数永远都是精确的(即使是除法也是精确的),而浮点数运算则可能会有误差。
  • 字符串:使用单引号'或者双引号"括起来的任意文本,比如'abc'"xyz"等等。可以使用\进行转义。此外,可以使用raw字符串,r''内部的字符串默认不会转义。此外,可以使用'''...'''表示多行内容。
  • 布尔值:Python中bool值是FalseTrue,注意 首字母大写。可以使用and, or, not进行运算。
  • 空值:None表示空值,是一个特殊的值。它和0是不同的,记住了。
  • 变量:不仅是数字,还可以是任意数据类型。不要把赋值语句的等于号等同于数学的等于号。
  • 常量:常量就是不可以改变的量。在Python中,通常将常量全部大写表示。但是实际上Python不存在真正意义上的常量。

练习

  • Python中的除法有两种:\是精确除法,\\是整除法。
  • 打印出:s3 = r'Hello, "Bart"':print(r"r'Hello,", '"Bart"')
  • 打印出:s4 = r'''Hello, \n Lisa!''':

    print('''r\'''Hello, 
    ... Lisa!''')

总结

  • Python支持多种数据类型,在计算机内部,可以把任何数据看成个一个对象。变量则是指向这些对象的。变量赋值,实际就是关联变量和对象。
  • Python整数没有大小限制,浮点数也同样无大小限制,超过范围则表示inf无限大。

字符串和编码

  • Unicode把所有语言都同意到一套编码中,这样就不会有乱码问题了。
  • Unicode常用两个字节表示一个字符,偏僻的可能需要四个字节。现代操作系统和大多数编程语言都直接支持Unicode
  • UTF-8编码:可变长编码。它会把一个Unicode字符根据不同的数字大小编码成1-6个字节。常用的英文字母被编码成一个字节,汉子通常是三个,只有很生僻的字符才会编码成6个字节。UTF-8编码在文字中存在大量英文时,可以节省空间。
  • 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输时,就转换成UTF-8编码。
  • 读取时,从文件中读取UTF-8编码字符转换成Unicode到内存中,编辑保存时Unicode再次转换成UTF-8。

Python的字符串

  • Python3中,字符串是以Unicode编码的,支持多种语言的。
  • 对于单字符的编码,Python提供ord()函数获取字符的整数表示,chr()函数把编码转换成对应的字符。
  • Python字符串类型是str,在内存中是以Unicode表示,一个字符对应若干个字节。如果要在网络上传输或者保存到磁盘,旧需要把str便为以字节为单位的bytes
  • encode()decode()方法能够分别编码成指定bytes以及解码成Unicode字符串。
  • 要计算str中包含多少个字符,可以用len函数。
  • len()函数计算str的字符数,如果换成byteslen()就计算字节数。
  • 为了避免乱码问题,应当始终坚持使用UTF-8编码对strbytes进行转换。
  • Python字符串格式化:%即可
  • 常见占位符:
占位符 作用
%d 整数
%f 浮点数
%x 十六进制整数
%s 字符串

练习

>>> print('%.1f%%' % r)
18.1%

总结

  • Python 3的字符串使用Unicode,直接支持多种语言
  • str和bytes互相转换时,需要指定编码。最常用的是UTF-8。牢记,仅仅使用UTF-8编码,麻烦最少。

使用list和tuple

list

  • Python内置的一种数据类型,是一种有序的结合,可以随时添加和删除其中的元素
  • 可以使用索引访问list中的每个元素,索引从0开始。
  • 使用append()追加元素
  • 使用insert()插入元素
  • 使用pop()从末尾删除元素
  • 使用pop(i)删除指定元素
  • 使用直接赋值可以替换某个位置的元素
  • 可以嵌套
  • 空listL = []
  • sort()以及reverse()方法都是对list本身进行修改的

tuple

  • tuple类似于list,但是tuple一旦初始化,就不再可以修改了。也就是说,它是一个只读的对象了。
  • tuple会便得更加安全,所以尽量使用tuple代替list。
  • tuple陷阱,当定义只有一个元素时,定义方法:t = (1, )。否则Python按照小括号进行计算。
  • tuple的不变性体现在它的每个元素所指向的位置是永恒不变的。即所谓的“指向不变”,若想让内容不变,也需要保证tuple的每个元素本身不可改变。

总结

  • list和tuple是Python内置的有序集合,一个可变,一个不可变。

条件判断

条件判断

  • 使用if语句实现
  • 使用if... elif...语句实现详细判断
  • if语句的特点是,从上往下判断,如果某个判断上是True,则执行后忽略后面的elifelse

总结

  • 条件判断可以让计算机自己做出选择,Pythond if...elif...else很灵活。

循环

  • Python中的循环有两种,一种是for ... in循环,依次把list或tuple中的每个元素迭代出来。
  • range()函数可以生成一个整数序列。根据参数,可以生成连续的也可是等间隔的。

    range(5)
    range(1, 5)
    range(1, 5, 2)
  • 另外一种则是while循环。
  • 循环是让计算机能够做重复性任务的有效方法。

使用dict和set

dict

  • Python中内置了字典支持,dict,其他语言中也有map对应的,键值对(key-value)存储。具有极快地查找速度。
  • dict的实现原理类似于查字典,速度快。
  • 除了初始化,还可以通过key的方式放入数据:

    >>>d['Adam'] = 67
    >>>print(d)
  • 可以使用in判断是否存在key
  • 使用get方法判断
  • 使用pop(key)方法删除key-value
  • dict内部存放的顺序和key放入的顺序是没有关系的。
  • 与list对比:
  • 查找和插入速度极快,不会随着key的增加二增加
  • 需要占用大量的内存,内存浪费较多
  • 用空间换取时间

  • dict中的key是不可变的对象。

set

  • 一组key的集合,但是不会存储value,由于key不可以重复,所以,在set中没有重复的key
  • set不是有序的
  • 重复元素会被过滤掉
  • 使用add增加key
  • 使用remove删除key
  • set可以做交集(&),并集(|)等操作
  • tuple是不可对象,因此,tuple也可以作为key

你可能感兴趣的:(4. Python基础学习笔记——Python基础)