字符串的基本使用

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. 多线程——multiprocess

    先看个误打误撞的写的代码 import os import time import multiprocessing def func(): print('我是func函数1','现在的father进程 ...

  2. 模块简介:(logging)(re)(subprocess)

    ''' logging模块: logging的日志可以分为 debug():Detailed information, typically of interest only when diagnosi ...

  3. nginx日志切割(logrotate或shell脚本)

    nginx自己不会对日志文件进行切割,可以通过两种不同的方式进行,分别是:通过logrotate和通过shell脚本. 如果是yum方式安装的nginx,系统默认会自动通过logrotate这个日志管 ...

  4. web 本地存储 (localStorage、sessionStorage)

    web 本地存储 (localStorage.sessionStorage,cookie) localStorage(长期储存):即使关闭浏览器数据也不会删除,除非使用localStorage.cle ...

  5. Django学习笔记之表单验证

    表单概述 HTML中的表单 单纯从前端的html来说,表单是用来提交数据给服务器的,不管后台的服务器用的是Django还是PHP语言还是其他语言.只要把input标签放在form标签中,然后再添加一个 ...

  6. webpack4配置详解之新手上路初探

    前言 经常会有群友问起webpack.react.redux.甚至create-react-app配置等等方面的问题,有些是我也不懂的,慢慢从大家的相互交流中,也学到了不少. ​ 今天就尝试着一起来聊 ...

  7. #Leetcode# 997. Find the Town Judge

    https://leetcode.com/problems/find-the-town-judge/ In a town, there are N people labelled from 1 to  ...

  8. Laravel 框架结构 以及目录文件解读(学习笔记)

    composer下载Laravel 5.4(由于PHP版本仅7.0,故未下载5.6) composer create-project laravel/laravel your-project-name ...

  9. SQL Server没有足够的内存继续执行程序 (mscorlib)的解决办法

    在Microsoft SQL Server Management Studio 中执行较大的sql脚本时,会报没有足够的内存继续执行程序(mscorlib)的错误.如下图所示 解决方法: 使用sqlc ...

  10. 爬虫系列之mongodb

    mongo简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非 ...