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. java 中linq 的使用方式 筛选 查找 去重

    1.筛选 $.Enumerable.From(value).Where(function(x) {//value 为被操作的内容 return x.name == name;//第一个name为val ...

  2. 【源码分析】cocos2dx的Action

    第一次去学习Action,总会找到一篇入门的帖子(官网:http://cn.cocos2d-x.org/article/index?type=cocos2d-x&url=/doc/cocos- ...

  3. case选择语句

    #!/bin/bash   PS3="please select menu:"   select  i  in "Apache" "Mysql&quo ...

  4. DFS BFS代码

    #define maxnum 30 #include<bits_stdc++.h> int visited[maxnum]={0}; using namespace std; typede ...

  5. June 23rd 2017 Week 25th Friday

    Life doesn't get easier, you just get stronger. 生活从未变得轻松,是你在一点一点变得坚强. So in the same way we can get ...

  6. SAPGUI系统登录页面配置的SAProuter有什么用

    大家在安装完SAPGUI后,准备添加系统列表进行登录时,注意过这个SAProuter字段么? 从SAP的帮助文档上可以找到SAProuter的定义: https://help.sap.com/saph ...

  7. SDR窃听-监听空中的无线电

    A GSM HACK的另一种方法:RTL-SDR 0x00 背景 文中所有内容仅供学习研究,请勿用于非法用途.在绝大多数国家里非法窃听都是严重非法行为. 本文内容只讨论GSM数据的截获,不讨论破解. ...

  8. bzoj1413 [ZJOI2009]取石子游戏

    Description 在研究过Nim游戏及各种变种之后,Orez又发现了一种全新的取石子游戏,这个游戏是这样的: 有n堆石子,将这n堆石子摆成一排.游戏由两个人进行,两人轮流操作,每次操作者都可以从 ...

  9. Junit应用代码(读取mysql表数据)

    1. 封装连接数据库的类: import java.sql.ResultSet; import java.sql.Connection; import java.sql.DriverManager; ...

  10. Servlet是线程安全的吗

    Servlet默认是单例模式,在web容器中只创建一个实例,所以多个线程同时访问Servlet是不安全的. 解决此类问题的办法是: 只要Servlet实现 SingleThreadModel 接口