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天 字符串的操作的更多相关文章

  1. Python学习笔记(三)字符串类型及其操作(2)

    1.字符串的表示 字符串是字符的序列表示,可以由一对单引号(‘).双引号(“)或三引号(’‘’)构成.其中,单引号.双引号和三引号都可以表示单行字符串,但是只有三引号可以表示多行字符串 在使用双引号时 ...

  2. python学习笔记(二)— 字符串(string)

    字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello World!' var2 ...

  3. Python 学习笔记(6)— 字符串格式化

    字符串格式化处理 远古写法 以前通常使用运算符号 % ,%s 插入的值 String 类型,%.3f 指插入的值为包含 3 位小数的浮点数: format1 = "%s, %s!" ...

  4. python学习笔记(四)字符串及字符串操作

    字符串 字符串可以存任意类型的字符串,比如名字,一句话等等. 字符串还有很多内置方法,对字符串进行操作,常用的方法如下: name1='hello world' print(name.capitali ...

  5. Python学习笔记(二十五)操作文件和目录

    摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319253241 ...

  6. Python学习笔记(四)字符串型

    字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言 ...

  7. Python学习笔记总结1:字符串表示str与repr的用法比较

    参考博文地址:http://blog.csdn.net/yyt8yyt8/article/details/7030416 值转化为字符串常用以下三种方法: 1. str函数 str函数转化为合理形式的 ...

  8. python学习笔记03-变量和字符串

    变量 变量:把一个值赋值给一个名字时,它会储存在内存中,称之为变量(virable):但在python中并不会储存在变量里,仅仅是类似于给值加了标签 变量的使用规则: 1.使用变量,首先需要给变量赋值 ...

  9. python学习笔记-(五)字符串&字典

    1.字符串操作 >>> name = ("my name is cc")#首字母大写 >>> print(name.capitalize()) ...

  10. Python学习笔记-Day2-Python基础之字符串操作

    字符串的常用操作包括但不限于以下操作: 字符串的替换.删除.截取.复制.连接.比较.查找.分割等 这里将对字符串的内置操作方法进行总结归纳,重点是以示例的方式进行展示. 使用type获取创建对象的类 ...

随机推荐

  1. webpack从零开始第1课:安装webpack和webpack-dev-server

    原文地址:https://segmentfault.com/a/1190000012536871 webpack目录 第1课: 安装webpack和webpack-dev-server 第2课: 配置 ...

  2. 从Event Loop谈JS的运行机制

    这里主要是结合Event Loop来谈JS代码是如何运行的. 事件循环对于我们平时开发可以说是特别重要,可以让我们写出更好的代码. 到这里相信我们已经知道了JS引擎是单线程,而且这里会用到前面说的的几 ...

  3. IONIC调用原生的等待对话框

    ngCordova提供了progressIndicator插件,用以方便的显示等待对话框,但是目前版本仅支持安卓版本.为了让苹果版本也显示,可以到以下地址下载通用的插件,JS部分的代码无需改变: ht ...

  4. [问题记录]cocos的lua绑定安装pyyaml报错

    描述:按照readme中的文档操作报错,提示python2.7没有安装,但是确实已经安装了,而且也设置环境变量成功了. 解决: 在D盘新建register.py的文件,内容如下: # # script ...

  5. Python初学者第二天 用户输入和注释

    2day Python基础语法: 1.用户输入和注释 用户输入:   代码注释:# 注释部分不会被执行,或用来帮助理清代码逻辑   2.数据类型:数字 int:整数   long:长整形  注:Pyt ...

  6. assert 的使用

    一直以来没分清什么时候该使用assert,什么时候该使用if.现在将其记录下来 assert 用于检查参数的合法性以及某个预期的结果等,assert只在debug模式中在在.assert是面向程序员的 ...

  7. June 19th 2017 Week 25th Monday

    Everyone is dissatisfied with his own fortune. 人对自己的命运总是感到不满足. We always want more, even when we hav ...

  8. SAP CRM settype的创建,背后发生了什么

    来自我的同事Sara. 当我们在CRM系统里创建一个settype之后,其实系统后台悄悄的帮我们创建了很多ABAP对象,比如对应的database tables, other ABAP Diction ...

  9. [零基础学JAVA]Java SE基础部分-04. 分支、循环语句

    转自:http://redking.blog.51cto.com/27212/116751 1.课程名称:分支.循环 本季为JAVA程序中最重要的部分,在讲解的时候除了讲解各种主要的控制语句(分支语句 ...

  10. x:Name与Name区别

    x:Name与Name有两个不同点: 1.x:Name是Xaml的标记特性,任何在Xaml中定义的元素,都可以使用x:Name来为元素指定名称. Name是FrameworkElement定义的依赖项 ...