Python基础
Posted wanao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础相关的知识,希望对你有一定的参考价值。
数据结构和变量
- 整数:包括正整数、负整数、二进制整数、十六进制整数等
- 浮点数:即小数,可使用数学写法,也可使用科学计数法
- 字符串:以单引号‘ 或 双引号 ”括起来的任意文本
- 布尔值:只有True和False两种值,布尔值可以使用and、or、not运算
- 空值:用None表示,None是一个特殊的值,不能理解为0,因为0有意义
- 变量:Python为动态语言,可使用赋值语句=将任意数据类型赋值给变量
- 常量:不变的量,Python中通常使用全部大写的变量名表示常量
字符编码
Unicode编码:将所有的语言统一到一套编码中,解决乱码问题。Unicode常用两个字节表示一个字符(偏僻的字符需要4个字节)。Python3中字符串使用Unicode,直接支持多语言。
UTF-8编码:可变长编码,将一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,生僻的字符为4-6个字节。
在计算机内存中统一使用Unicode编码,在需要保存到硬盘或需要传输的时候转换为UTF-8编码;在浏览网页的时候服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器。
传输数据时,要把str转换为bytes,可以通过encode()方法:
>>> ‘ABC‘.encode(‘ascii‘)
b‘ABC‘
>>> ‘你好‘.encode(‘utf-8‘)
b‘xe4xbdxa0xe5xa5xbd‘
从网络或磁盘读取字节流,要把bytes转换为str,可以通过decode()方法:
>>> b‘ABC‘.decode(‘ascii‘)
‘ABC‘
>>> b‘xe4xbdxa0xe5xa5xbd‘.decode(‘utf-8‘)
‘你好‘
中文必须使用UTF-8编码,因此若源代码中包含中文,需按照UTF-8读取源代码,否则可能输出乱码。
格式化
在Python中,% 用来实现格式化,%运算符用来格式化字符串。在字符串内部,%s表示用字符串替换,%d表示用整数替换,%f表示用浮点数替换,%x表示用十六进制整数替换。
小窍门:如果不确定应该用什么,使用%s永远起作用,它会将任何数据类型转换为字符串。
list和tuple
list:一种有序集合,可以随时添加或删除其中的元素。
创建列表
>>> test = [‘A‘,‘B‘,‘C‘]
>>> test
[‘A‘, ‘B‘, ‘C‘]
访问列表元素:使用索引
>>> test[0]
‘A‘
>>> test[1]
‘B‘
>>> test[2]
‘C‘
>>> test[-1]
‘C‘
>>> test[-2]
‘B‘
>>> test[-3]
‘A‘
追加元素 append()
>>> test.append(‘D‘)
>>> test
[‘A‘, ‘B‘, ‘C‘, ‘D‘]
插入元素 insert()
>>> test.insert(1,‘E‘)
>>> test
[‘A‘, ‘E‘, ‘B‘, ‘C‘, ‘D‘]
删除元素 pop()
>>> test.pop() # 删除末尾元素
‘D‘
>>> test
[‘A‘, ‘E‘, ‘B‘, ‘C‘]
>>> test.pop(1) # 删除指定索引元素
‘E‘
>>> test
[‘A‘, ‘B‘, ‘C‘]
替换元素:直接赋值
>>> test[1] = 1
>>> test
[‘A‘, 1, ‘C‘]
注意:list内元素的数据类型可以不同
tuple:一种有序列表,一旦初始化就不能修改
>>> tuple_test = (‘A‘,‘B‘,‘C‘)
>>> tuple_test
(‘A‘, ‘B‘, ‘C‘)
tuple没有append()、insert()方法,也不能赋值为另外的元素;由于tuple不可变(指向不变,若list为tuple中元素,list可变,但tuple指向list不变),因此代码更加安全。
注意:创建单元素tuple时,为避免冲突,要使用逗号,
>>> tuple_test = (1,)
条件判断
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
循环
- for...in...循环,依次将list或tuple中的每个元素迭代出来
- while循环,只要条件满足,就不断循环,当条件不满足时退出循环
- break:在循环中,break语句可以提前退出循环
- continue:在循环中,continue可以跳过当前这次循环,直接开始下一次循环
注意:break与continue会造成代码执行逻辑分叉过多,容易出错,少用为宜。
dict
Python内置字典,使用键-值(key-value)存储,具有极快的查找速度
>>> dict_test = {‘apple‘:20,‘banana‘:10}
>>> dict_test[‘apple‘]
20
与list比,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢
- 需要占用大量的内存,内存浪费多
list:
- 查找和插入的时间随着元素的增加而增加
- 占用空间少,内存浪费少
注意:dict的key必须为不可变对象
set
set也是一组key的集合,但不存储value,且key不能重复。set可以看作数学意义上无序和无重复元素的集合,两个set可以做数学意义上的交集和并集等操作。要创建一个set需要一个list作为输入集合
>>> set_test = set([1,1,2,3,4,5,6])
>>> set_test
{1, 2, 3, 4, 5, 6}
添加元素:add(key)
>>> set_test.add(7)
>>> set_test
{1, 2, 3, 4, 5, 6, 7}
删除元素:remove(key)
>>> set_test.remove(7)
>>> set_test
{1, 2, 3, 4, 5, 6}
以上是关于Python基础的主要内容,如果未能解决你的问题,请参考以下文章