python这门语言属实很强大,之前早就学过,但是心里没有什么底,一提到Python,能够想到的不多,所以写几篇博客,总结总结。熟悉熟悉。
数据类型和变量
一、数据类型
整数
16进制用0x前缀。
存储长度是有大小限制的。
浮点数
比较大的浮点数需要用科学记数法表示,例如:把10用e替代,1.23×1091.23×109就是1.23e9
超出一定范围就是直接表示inf无限大。
字符串
布尔值
空值
是Python中一个特殊的值,用None表示。None不能理解为0,他是一个空值。
对象
变量本身类型不固定的语言称之为动态语言,而静态语言在定义变量时必须指定变量类型。如果赋值的时候类型不匹配,就会报错。
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()