字符串前加u,b,r,f的含义

1.加u

字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。

u"我是含有中文字符组成的字符串。"

2.加r

屏蔽转义。如去掉反斜杠的转移机制。

r"\n\n\n\n”  # 表示一个普通生字符串 \n\n\n\n,而不是换行

3.加b

将字符串变成btyes类型

b'这里看上去是字符串,实际上已经变成字节了'

4.加f

模板字符串,类似于ES6模板字符串。(3.6版本加入)

country = "中国"
language = "Python" str = "这里是%s,语言是%s\n"%(country,language)
str1 = "这里是{0},语言是{1}\n".format(country,language)
str2 = "这里是{a},语言是{b}\n".format(a=country,b=language)
str3 = f"这里是{country},语言是{language}\n" print(str,str1,str2,str3)

基本字符串操作

Pyhton中字符串的格式化输出在前面已经总结了,接下来介绍一些常用的字符串操作

先定义一个字符变量,以下的操作都以此为例:

 name=" my name is china "  #(首尾有空格)

1.首字母大写(整个字符串的首字母)

print(name.capitalize()) # my name is china 

并没有变化!是因为第一个字符是空格!如果把第一个空格去掉,结果为:My name is china

2.将所有字母变大写或变小写

name.lower()   # my name is china
name.upper() # MY NAME IS CHINA

3.首字母大写(每个单词)

name.title() #  My Name Is China 

4.大小写互换

name.swapcase() #  MY NAME IS CHINA 

此方法是:大写变小写,小写变大写

5.统计相同字符的数目

name.count("i") # 统计字符串中 "i" 的个数。

6.Center()方法

name.center(50,"-")
print:
---------------- my name is china ----------------

一共50个字符,字符串以外用指定的“-”来填充,并将字符串变量内容居中

7.判断字符串是否以这个字符结尾

name.endswith("ng") # False

判断字符串是否以“ng”结尾

8.在字符串中寻找某个子字符串的位置

例如:寻找字符串中“name”的位置

name.find("name") # 4

9.去掉字符串两端的空格

有时候为了避免不必要的麻烦,会将用户输入的字符串去掉两端的空格

name.strip()

10.去掉字符串左边或右边的空格

name.lstrip()   #去掉左边的空格
name.rstrip() #去掉右边的空格

11.字符串的加密

  maketrans()方法 和 translate()方法

p=str.maketrans("abcedfghij","")      #编写密码规则
print(name.translate(p)) #按照上述密码转换规则将明文翻译成密文

先上运行结果:

 my n9m6 1s 721n9 

看懂了吗?就是用“9”来替代“a”,“8”来替代“b”,“7”来替代“c”,……,依次类推

12.将字符串中特定字符替换

将字符串中某些旧字符替换成新字符,并返回新的字符串

  name.replace()方法

print(name.replace("m","M",2))

将字符串中前2个“m”替换成“M”

结果为: My naMe is china

第一个值是被替换字符,第二个值是替换字符,第三个值是被替换的个数(可以省略)

13.字符串切片(截取)

不光列表,字符串也可以切片,而且和列表的操作一样

新定义一个字符串

运行结果:

14.获取字符串的长度

  len(a)

获取的是字符串的长度(字符数、字节数)。此方法不是字符串的专属,列表、字典等其他数据类型都可以用。列表获取的是元素的个数,字典获取的是key的数量。

15.split()分割函数

split() 通过指定分隔符对字符串进行分割,并返回分割后的字符串列表。如果参数 num 有指定值,则仅分隔 num 个子字符串

split(str,num)

参数:

str:分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。

num: 分割次数(可以省略)

str = "Line1-abcdef \nLine2-abc \nLine4-abcd"
print str.split( )
print str.split(' ', 1 ) #运行结果:
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Line1-abcdef', '\nLine2-abc \nLine4-abcd']

 16.index()

print(str.index("L")),输出第一个L的下标

string模块

string模块提供了几个实用的字符串方法。

  • string.ascii_letters          输出所有小写和大写字母
  • string.ascii_lowercase     输出所有小写字母
  • string.ascii_uppercase    输出所有大写字母
  • string.digits                    输出所有十进制数字(0~9)
  • string.hexdigits              输出所有十六进制数字(0~F)
  • string.octdigits               输出所有八进制数字(0~7)

输出:

有什么应用呢?举个例子:每次运行随机生成一个4位的验证码,由数字和字母组成

import random
import string checkcode=""
for i in range(4):
a=random.randint(0,1)
if a==0:
tmp = str(random.randint(1, 9)) #获取[1,9]之间的随机整数
else:
tmp = random.choice(string.ascii_letters.\
replace("O","").replace("l","")) #获取所有英文字母(str)并随机选择1个
# 去除字符中容易混淆的大写字母O # 去除字母中容易混淆的小写字母l
checkcode = checkcode + tmp
print("验证码:",checkcode)

checkcode

初学Python——字符串相关操作的更多相关文章

  1. python字符串相关操作

    字符串搜索相关搜索指定字符串,没有返回-1:str.find('t')指定起始位置搜索:str.find('t',start)指定起始及结束位置搜索:str.find('t',start,end)从右 ...

  2. Python 字符串相关操作

    # 1 * 重复输出字符串 print('hello'*2) # 2 [] ,[:] 通过索引获取字符串中字符,这里和列表的切片操作是相同的,具体内容见列表 print('helloworld'[2: ...

  3. python字符串、字符串处理函数及字符串相关操作

    python字符串.字符串处理函数及字符串相关操作 字符串介绍 python字符串表示 Python除处理数字外还可以处理字符串,字符串用单撇号或双撇号包裹: >>> 'spam e ...

  4. Python字符串切片操作知识详解

    Python字符串切片操作知识详解 这篇文章主要介绍了Python中字符串切片操作 的相关资料,需要的朋友可以参考下 一:取字符串中第几个字符 print "Hello"[0] 表 ...

  5. python文件相关操作

    Python文件相关操作 打开文件 打开文件,采用open方法,会将文件的句柄返回,如下: f = open('test_file.txt','r',encoding='utf-8') 在上面的代码中 ...

  6. day7 python字符串的操作及方法

    1.字符串 1.1 字符串的操作 # 1.字符串的拼接 strvar = "我爱" + "中国" # 2.字符串的重复 strvar = "今天下午2 ...

  7. Python容器相关操作

    (集合与字典除外)的容器相关操作 (1)容器的拼接 >>> 'abc' + 'def' 'abcdef' (2)容器的重复 >>> (1, 2) * 3 (1, 2 ...

  8. python subprocess相关操作

    python subprocess常用操作 1.subprocess模块的常用函数 函数 描述 subprocess.run() Python 3.5中新增的函数.执行指定的命令,等待命令执行完成后返 ...

  9. python 集合相关操作

    集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集 ...

随机推荐

  1. iphone手机怎么录屏 两种方法任你挑选

    iphone手机怎么录屏呢?苹果手机拥有独特的Airlay镜像投屏,AirPlay的工作原理是当iPhone或IPAD与支持AirPlay技术的硬件,比如Apple TV等设备处在同一个wife的情况 ...

  2. Ubuntu快捷键、Ubuntu终端常用命令

    Ubuntu快捷键 0.Ctrl + Alt + t 打开终端,在终端命令行操作 1. Ctrl + W: 关闭当前 Nautilus 窗口 2. Ctrl+T: 在 Nautilus 打开新的 Ta ...

  3. Java根据年龄段获取对应年份起始时间戳和最终时间戳、根据生日时间戳获取月份(与数据库的时间戳处理成的月份拼接成SQL条件)

    1.传入年龄段,两个值,一个最小值,一个最大值,然后获取该年龄段的两个时间戳: (1)处理时间方法: /** * 根据年龄获取时间戳(开始年龄key取0,返回一年最后一秒时间戳,时间戳大:反之结束年龄 ...

  4. <解决方法>Centos安装使用Chromedriver

    一.安装Chrome 我安装好Centos系统后,就在网上去找Chrome浏览器的安装方法,使用过yum,rpm都安装不上,会报错,然后询问公司的运维,他给我了个包,然后使用:yum localins ...

  5. Android P的APP适配总结,让你快人一步

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由QQ音乐技术团队发表于云+社区专栏 上篇:Android P 行为变更适配 Android P 这次有很多行为变更,其中不乏一些需要亟 ...

  6. Jupyter Notebook默认工作路径的修改

    相信每一个学习Python的童鞋,都尝试过Jupyter Notebook,所以我也就不多介绍,真的还不错哎这软件. 不过美中不足的,就是它的默认工作路径,每次打开都是系统盘的Administrato ...

  7. SQL Server中如何识别、查找未使用的索引(unused indexes)

    在SQL Server中,索引是优化SQL性能的一大法宝.但是由于各种原因,索引会被当做"银弹"滥用,一方面有些开发人员(甚至是部分数据库管理员)有一些陋习,不管三七二十一,总是根 ...

  8. selenium-获取一组数组进行操作(七)

    selenium-获取一组数组进行操作 以  纵横中文网  中获取24小时畅销榜的书单为例 此文仅做 selenium 在自动化测试中怎么获取一组数据进行说明,不做网络爬虫解释 当然,使用爬虫得到本文 ...

  9. Ubuntu 16.04安装JDK(转载)

    1.简单的安装方法 安装JDK的最简单方法应该就是使用apt-get来安装了,但是源一般是OpenJDK,如果需要安装Oracle的JDK这种方法就不合适了,直接跳过看下面的章节. 1.使用ctrl+ ...

  10. LeetCode算法题-Intersection of Two Linked Lists(Java实现)

    这是悦乐书的第178次更新,第180篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第37题(顺位题号是160).编写程序以找到两个单链表交叉的节点.例如: 以下两个链表: ...