字符串的基本使用

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的更多相关文章

  1. Python学习--03变量类型

    变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创 ...

  2. python学习03——设计,与input有关

    笨办法学python第36节,我写的代码如下: from sys import exit def rule(): print "Congratulations! You made the r ...

  3. python学习03-数据类型

    一.基本数据类型--数字 布尔型 bool型只有两个值:True和False 之所以将bool值归类为数字,是因为我们也习惯用1表示True,0表示False. 以下是布尔值是False的各种情况: ...

  4. python学习 03 函数 (只会执行一次return就不会往下执行)

    1.调用函数只会执行一次return,而且执行return后不会往下执行

  5. python学习03字符串基本操作

    '''字符串可以用单引号,双引号,三引号表示 '''#1.读取str1='I am a student!'#每一个字符对应一个下标,可以利用下标的方式来读取字符串对应的值——索引print(str1[ ...

  6. Python 学习文章收藏

    作者 标题 rollenholt Python修饰器的函数式编程 - Rollen Holt - 博客园 rollenholt python操作gmail - Rollen Holt - 博客园 ro ...

  7. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  8. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  9. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

随机推荐

  1. 26 python 初学(线程、同步锁、死锁和递归锁)

    参考博客: www.cnblogs.com/yuanchenqi/articles/5733873.html 并发:一段时间内做一些事情 并行:同时做多件事情 线程是操作系统能够进行运算调度的基本单位 ...

  2. Ubuntu 14.04 结束支持该如何应对?

    Ubuntu 14.04 即将于 2019 年 4 月 30 日结束支持.这意味着在此日期之后 Ubuntu 14.04 用户将无法获得安全和维护更新. 你甚至不会获得已安装应用的更新,并且不手动修改 ...

  3. 用 C# 编写 C# 编译器,先有鸡还是先有蛋?

    前段时间翻译了一篇文章 微软是如何重写 C# 编译器并使它开源的,文章讲了微软用 C# 重写 C# 编译器的坎坷路,引发了一些童鞋的思考:用 C# 编写 C# 编译器(Roslyn),那么 C# 编译 ...

  4. PHP之提升代码质量36计

    转载:https://www.binarytides.com/35-techniques-to-enhance-your-php-code/ 1.不要使用相对路径 常常会看到: require_onc ...

  5. lr12 websocket

    loadrunner12以上版本支持websocket,在http/html协议录制时可以直接录制websocket相关内容信息. 网上找的一个测试websocket网址:http://www.blu ...

  6. 21.Pod的limit和request和资源监控收集服务Heapster

    容器的资源需求,资源限制 requests:需求,最低保障: limits:限制,硬限制: CPU: 1颗逻辑CPU =,millicores 500m=.5CPU 内存: E.P.T.G.M.K E ...

  7. Mdoelsim10.4怎么脚本单独仿真ISE14.7 IP核

    软件版本: Modelsim10.4SE ISE14.7 仿真IP:时钟管理IP(clock wizard)   流程: 1.对于Modelsim10.4SE,并不自带Xilinx家的仿真库,因此首先 ...

  8. EOJ 306 树上问题

    题解: 因为w大于1,所以,题意就是,有多少(x,z),存在x到z的路径上,有一个x<y<z的y w没用的其实. 树上路径问题,有什么方法吗? 1.树链剖分.这个主要方便处理修改操作. 2 ...

  9. javascript: Element.getBoundingClientRect() 获取元素在网页上的坐标位置

    来自:https://blog.csdn.net/weixin_42895400/article/details/81811095?utm_source=blogxgwz1 Element.getBo ...

  10. TOMCAT ---> servlet概念

    1 TOMCAT ---> servlet概念 2 TOMCAT 目录结构 (各个文件夹都存放什么东西) 3 TOMCAT 程序的层级 web | |---- js,jsp,html,css ( ...