python这门语言属实很强大,之前早就学过,但是心里没有什么底,一提到Python,能够想到的不多,所以写几篇博客,总结总结。熟悉熟悉。
数据类型和变量
一、数据类型
- 整数
- 16进制用
0x
前缀。 - 存储长度是有大小限制的。
- 16进制用
- 浮点数
- 比较大的浮点数需要用科学记数法表示,例如:把10用e替代,1.23×1091.23×109就是
1.23e9
- 超出一定范围就是直接表示
inf
无限大。
- 比较大的浮点数需要用科学记数法表示,例如:把10用e替代,1.23×1091.23×109就是
- 字符串
- 布尔值
- 空值
- 是Python中一个特殊的值,用
None
表示。None
不能理解为0,他是一个空值。
- 是Python中一个特殊的值,用
对象
变量本身类型不固定的语言称之为动态语言,而静态语言在定义变量时必须指定变量类型。如果赋值的时候类型不匹配,就会报错。
Python属于一门动态语言,而Java、C++都属于静态语言,所以Python比较灵活。
任何数据都可以看作是一个对象,而对象就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量关联起来。
对变量赋值x = y
,是把变量x
指向真正的对象,该对象是变量y
所指向的。随后对变量y
的赋值不影响对量x
的指向。
常量
在Python中,通常用全部大写的变量名表示常量。
PS:整数的除法,有两种:
/
两个整数除完的结果为浮点数。//
地板除,两个整数除完的结果为整数。
二、字符串和编码
2.1-编码
ASCII
- 编码有127个字符,保存一些英文字母、数字、符号。
- 单字节
Unicode
- 现代操作系统和大多数编程语言都是直接支持Unicode。
- 双字节
- UTF-8
- 可变长编码,可根据类型编码长度不同。
- 一个中文通常占三个字节。一个英文只占1个字节。
2.2-字符串
在Python3的版本中,字符串是以Unicode
编码的,所以说,Python的字符串支持多语言。
单字符的编码,Python提供了以下操作:
ord()
函数获取字符的整数表示。chr()
函数把编码转为对应的字符。
2.2.1-"Abc"
和b"ABC"
的区别
显示的内容都是一样的。
但是:
- 前者是
str
,一个字符对应若干个字节。 - 后者
bytes
的每个字符都只占用一个字节。
2.2.2-编码和解码
encode()
方法可以将str
转换为相应的bytes。decode()
方法将bytes编码为str。
- 可以传入
errors='ignore'
忽略错误的字节。
- 可以传入
2.2.3-计算长度
len()
计算字符串含有多少个字符。
如果将字符串转换为bytes,那么计算的就是字节数。
2.2.4-文件设置编码
通常我们会在.py开头加上两行注释
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
- 第一行注释是告诉
linux/OS X
系统,这是一个Python可执行程序。 - 第二行注释告诉编译器按照UTF-8编码读取源代码。
- 当然,你还需要设置你的py文件编码为UTF-8
2.2.5-格式化
在Python中,用两种方式:
采用的格式化方式和c语言是一致的,用
%
实现。- 格式例子:
"hello %s %4d %04d %-4d" % ("world",2,2,2)
- 中间用
%
相隔,而不是,
,后边的值需要用括号括起来。 - Ps:
%%
来转义,可以输出%
- 格式例子:
format()
也是一种格式化的方法。- 格式:
'Hello, {0}, 成绩提升了 {1:.1f},{2},{3}'.format(arg1,arg2,arg3)
- 前边的0,1,2作为占位符,替换后边的参数。
- 格式:
三、list、tuple、dict、set
list
- 有序集合
- 和其他语言不一样的是,元素数据类型可以不一样
定义
a = []
元素个数
len(list)
返回元素个数
获取
和数组类似,用下标进行访问每一个元素。从下标0
开始。
-1
做索引可以直接获取最后一个元素。
添加
appene()
添加至末尾insert(index,obj)
添加到指定位置(index)
删除
pop()
删除末尾的元素。pop(index)
删除指定位置的元素。
tuple
- 有序列表
- 一旦初始化不能修改。在一些场景下,其实tuple很有用。
- 元素类型可以不一致。
可以像使用list那样获取元素。但是不能修改、添加、删除。
一定要理解这个的不变
。如果元素是一个对象,不变的是他的引用,而不是他的值。它的值你是可以修改的。
定义
a = ()
- 括号里面不写元素的话,a为空tuple
- 有一个的时候,需要加上逗号。
- 有多个的时候,以逗号分隔。
dict
- 字典
dictionary
- 类似于其他语言的map,使用键值对进行存储。
- key的类型可以是字符串、数字、元组。
通过in
判断key是否存在
key in d
return boolean;get(key,args)
- 若存在返回value
- 否则返回args。
删除key
pop(key)
,对应的value也会从dict中删除。
dict内部存放的顺序和key放入的顺序是没有关系的。
清空字典
clear()
删除字典
del dict
输出字典
str(dict)
与list相比:
list | dict |
---|---|
查找和插入的速度极快,不会随着key的增加而变慢。 | 查找和插入的时间随着元素的增加而增加。 |
需要占用大量的内存,内存浪费多。 | 占用空间小,浪费内存很少。 |
所以,dict是用空间换时间。
key不可变性
dict中的key必须为不可变对象。
因为dict在高速查找的时候,用哈希算法通过key计算位置。
set
- 和其他语言相似,不能够重复。
- 没有顺序
创建
a = {value1,value2,value3}
a = set(value)
添加
add()
update()
删除
remove(x)
若元素不存在,会报错。discard(x)
若元素不存在,不会发生错误。pop(x)
随即删除一个元素。
元素个数
len(s)
清空集合
clear()