文章目录
Python基本数据类型
1、Numbers(数字)
1.1整数(int)
通常被称为是整型或整数,可以是正整数或负整数,不带小数点。
1.2浮点数(float)
浮点型由整数部分与小数部分组成。
1.3布尔类型(bool)
布尔类型分为Ture和False
在Python3中True=1,False=0
1.4复数(complex)
复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。
2、字符串(String)
字符串定义:
字符串可以用""或’'来定义。
PS: 符号都是英文的符号。
比较字符串"内容"是否相同:
用“ == ”来比较两个字符串内的value值是否相同,返回值为布尔值。
比较两个字符串的ID值。
比较两个字符串"长度"是否相等:
len():显示字符串的长度,返回数字整型然后进行长度的比较,返回值为布尔值。
2.1运算符
- 常用的比较运算符:
PS:比较两个对象,其返回值都是一个布尔值。
符 | 名 | 描述 |
---|---|---|
> | 大于 | 见PS |
< | 小于 | 见PS |
>= | 大于等于 | 见PS |
<= | 小于等于 | 见PS |
== | 等于 | 见PS |
!=或<> | 不等于 | 见PS |
- 常用的字符运算符:
符 | 名 | 描述 |
---|---|---|
+ | 加 | 两个对象相加 |
- | 减 | 两个对象相减 |
* | 乘 | 两个对象相乘 |
/ | 除 | 两个对象相除 |
% | 取余 | 求余运算符,9%2的结果为1,返回被除数的余数 |
** | 幂 | 幂运算,x**y表示求x的y次幂 |
// | 取整 | 取整除,返回商的整数部分,9 // 2 的结果为4 |
- 常用的赋值运算符
符 | 例 |
---|---|
+= | a += b相当于a = a + b |
-= | a -=相当于a = a - b |
*= | a *= b相当于a = a * b |
/= | a /= b相当于a = a / b |
%= | a %= b相当于a = a % b |
**= | a **= b相当于a = a ** b |
//= | a //= b相当于a = a // b |
- 常用的逻辑运算符
符 | 名 | 例 | 描述 |
---|---|---|---|
and | 与 | 1<2 and 2>1 返回值为True | 从左往右判断两个条件,两个都成立返回True,否则返回Flase |
or | 或 | 1<2 or 2>3 返回值为True | 从左往右判断两个条件,两个中的一个为True则返回True,否则返回Flase |
not | 非 | not 1>2 返回值为True | 判断not后面的第一个条件,若为真,则返回Flase,若为假,则返回True |
2.2转义字符
符 | 描述 |
---|---|
\(在行尾时) | 续航符 |
\ | 反斜杠符号(\) |
\’ | 单引号(’) |
\’’ | 双引号(") |
\a | 响铃(会发出滴的一声) |
\b | 退格(删除\b前第一个字串符) |
\e | 转义 |
\000 | 空(代表空) |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符(TAB) |
\r | 回车(取\r后的字串符) |
\f | 换页 |
\oyy | 八进制,yy代表的字符,例如:\o12代表换行 |
\xyy | 十六进制,yy代表的字符,例如:\ox0a代表换行 |
other | 其他的字符以普通格式输出 |
2.3占位符
- 在输出里占位的符号
符 | 转换 |
---|---|
%c | 字符 |
%s | 通过str()字符串来格式化 |
%i | 有符号十进制整数 |
%d | 有符号十进制整数 |
%u | 无符号十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数(大小写字母) |
% X | 十六进制整数(大小写字母) |
%e | 索引符号(小写“e”) |
%E | 索引符号(大写“E”) |
%f | 浮点实数 |
%g | %f和%e的简写 |
%G | %f和%E的简写 |
2.4内置函数
内置函数 | 描述 |
---|---|
string.capitalize() | 将字符串的第一个字符转换为大写 |
string.center(width、fillchar) | 返回一个指定长度的宽度width居中的字符串,fillchar为填充的字符,默认为空格 |
string.count(str) | 返回str在string里面出现的次数 |
string.dencode(‘utf-8’) | 把str里面的内容编码 |
string.decode(‘utf-8’) | 把str里面的内容解码 |
string.isdigit() | 判断是否为数字 |
string.isalpha() | 判断是否为字母 |
string.lstrip() | 去除string左侧的空格 |
string.rstrip() | 去除string右侧的空格 |
string.strip() | 去除字符串前后的空格 |
srting.splist() | 分割字符串并写入列表中 |
’ '.join(list) | 以空格来拼接list里面的元素 |
string.lower() | 转换字符串中所有大写的为小写 |
string. upper() | 转换字符串所有为大写 |
string.title() | 转换字符串中所有第一个字符串为大写 |
string. max(str) | 返回str中最大的字母 |
string. min(str) | 返回str中最小的字母 |
string. isupper() | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,返回值为True,否则False |
string. islower | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,返回值为True,否则False |
string. istitle | 如果字符串是标题化则返回True,否则False |
string. isnumeric | 如果字符串中全是数字字符,返回True,否则False |
string. rfind | 从右侧检索(倒叙)想要查的字符串或者字符,并打印其位置数字,如果未查到返回-1 |
string. find | 可以正序(左侧)查找到想要查到的字符串或者字符,并打印其位置数字,如果未查到返回-1 |
string. replace | replace(old,new,[max]) max代表替换几次 |
len(string) | 统计string的长度 |
3、List(列表)
3.1创建列表
- list = [ ] #空列表
- list 2= [“周”,180,‘ABC’’] #列表中的内容可以是不同类型的
3.2更新列表
list = [“111”,“222”,“aaa”,“bbb”]
list[1] = “333” # 将列表的第二个元素更改为"333"
3.3查看列表内指定元素
3.4删除列表的元素
3.5列表切片截取
(补充字符串截取)
- 所谓逆序截取,就是先截取,再进行逆序.
- 官方名字:Extended Slices
- 格式:str[begin : end : step]
begin:起始位置
end:结束位置
step:间隔。s不等于0,默认为1
- 格式:str[begin : end : step]
- 注:区间为左闭右开
step>0,表示从左往右
step<0,表示从右往左 - 默认值:
- 当step>0时
begin默认为0
end默认为-1,切包含-1,即左闭右闭区间. - 当step<0时,
begin默认为-1
end默认为0,且包含0.即左闭右闭区间.
如上图举例
例 | 得 |
---|---|
str[1:3:1] | bc |
str[:8:2] | aceg |
str[-2:6:3] | gj |
解析:
-
str[1:3:1]
begin=1
end=3
step=1
step>0,所以从左往右
区间为左闭右开,所以截取到的字符串为‘bc’
因为step为1,所以,最后输出为’bc’ -
str[:8:2]
begin=0
end=8
step=2
step>0,所以从左往右
区间为左闭右开,所以截取到的字符串为‘abcdefgh’
因为step为2,所以,最后输出为’aceg’ -
str[-2:6:3]
begin=-2
end=6
step=3
step>0,所以从左往右
区间为左闭右开,所以截取到的字符串为‘ghijkl’
因为step为3,所以,最后输出为’gj’
如上图举例
例 | 得 |
---|---|
str[:-8:-1] | nmlkjih |
str[-2::-3] | mjgda |
str[::-1] | nmlkjihgfedcba |
解析:
- str[:-8:-1]
begin=-1
end=-8
step=-1
step<0,所以从右向左
区间为左闭右开,所以截取到的字符串为’nmlkjih’.
因为step为1,所以,最后输出为:’nmlkjih’ - str[-2::-3]
begin=-2
end=0
step=-3
step<0,所以从右向左
区间为左闭右闭,所以截取到的字符串为’mlkjihgfedcba’.
因为step为3,所以,最后输出为:’mjgda’ - str[::-1]
begin=-1
end=0
step=-1
step<0,所以从右向左
区间为左闭右闭,所以截取到的字串符为‘nmlkjihgfedcba’
因为step为1,所以,最后输出为:’nmlkjihgfedcba’
该命令就是所谓的逆序.
3.6列表的拼接
3.7列表末尾添加对象
3.8统计某个str,在列表出现的次数
3.9向列表添加另外一个列表的内容
3.10在列表指定位置插入对象
3.11移除列表中指定元素索引位置的对象
3.12移除列表中指定元素第一个匹配到的对象
3.13反向排序列表的对象
3.14自定义列表输出降序还是升序
3.15清空列表对象
3.16复制列表对象
4、Tuple(元组)
- Python的元组与列表类似,不同之处在于元组的元素不能修改。
- 元组使用小括号(),列表使用方括号[ ]
4.1创建空元组
4.2访问元组
4.3修改元组
元组中的元素值是不允许修改的,但我们可以对元组进行连接
4.4删除元组
元组中元素值是不允许删除的,可以使用del语句来删除整个元组
4.5元组运算符
与字符串一样,元组之间可以使用+号和*号进行运算。这就意味它们可以组合和复制,运算后会生成一个新的元组。
Python表达式 | 结果 | 描述 |
---|---|---|
len(1,2,3) | 3 | 计算元素个数 |
(1,2,3)+(4,5,6) | (1,2,3,4,5,6) | 连接 |
[ ’ Hi! ']*4 | (’ Hi! ‘,’ Hi! ‘,’ Hi! ‘,’ Hi! ') | 复制 |
3 in(1,2,3) | True | 元素是否存在 |
for x in (1,2,3):print x, | 1 2 3 | 迭代 |
4.6元组的索引和截取
4.7元组内置函数
5、Sets(集合)
集合与列表(List)类似,但集合中不允许有重复的元素,普通集合是可变的,Frozenset是不可变的,我们可以利用集合的特性消除重复元素或做并、交、差等数学操作
- 特征:
1.确定性(元素必须可hash)
2.互异性(去重)
3.无序性(集合中的元素没有顺序,先后之分)
5.1创建集合
5.2添加元素(重复添加则添加不上)
- 添加批量元素
5.3删除元素
5.4清空结合
6、Dictionaries(字典)
6.1字典简介
字典(dictionary)是除列表之外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
列表中元素通过下标进行定位,但是元素位置发生变化,则很难定位,python提供一种新的类型,那就是字典。字典中元素可以通过 key 访问。
说明:
字典是由花括号括起来的包含,key : value 两部分。
基本语法:dict = {‘name’:‘周杰伦’, ‘id’:020, ‘sex’:‘男’, ‘address’:‘台湾’}
6.2创建字典
每个键与值必须用冒号隔开(😃,每对用逗号分割,整体放在花括号中({})。键必须独一无二,但值则不必;值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。
6.3访问字典的值
6.4修改字典
6.5删除字典
注意:字典不存在,del会引发一个异常
6.6字典内置函数和方法
7、自定义数据类型
Python 允许通过继承去自定义数据类型,很多第三方库或框架都有类似的应用,这里简单实现了一个供参考:
class CustomDict(dict):
'''Simple dict but support access as x.y style.'''
def __init__(self, names=(), values=(), **kw):
super(CustomDict, self).__init__(**kw)
for k, v in zip(names, values):
self[k] = v
def __getattr__(self, key):
try:
return self[key]
except KeyError:
raise AttributeError(
r"'CustomDict' object has no attribute '%s'" % key)
def __setattr__(self, key, value):
self[key] = value
谢谢支持
- 暂时就这么多了,以后随着学习的深入再来修改补充吧。
- 关注不迷路~~~你的关注就是我的前进的动力!!!
- 有问题或者疑惑评论可以一起讨论,共同进步!!!
- 感谢观看!!!