Python学习笔记:第3天 字符串的操作
程序员文章站
2022-03-28 19:07:48
[TOC] 1. python的数据类型 2. int类型的操作 bit_lenght() 计算这个数字二进制的长度 二进制: 0和1,逢二进一 八进制: 0到7,逢八进一 十六进制: 0到F,逢十六进一 3. bool类型 大部分对象都可以参与布尔运算: 4. 字符串的操作 字符串是Python中 ......
目录
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)
上一篇: 一统江湖的大前端(1)——PPT制作库impress.js
下一篇: Vue父子组件之间的传值