(Python Primary) - 廖雪峰Python3 - 3.Python基础

3. Python基础

3.1 数据类型和变量

3.1.1 数据类型

整数
  • Python可以处理任意大小的整数,当然包括负整数

  • 十六进制0x…

浮点数
  • 1.23x109就是1.23e9

  • 0.000012可以写成1.2e-5

字符串
  • 可用''"",字符串中包含这两个字符时用\来转义

  • 转义字符

转义字符意义
\n换行
\t制表符
\ \\
  • Python还允许用r''表示''内部的字符串默认不转义

  • Python允许用'''...'''的格式表示多行内容

>>> print('''line1
... line2
... line3''')
line1
line2
line3
布尔值
  • True False
  • 运算:and, or,not
空值
  • None

3.1.2 变量

3.2 字符串和编码

3.2.1 字符编码

  • ASCII编码、GB2312编码
  • Unicode把所有语言都统一到一套编码里
  • ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节
  • Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算→转化为“可变长编码”的UTF-8编码
  • 大量只支持ASCII编码的历史遗留软件可以在UTF-8编码下继续工作

3.2.2 Python的字符串

  • Python 3版本中,字符串是以Unicode编码的
  • 单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符
>>> ord('A')
65
>>> chr(66)
'B'
  • Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes

  • bytes类型的数据用带b前缀的单引号或双引号表示 x = b'ABC'

  • Unicode表示的str通过encode()方法可以编码为指定的bytes

>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87
  • bytes中,无法显示为ASCII字符的字节,用\x##显示。
  • 从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
  • 如果bytes中只有一小部分无效的字节,可以传入errors='ignore'忽略错误的字节

  • 计算str包含多少个字符,可以用len()函数

>>> len('ABC')
3
>>> len(b'ABC')
3
>>> len('中文'.encode('utf-8'))
6
  • 当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

3.3.3 格式化

  • 占位符
占位符替换内容
%d整数
%f浮点数
%s字符串
%x十六进制整数
  • .format()

3.3 使用list和tuple

3.3.1 list

  • [ ]
  • len(list)
  • append(element)
  • insert(index, element)
  • pop([index])
  • .sort()

3.3.2 tuple

  • ( )
  • 一旦初始化就不能修改
  • Python在显示只有1个元素的tuple时,也会加一个逗号,
>>> t = (1,)
>>> t
(1,)

3.4 调节判断

3.5 循环

3.6 使用dict和set

3.6.1 dict

  • 字典,也称map。使用键-值(key-value)存储,具有极快的查找速度。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
  • 判断key是否存在
>>> 'Thomas' in d
False
>>> d.get('Thomas', -1)
-1
  • 删除元素pop(key)

  • dict和list对比

  • dic:

  1. 查找和插入的速度极快,不会随着key的增加而变慢;
  2. 需要占用大量的内存,内存浪费多。
  • list:
  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存很少。
  • dict的key必须是不可变对象

  • key计算位置的算法称为哈希算法(Hash)

3.6.2 set

  • 也是一组key的集合,但不存储value。
  • key不能重复
  • 提供list作为输入集合
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
  • add(key)

  • remove(key)

  • set可以看成数学意义上的无序和无重复元素的集合, 两个set可以做数学意义上的交集、并集等操作s1 & s2, s1 | s2

参考教程

廖雪峰老师的Python3教程

(转载整理自网络,如有侵权,联系本人删除,仅供技术总结使用)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值