Python学习笔记:第3天 字符串的操作
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)
Python学习笔记:第3天 字符串的操作的更多相关文章
- Python学习笔记(三)字符串类型及其操作(2)
1.字符串的表示 字符串是字符的序列表示,可以由一对单引号(‘).双引号(“)或三引号(’‘’)构成.其中,单引号.双引号和三引号都可以表示单行字符串,但是只有三引号可以表示多行字符串 在使用双引号时 ...
- python学习笔记(二)— 字符串(string)
字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello World!' var2 ...
- Python 学习笔记(6)— 字符串格式化
字符串格式化处理 远古写法 以前通常使用运算符号 % ,%s 插入的值 String 类型,%.3f 指插入的值为包含 3 位小数的浮点数: format1 = "%s, %s!" ...
- python学习笔记(四)字符串及字符串操作
字符串 字符串可以存任意类型的字符串,比如名字,一句话等等. 字符串还有很多内置方法,对字符串进行操作,常用的方法如下: name1='hello world' print(name.capitali ...
- Python学习笔记(二十五)操作文件和目录
摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319253241 ...
- Python学习笔记(四)字符串型
字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言 ...
- Python学习笔记总结1:字符串表示str与repr的用法比较
参考博文地址:http://blog.csdn.net/yyt8yyt8/article/details/7030416 值转化为字符串常用以下三种方法: 1. str函数 str函数转化为合理形式的 ...
- python学习笔记03-变量和字符串
变量 变量:把一个值赋值给一个名字时,它会储存在内存中,称之为变量(virable):但在python中并不会储存在变量里,仅仅是类似于给值加了标签 变量的使用规则: 1.使用变量,首先需要给变量赋值 ...
- python学习笔记-(五)字符串&字典
1.字符串操作 >>> name = ("my name is cc")#首字母大写 >>> print(name.capitalize()) ...
- Python学习笔记-Day2-Python基础之字符串操作
字符串的常用操作包括但不限于以下操作: 字符串的替换.删除.截取.复制.连接.比较.查找.分割等 这里将对字符串的内置操作方法进行总结归纳,重点是以示例的方式进行展示. 使用type获取创建对象的类 ...
随机推荐
- keepalived+MySQL双主搭建
keepalived+MySQL双主搭建过程 首先要简单了解一下keepalived: Keepalived是Linux下一个轻量级别的高可用解决方案.高可用(High Avalilability,H ...
- RESTful架构及SOA架构简单解析
1.RESTful架构 本人也是刚接触ASP.NET开发,以下为自己简单的理解,并做了一些记录,表述不当或者错误之处还请指正,在此谢过. 首先,REST(REpresentational State ...
- Python学习---Python下[列表]的学习
列表[list]用中括号[]表示,处理一组有序项目的数据结构,列表的类型是可变的数据类型,类型是list 列表是可变/线程不安全的 # type(a) = list 利用type判断元素离线 # 切 ...
- asp.net c# 断点续传 下载 Accept-Ranges
转自:http://www.cnblogs.com/90nice/p/3489287.html 1.因为要下载大文件 需要断点续传,使用多线程 分段下载 效率比较高,节省资源. 发点牢骚:下载可以用多 ...
- angular里forRoot的作用
模块A是这样定义的 @NgModule({ providers: [AService], declarations: [ TitleComponent ], exports: [ TitleCompo ...
- 转 C++11 并发指南std::condition_variable详解
之前看过,但是一直没有怎么用就忘了,转一篇别人的文字记录下来 本文将介绍 C++11 标准中 <condition_variable> 头文件里面的类和相关函数. <conditio ...
- 理解Underscore的设计架构
在一个多月的毕业设计之后,我再次开始了Underscore的源码阅读学习,断断续续也写了好些篇文章了,基本把一些比较重要的或者个人认为有营养的函数都解读了一遍,所以现在学习一下Underscore的整 ...
- 使用npoi插件将excel文件导出
大致流程:前端使用URL地址的方式跳转到action后返回file类型数据 js: window.location.href = '/Home/index?Id=' + id 后台代码: /// &l ...
- Django 模型中DateField字段
DateField¶ class DateField([auto_now=False, auto_now_add=False, **options])¶ 这是一个使用Python的datetime.d ...
- BZOJ1002:[FJOI2007]轮状病毒(找规律,递推)
Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子 和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下 ...