c语言软件幻化,python字符串处理

字符串

字符串:不可变有序序列,在python可使用 "abc" , """abc""" ,'abc' 的形式表示,属于一种字面常量,python3中字符均属于Unicode编码。

字符串可以被迭代,遍历,切片,索引

字符串一旦定义不可增加、删除、修改自身元素。对字符串的修改操作实质是创建一个新的字符串对象重新赋值

# 迭代遍历

s = " this is a string\n"

for i in s:

print(i)

# 索引,切片

print(s[4], s[2:5],s[2,-3])

字符串遍历生成列表,元组

lis = list(s) # 遍历 s 中的每一个元素生成,组成一个列表返回

tp = tuple(s) # 遍历 s 中的每一个元素生成,组成一个元组返回

列表,元组生成字符串

# 列表,元组,拼接为字符串,使用str.join()方法

lis = ['h','e','l','l','o']

# 遍历lis,将lis中的每一个元素拼接为字符串并返回,

# 注:lis中每一个元素必须是字符串,否则不能拼接,可用str()转换

num_list = [1,2,3,4,5]

# s2 = "".join(num_list) ==> 将会报错,无法拼接数值

s1 = "".join(map(str, num_list)) # 将数值全部转化为字符串拼接

s2 = "".join(lis)

# 也可以指定 " ,"作为连接符号进行拼接

s3 = ","join(lis)

print(s1, s2, s3)

字符串的常用方法

字符串的拼接:

返回的是一个全新的字符串对象,s1,s2本身均未发生改变

s3 = s1 + s2

字符串分割

s = "this is a string\n"

s_1 = s.split() # 以连续空白进行分割,返回lis ==> ['this', 'is', 'a', 'string']

s_2 = s.split(" ") # 以空字符进行分割, \n不是空字符 ==> ['this', 'is', 'a', 'string\n']

s_3 = s.rsplit(" ",maxsplit=2) # 右边开始,最大切割次数为 2次 ==> ['this is', 'a', 'string\n']

# 行切割,splitlines()

s = "firstline \n secondline \r\n thirdline \r"

s_4 = s.splitlines() # ==> ['firstline ', ' secondline ', ' thirdline ']

s_5 = s.splitlines(True) # 保留切割符 ==> ['firstline \n', ' secondline \r\n', ' thirdline \r']

# 只切割一次,无论是否切割,返回 3个元素的元组,pre,seq,tail)==>('this', ' ', 'is a string\n')

s_6 = s.partition(" ")

# 从字符串右边开始进行分割 ==> ('firstline \n secondline \r\n thirdline', ' ', '\r')

s_6 = s.rpartition(" ")

其他方法

s = "HEllo world"

print(s.upper()) # ==> HELLO WORLD 全大写

print(s.capitalize()) # ==> Hello world 首部大写

print(s.title()) # ==> Hello world 驼峰原则

print(s.lower()) # ==> hello world 全小写

print(s.swapcase()) # ==> heLLO WORLD 交换大小写

格式化输出

s = "hello"

print(s.center(20, "#")) # #######hello######## 指定宽度和填充字符,居中

print(s.zfill(20)) # 000000000000000hello 右对齐,0填充

print(s.ljust(20, "#")) # hello############### 指定宽度和填充字符,左对齐

print(s.rjust(20, "#")) # ###############hello 指定宽度和填充字符,右对齐

字符替换

s = "heffo worfd"

print(s.replace("f", "l")) # hello world

print(s.replace("f", "l", 2)) # hello worfd

print(s.replace("ff", "l")) # helo worfd

print(s) # heffo worfd 均返回新的字符串,s 未做任何改变

# 批量替换

in_tab = "abxy"

out_tab = "1234"

str_trantab = str.maketrans(in_tab,out_tab) # 创建一个转化表, abcd --> 1234

s = "abcdefghijklmnopqrstuvwxyz"

s.translate(str_trantab) # s将会根据转换表替换对应的字符 ==> 12cdefghijklmnopqrstuvw34z

strip() 删除两端字符

s = " \t hello world \n "

print(s.strip()) # 'hello world'

print(s.strip("\t")) # ' hello world \n '

print(s.strip("\n")) # ' \t hello world \n '

print(s.strip("")) # '\t hello world \n'

print(s.strip(" h\t")) # 'ello world'

s.lstrip() # 只对字符串左边进行操作

s.rstrip() # 只对字符串右边进行操作

字符串查找

# find("",start ,stop) ,# 指定查找的字符,并可以选自查找范围,start -> stop 索引范围

# 找到匹配字符串返回索引,未找到返回 -1

s = "this is a long long long string"

print(s.find("a")) # 返回索引号 8

print(s.find("long")) # 返回第一索引号 10

print(s.find("long", 11, -1)) # 从索引11开始查找,第一个long索引为 15

print(s.count("long", 15, -1)) #从索引15开始查找,只能找到后面两个long

# 字符串的查找都需要对字符串进行遍历,当字符串较长,将会耗费较大的时间

# endswith, startswith 判断字符串是否使用该字符结尾或者开头

# 例如:检查一个文件是否是Python文件格式

file_name = "hello.py"

file_name.endswith(".py") # 是否是.py结尾

"hello".startswith("he") # 是否 he开头

字符检测方法, 返回 True或者 False

# 字符检测方法, 返回 True或者 False

# endswith, startswith 判断字符串是否使用该字符结尾或者开头

# 例如:检查一个文件是否是Python文件格式

file_name = "hello.py"

file_name.endswith(".py") # 是否是.py结尾

"hello".startswith("he") # 是否 he开头

"hell_fa".isidentifier() # 检查是否符合标识符规则,是不是字母和下划线开头,其他都是字母数字、下划线

"abc".isalpha() # 是否全部为字母

"123".isdigit() # 10进制数字

"123".isdecimal() # (0-9)的数字

"123abc".isalnum() # 是否是字母或者数字

"abc".islower() # 全小写

"ABC".isupper() # 全大写

"\n\t\f\r".isspace() # 只包含空白, \t\n\r\f等均为空白字符

# 以结果全部为 True

字符串格式化输出

1. c语言风格格式化输出

s = "hello world"

print("%s,%r" %(s,s)) # %s 调用字符串对象的 __str__方法输出,%r会调用__repr__ 方法,输出不同

# 输出 hello world, 'hello world'

试例:

s = "hello world"

class String(str):

def __str__(self):

return "__str__:{}".format(super().__repr__())

def __repr__(self):

return "__repr__:{}".format(super().__repr__())

string = String(s)

print("%s, %r" %(string,string))

# %s 输出结果: __str__:'hello world', %r 输出结果: __repr__:'hello world'

# %s 调用了对象的 __str__方法,%r 调用了__repr__ 方法

常用输出形式

"%d" %10 #'10'

"%#d" %10 #' 10'

"%-05d" %10 #'10 '

"%d" %10 #'10'

# 可通过以上方式设置对齐方式和宽度等

"%f" %10 #'10.000000'

"%5.3f" %10 #'10.000'

"%10.2f" %10 #' 10.00'

"%-10.2f" %10 #'10.00 '

进制转化

# 无前缀

"%x"%10 # ==> 'a'

"%o"%10 # ==> '12'

# 带前缀

"%#x"%10 # ==> '0xa'

"%#o"%10 # ==> '0o12'

# 对其方式,宽度,显示精度均可设置

# 科学计数法表示

"%-10.2e" %10 #'1.00e+01 '

# 百分数表示

"%-.2f%%" %10 #'10.00%' 在值后面拼接 %, %% ==> 输出一个%

format 格式化函数

# format 格式化函数

a,b,c = 1,2,"tom"

"{}, {name}, {}".format(a,b,name=c) # 位置参数和关键字参数传入 ==> '1, tom, 2'

# 设置填充字符 "#", 对齐方式,宽度

"{}".format(10) #'10'

"{:#<10}".format(10) #'10########'

"{:0>10}".format(10) #'0000000010'

"{:$^10}".format(10) #'$$$$10$$$$'

#进制转化

"{:x}".format(10) #'a' 16进制

"{:o}".format(10) #'12' 8进制

"{:b}".format(10) #'1010' 2进制

#带进制前缀符输出

"{:#b}".format(10) #'0b1010' 0b表示2进制

"{:#x}".format(10) #'0xa' 0x表示16进制

"{:#o}".format(10) #'0o12' 0o表示8进制

# 百分号表示,科学计数

"{:.2%}".format(0.5) #'50.00%' 计算的结果转化为 % 形式表示

"{:.2e}".format(0.5) #'5.00e-01'

"{:.2E}".format(50) #''5.00E+01'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/378302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十章 开箱即用

第十章 开箱即用 “开箱即用”&#xff08;batteries included&#xff09;最初是由Frank Stajano提出的&#xff0c;指的是Python丰富的标准库。 模块 使用import将函数从外部模块导入到程序中。 import math math.sin(0)#结果为&#xff1a;0.0模块就是程序 在文件夹中创…

博客换肤

一直以来觉得博客园里的主题不是特别好&#xff0c;很多模版多多少少都有些美中不足&#xff0c;于是今天抽了点时间把主题改改&#xff0c;哈。幸亏博客园支持自定义样式。 时间有限就先改到这里&#xff0c;今后有时间在进一步完美&#xff0c;呵呵。转载于:https://www.cnbl…

duration java_Java Duration类| 带示例的get()方法

duration java持续时间类get()方法 (Duration Class get() method) get() method is available in java.time package. get()方法在java.time包中可用。 get() method is used to return the value for the given unit. get()方法用于返回给定单位的值。 get() method is a non…

Openmv通过串口接收数据、发送数据与stm32通信

博主联系方式: QQ:1540984562 QQ交流群:892023501 群里会有往届的smarters和电赛选手,群里也会不时分享一些有用的资料,有问题可以在群里多问问。 目录 参考接线星瞳教程openmv传送数据STM32解码程序参考 接线 星瞳教程

c语言尹宝林答案,c程序设计导引 尹宝林

《C程序设计导引》特别适合作为计算机和非计算机专业学生学习高级语言程序设计的教材&#xff0c;也可供计算机等级考试者和其他各类学习者使用参考。17.40定价&#xff1a;44.75(3.89折)/2013-05-01《大学计算机优秀教材系列&#xff1a;C程序设计导引》是一本讲解C程序设计的…

从程序员到项目经理(15):项目管理三大目标

项目管理的三大目标即时间、成本和质量&#xff0c;实际是告诉项目经理应重点关注什么因素&#xff0c;项目控制应该做什么工作。三大目标虽然简单&#xff0c;但如果能将其真正贯彻到自己的行动中&#xff0c;那么对项目计划制定、过程控制等工作&#xff0c;均能起到引导作用…

第十一章 文件

第十一章 文件 打开文件 当前目录中有一个名为beyond.txt的文本文件&#xff0c;打开该文件 调用open时&#xff0c;原本可以不指定模式&#xff0c;因为其默认值就是’r’。 import io f open(beyond.txt)文件模式 值描述‘r’读取模式&#xff08;默认值&#xff09;‘w…

iterator与iterable

用Iterator模式实现遍历集合Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来&#xff0c;从而避免向客户端暴露集合的内部结构。例如&#xff0c;如果没有使用Iterator&#xff0c;遍历一个数组的方法是使用索引&#xff1a; for(i…

Android中的Touch事件处理流程

1、当触摸屏幕时&#xff0c;最先执行的是Activity中的 publicbooleandispatchTouchEvent (MotionEvent ev) {if(ev.getAction() MotionEvent. ACTION_DOWN) {onUserInteraction();}if(getWindow().superDispatchTouchEvent(ev)) {returntrue;}returnonTouchEvent(ev);}如果某…

【TensorFlow学习笔记:神经网络八股】(实现MNIST数据集手写数字识别分类以及FASHION数据集衣裤识别分类)

课程来源&#xff1a;人工智能实践:Tensorflow笔记2 文章目录前言一、搭建网络八股sequential1.函数介绍2.6步法实现鸢尾花分类二、搭建网络八股class1.创建自己的神经网络模板&#xff1a;2.调用自己创建的model对象三、MNIST数据集1.用sequential搭建网络实现手写数字识别2.用…

c语言 在执行区域没有空格,C语言上机操作指导之TurboC.doc

C语言上机操作指导之 -------- Turbo C程序设计是实践性很强的过程&#xff0c;任何程序都必须在计算机上运行&#xff0c;以检验程序的正确与否。因此在学习程序设计中&#xff0c;一定要重视上机实践环节&#xff0c;通过上机可以加深理解 C语言的有关概念&#xff0c;以巩固…

java 根据类名示例化类_Java即时类| from()方法与示例

java 根据类名示例化类即时类from()方法 (Instant Class from() method) from() method is available in java.time package. from()方法在java.time包中可用。 from() method is used to return a copy of the Instant from the given TemporalAccessor object. from()方法用于…

第十二章 图形用户界面

第十二章 图形用户界面 GUI就是包含按钮、文本框等控件的窗口 Tkinter是事实上的Python标准GUI工具包 创建GUI示例应用程序 初探 导入tkinter import tkinter as tk也可导入这个模块的所有内容 from tkinter import *要创建GUI&#xff0c;可创建一个将充当主窗口的顶级组…

Sqlserver 2005 配置 数据库镜像:数据库镜像期间可能出现的故障:镜像超时机制

数据库镜像期间可能出现的故障 SQL Server 2005其他版本更新日期&#xff1a; 2006 年 7 月 17 日 物理故障、操作系统故障或 SQL Server 故障都可能导致数据库镜像会话失败。数据库镜像不会定期检查 Sqlservr.exe 所依赖的组件来验证组件是在正常运行还是已出现故障。但对于某…

江西理工大学期末试卷c语言,2016年江西理工大学信息工程学院计算机应用技术(加试)之C语言程序设计复试笔试最后押题五套卷...

一、选择题1&#xff0e; 设有函数定义&#xff1a;( )。A. B. C. D. 答:A则以下对函数sub 的调用语句中&#xff0c;正确的是【解析】函数的参数有两个&#xff0c;第一个是整型&#xff0c;第二个是字符类型&#xff0c;在调用函数时&#xff0c;实参必须一个是整型&#xff…

第十三章 数据库支持

第十三章 数据库支持 本章讨论Python数据库API&#xff08;一种连接到SQL数据库的标准化方式&#xff09;&#xff0c;并演示如何使用这个API来执行一些基本的SQL。最后&#xff0c;本章将讨论其他一些数据库技术。 关Python支持的数据库清单 Python数据库API 标准数据库API…

【神经网络八股扩展】:自制数据集

课程来源&#xff1a;人工智能实践:Tensorflow笔记2 文章目录前言1、文件一览2、将load_data()函数替换掉2、调用generateds函数4、效果总结前言 本讲目标:自制数据集&#xff0c;解决本领域应用 将我们手中的图片和标签信息制作为可以直接导入的npy文件。 1、文件一览 首先看…

java 批量处理 示例_Java中异常处理的示例

java 批量处理 示例Here, we will analyse some exception handling codes, to better understand the concepts. 在这里&#xff0c;我们将分析一些异常处理代码 &#xff0c;以更好地理解这些概念。 Try to find the errors in the following code, if any 尝试在以下代码中…

hdu 1465 不容易系列之一

http://acm.hdu.edu.cn/showproblem.php?pid1465 今天立神和我们讲了错排&#xff0c;才知道错排原来很简单&#xff0c;从第n个推起&#xff1a; 当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表示,那么M(n-1)就表示n-1个编号元素放在n-1个编号位置…

第十四章 网络编程

第十四章 网络编程 本章首先概述Python标准库中的一些网络模块。然后讨论SocketServer和相关的类&#xff0c;并介绍同时处理多个连接的各种方法。最后&#xff0c;简单地说一说Twisted&#xff0c;这是一个使用Python编写网络程序的框架&#xff0c;功能丰富而成熟。 几个网…