python学习03
字符串的基本使用
1.字符编码集
ASCII编码:外国人常用的大小写英文字母、数字和一些符号,一共127个字符,用1个字节(byte)可以涵盖完,也就是8个位,它将序列中的每个字节理解为一个字符。
Unicode编码: Unicode把所有语言都统一到一套编码里,避免乱码的出现
Unicode用2-4个字节(最少2个字节), 好,乱码解决了,可是看看英文字母吧?
Unicode编码只是文字在内存中的内在形式 。
utf-8编码:utf-8把Unicode一分为二,可以用一个字节表示的还是用一个字节,不能表示的用多个字节表示,ok,解决了乱码问题,又节省了空间,妙啊!
gbk编码:中国人民制定了GBK(GB2312的扩展)编码,这是一种兼容ASCII的不定长。
2.编码与解码
encode(encoding):将unicode转换为bytes
decode(encoding):将bytes转换为unicode
记住:如果没有特殊业务要求,一般都设置为utf-8
a = 'hello world'
print(type(a))
print(a)
b = a.encode(encoding='utf-8')
print(b)
c = b.decode(encoding='utf-8')
print(c)
x = '我是ben'.encode(encoding='gbk')
print(x)
y = x.decode(encoding='gbk')
print(y)
3.字符串内置函数
ord('a') print 97
chr(97) print a
len() ,字符串的长度
4.字符串去空格和特殊符号
a_str='my name is ben '
去左右两边的空格和特殊字符,用strip()
左边的字符lstrip,右边的字符rstrip
b_str = ',ben.'
print(b_str.lstrip(','))
print(b_str.rstrip('.'))
a=" .@eric#! "
b=a.lstrip(' .@').rstrip('#! ')
print(b)
字符串的+和*以及替换
a_str = ‘b’
b_str = ‘en’
c_str = a_str + b_str
print(c_str)
print(c_str*4)
print((c_str + ‘q’)*3)
d_str = 'my name is ben'
e_str = d_str.replace('name', 'age')
print(d_str)
print(e_str)
print(d_str.replace('tom', 'jim'))
字符串的查找:index和find
index找到第一个索引值
字符串的比较
from operator import eq,lt,gt,le,ge
a_str = ‘ben’
b_str = ‘bom’
print(eq(a_str,b_str)) # =
print(lt(a_str,b_str)) # <
print(gt(a_str,b_str)) # >
print(le(a_str,b_str)) # <=
print(ge(a_str,b_str)) # >=
字符中也包括in not in
字符串的大小写转换 lower,upper
string.capitalize() 将字符串的第一个字母大写
string.count() 获取字符串中某个字符串的数目
string.find() 获得字符串中某一个字符串的起始位置,无则返回-1
string.islanum() 检测字符串是仅包括0-9A-Za-z
string.isalpha() 检测字符串是仅包括A-Za-z
string.isdigit() 检测字符串是仅包括数字
string.islower() 检测字符串是仅包括小写字母
string.isspace() 检测字符串所有字符是否均为空白字符
string.istitle() 检测字符串中的单词是否为首字母大写
string.isupper() 检测字符串是否均为大写字母
string.join() 连接字符串
string.lower() 将字符串全部转换为小写
string.split() 分割字符串
string.swapcase() 将字符串小写转换大写,将字符串大写转换小写。
string.title 将字符串中的单词首字符大写
string.upper() 将字符串全部转换为大写
len(string) 获取字符串长度
from string import capwords
print(capwords(‘my name is ben’)
print(‘my name is ben’.lower().title()) 两个打印结果一样
字符串的切片,分割
a='my name is tom'
a[::-1] 反转
a.split(,maxsplit=1) ,指定分割的次数
字符的拼接 join
' '.join('12')
字符串的对齐方式:
a_str = 'python'
print(a_str.ljust(10, '='))
print(a_str.rjust(20, '+'))
print(a_str.center(22, '0'))
字符串的判断操作:是判断字符串的某种状态或者属性
print(‘ben’.startwith(‘b’)) #判断是否以什么字符或者字符串开头
print(‘ben’.startwith(‘n’))
print(‘ben’.endwith(‘o’))
print(‘ben’.endwith(‘n’))
print(‘ben‘.endwith(‘en’)) #这里指定的不是字符,而是字符串
字符串的计算总共的个数count
右对齐方式
print('ben'.zfill(10))
举例说明:
" 180 0010 1101 " ,输出'18000101101'
num_1 = " 180 0010 1101 "
num_2 =(num_1.strip()).replace(' ','')
print(''.join(num_1.split()))
print(num_2)
str_1 = "hello,I'am tom。use python i can fly。"
str_2=(str_1.replace(',',',')).replace('。','.')
print(str_2)
num = str_2.index('.')
print(str_2[num::-1])
print(str_2[num+1:].capitalize())
python学习03的更多相关文章
- Python学习--03变量类型
变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创 ...
- python学习03——设计,与input有关
笨办法学python第36节,我写的代码如下: from sys import exit def rule(): print "Congratulations! You made the r ...
- python学习03-数据类型
一.基本数据类型--数字 布尔型 bool型只有两个值:True和False 之所以将bool值归类为数字,是因为我们也习惯用1表示True,0表示False. 以下是布尔值是False的各种情况: ...
- python学习 03 函数 (只会执行一次return就不会往下执行)
1.调用函数只会执行一次return,而且执行return后不会往下执行
- python学习03字符串基本操作
'''字符串可以用单引号,双引号,三引号表示 '''#1.读取str1='I am a student!'#每一个字符对应一个下标,可以利用下标的方式来读取字符串对应的值——索引print(str1[ ...
- Python 学习文章收藏
作者 标题 rollenholt Python修饰器的函数式编程 - Rollen Holt - 博客园 rollenholt python操作gmail - Rollen Holt - 博客园 ro ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
- OpenCV之Python学习笔记
OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...
随机推荐
- web框架开发-模板层
你可能已经注意到我们在例子视图中返回文本的方式有点特别. 也就是说,HTML被直接硬编码在 Python代码之中. def current_datetime(request): now = datet ...
- STM32 FSMC使用笔记
最近在使用STM32的FSMC与FPGA做并行通信总线控制,做一下总结 1,利用FSMC读取写入16位数据时的封装函数如下,不这样使用的话在与FPGA进行通信的过程中可能会出现不可预知的错误. #de ...
- 一文搞懂Raft算法
raft是工程上使用较为广泛的强一致性.去中心化.高可用的分布式协议.在这里强调了是在工程上,因为在学术理论界,最耀眼的还是大名鼎鼎的Paxos.但Paxos是:少数真正理解的人觉得简单,尚未理解 ...
- triplet loss 在深度学习中主要应用在什么地方?有什么明显的优势?
作者:罗浩.ZJU链接:https://www.zhihu.com/question/62486208/answer/199117070来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...
- Google第三方网站登录(JavaScript SDK)
官网:https://developers.google.com/identity/sign-in/web/ 一.创建应用 a.去谷歌控制台创建应用 网址:https://accounts.g ...
- 【Swift 4.0】iOS 11 UICollectionView 长按拖拽删除崩溃的问题
正文 功能 用 UICollectionView 实现两个 cell 之间的位置交互或者拖拽某个位置删除 问题 iOS 11 以上拖拽删除会崩溃,在 iOS 9.10 都没有问题 错误 017-10- ...
- 一段c++代码实现睡眠功能
#ifdef ACL_UNIX struct timeval tv; tv.tv_sec = delay / 1000; tv.tv_usec = (suseconds_t) (delay - tv. ...
- Flutter之Decoration(边框、圆角、阴影、形状、渐变、背景图像等)
1 继续关系: BoxDecoration:实现边框.圆角.阴影.形状.渐变.背景图像 ShapeDecoration:实现四个边分别指定颜色和宽度.底部线.矩形边色.圆形边色.体育场(竖向椭圆). ...
- Linux(Ubuntu 16) 下Java开发环境的配置(三)------Mysql配置
前言 吐槽一句,如果在Ubuntu在默认情况下是只有最新的MySQL源的,即如果使用"sudo apt-get install mysql-server mysql-client " ...
- linux rzsz(lrzsz)安装
lrzsz 官网入口:https://ohse.de/uwe/software/lrzsz.html lrzsz是一个unix通信套件提供的X,Y,和ZModem文件传输协议,可以用在windows与 ...