目录
1. python 的数据类型
2. int 类型的操作
3. bool 类型
4. 字符串的操作
5. for 循环
1. python 的数据类型
int 整数
str 字符串. 一般不会用字符串保存大量的数据
bool 布尔值: True 和 False
list 可以存放大量的数据(可以任意的数据类型)
dict 字典 => key: value 查找数据的速度快
set 集合, 特点: 无序, 不能重复
bytes 字节数, 程序能够处理
tuple 元组: 不可变的列表
2. int 类型的操作
bit_lenght() 计算这个数字二进制的长度
二进制: 0 和 1, 逢二进一
八进制: 0 到 7, 逢八进一
十六进制: 0 到 F, 逢十六进一
- In [1]: a = 12 # 12 的二进制形式为: 1100
- In [2]: a.bit_length()
- Out[2]: 4
3. bool 类型
大部分对象都可以参与布尔运算:
4. 字符串的操作
字符串是 Python 中最常用的数据类型, 我们可以使用引号 ('或") 来创建字符串.
- s1 = 'abc'
- s2 = "def"
- s3 = ''' # 三引号可以创建多行字符串
- aaaa
- bbbb
- '''
4.1 索引和切片
索引: 索引就是下标, 下标是从 0 开始的
- In [1]: s = '012345678'
- In [2]: s[2]
- Out[2]: '2'
- In [3]: s[-2] # 也可以使用负数从后面开始索引
- Out[3]: '7'
切片
使用方法: s1[startIndex:endIndex:step]
从 starIndex 切片到 endIndex, 但是不包括 endIndex
step 参数为切片的步长, 如果是正数则从左到右; 如果是负数则从右到左(不写则默认为 1)
- In [4]: s[4:] # startIndex 不填默认是切片到最后
- Out[4]: '45678'
- In [5]: s[::] # startIndex 和 endIndex 都不填默认是整个字符串
- Out[5]: '012345678'
- In [6]: s[::-1] # 如果 step 的值为负数的时是把整个字符顺序倒过来处理
- Out[6]: '876543210'
- In [7]: s[-1: -5] # 如果 step 的值不填(默认为 1), 这样取不到想要的字符, 从 - 1 再往右已经没有字符了
- Out[7]: ''
- In [8]: s[-1: -5:-1] # 把 step 的值设为 - 1 后就可以从右往左切片
- Out[8]: '8765'
- In [9]: s[:-1]
- Out[9]: '01234567'
- In [11]: s[2::2] # step 设为 2 时, 每隔 2 个取一个值
- Out[11]: '2468'
- In [12]: s[-2::-2] # 设置为 - 2 时, 从后面往前面切片, 每 2 个取一个
- Out[12]: '7531'
4.2 字符串的相关操作方法
切记, 字符串是不可变的对象, 所以任何操作对原字符串是不会有任何影响的
1. 字符串重要的几个方法
- upper() # 把字符串全部转换成大写
- lower() # 把字符串全部转换成小写
- strip([chars]) # 去掉字符两边的空白字符, 制表符 \ t 和回车符 \ n 等, 如果给了指定的参数 xx, 就去掉字符串两边的 xx 字符
- lstrip([chars]) # 去掉左边指定的字符
- rstrip([chars]) # 去掉右边指定的字符
- replace(old, new[, count]) # 用 new 字符替换掉 old 字符, count 值没有指定默认时替换所有的字符
- split(sep=None, maxsplit=-1) # 以指定的符号分割字符串, 用于分割的字符不会在分割后的结果中, 并且返回一个列表
- rsplit(sep=None, maxsplit=-1) # 从右边起分割字符串, maxsplit 可以指定最大分割次数
- lsplit(sep=None, maxsplit=-1) # 从左边起开始分割
- index(sub[, start[, end]]) # 获取指定字符串第一次出现的位置(即索引),start 和 end 可以指定范围, 如果找不到会出 ValueError 的异常
- find(sub[, start[, end]]) # 跟 index 的作用一样, 但当找不到结果时或返回 - 1 而不会报错
- startswith(prefix[, start[, end]]) # 判断字符串是不是以指定的字符开头, 返回的时布尔值 True 和 False
- endswith((suffix[, start[, end]]) # 判断字符串是不是以指定的字符结尾
- In [1]: s = '__abCDef'
- In [2]: s.upper() # 字符全部转换成大写
- Out[2]: '__ABCDEF'
- In [3]: s.lower() # 字符全部转换成大写
- Out[3]: '__abcdef'
- In [4]: s.strip() # 默认是除去两边的空白字符
- Out[4]: '__abCDef'
- In [5]: s.strip('_') # 可以指定删除字符两边指定的字符
- Out[5]: 'abCDef'
- In [6]: s.lstrip('_') # lstrip 只删除左边指定的字符
- Out[6]: 'abCDef'
- In [7]: s.replace('','-') # 查找对应的字符并替换成新的字符
- Out[7]: '__abCDef----'
- In [10]: s.replace('_', '*', 1) # 指定 count 参数可以设置要替换的次数, 默认是全部替换
- Out[10]: '*_abCDef'
- In [11]: s2 = '游戏 abc 篮球'
- In [12]: s2.split('abc') # 以指定字符分割字符串, 返回的数据类型是列表
- Out[12]: ['游戏', '篮球']
- In [13]: s2.split('游戏 abc 篮球') # 如果分割后为空字符也会返回一个列表, 列表里面是 2 个空字符串元素
- Out[13]: ['','']
- In [14]: s2.index('篮球') # 查找对应字符串所在的索引位置
- Out[14]: 5
- In [15]: s2.index('d') # 找不到时会抛出 ValueError 异常
- ---------------------------------------------------------------------------
- ValueError Traceback (most recent call last)
- <ipython-input-15-46668276bfcb> in <module>
- ----> 1 s2.index('d')
- ValueError: substring not found
- In [16]: s2.find('d') # 跟 index 一样查找字符所在的索引, 但是找不到时会返回 - 1 而不是报错
- Out[16]: -1
- In [17]: s2.startswith('游戏') # 判断字符串是否以'游戏'开头, 返回布尔值
- Out[17]: True
- In [18]: s2.endswith('篮球') # 判断字符串是否以'篮球结尾'
- Out[18]: True
2. 大小写转换
- capitalize() # 首字母大写
- swapcase() # 大小写互相转换
- title() # 每个被特殊字符隔开的字字写
- casefold() # 转换成写, 但是这个最所有的字符都有效(如东欧的等)
3. 格式化输出
使用字符串的 format 可以更直观的输出
In [19]: print('我是 {} 来自{}, 我喜欢{}'.format('Jerry', '南方', '打篮球'))
我是 Jerry 来自南方, 我喜欢打篮球
In [20]: print('我是 {2} 来自{0}, 我喜欢{1}'.format('Jerry', '南方', '打篮球'))
我是打篮球来自 Jerry, 我喜欢南方
In [21]: print('我是 {name} 来自{place}, 我喜欢{hobby}'.format(name='Jerry', hobby='打篮球', place='南方'))
我是 Jerry 来自南方, 我喜欢打篮球
- In [22]: print('{:5d} {:2.3f}'.format(12, 12.143233234)) # 5d
- 12 12.143
- # {:5d} 的意思是替换为 5 个字符宽度的整数, 宽度不足则使用空格填充
- # {:7.3f}的意思是替换为为 7 个字符宽度的保留两位的小数, 小数点也算一个宽度, 宽度不足则使用空格填充. 其中 7 指宽度为 7,.2f 指保留两位小数.
4. 条件判断
- isalpha() # 是否由字符组成
- isdigit() # 是否由数字组成
- isalnum() # 是否由数字和字符组成
- isdecimal() # 是否由小数组成
- isnumeric() # 是否由数字组成(中文形式的数字也能识别)
5. 计算字符串的度
使用 len 可以计算字符串的长度
len([数据]) # 使用 len 函数可以计算字符串, 列表, 元组和字典等也都可以使用
6. 其他方法
- center(10, "*") # 拉成 10, 把原字符串放中间. 其余位置补 *
- count("a") # 查找 "a" 出现的次数
5. for 循环
使 for 循环可以遍历 (获取) 字符串中的每个字符, 使用语法:
for 变量 in 可迭代对象:
循环语句
可迭代对象: 可以理解为能个个往外取值的对象
使用 while 遍历一个字符串的方法:
- s = "家好, 我是 vue, 前端的朋友们. 你们好么?"
- index = 0
- while index < len(s19):
- print(s[index]) # 利索引切来完成字符的查找
- index = index + 1
但是如果使用 for 循环:
- s = "家好, 我是 VUE, 前端的朋友们. 你们好么?"
- for c in s19:
- print(c)
来源: https://www.cnblogs.com/zpzhue1/p/9826777.html