热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python3字符串

Python3字符串字符串是Python中最常用的数据类型。我们可以使用引号('或")来创建字符串。var1'HelloWorld!&

Python3 字符串

Python3 字符串

字符串是 Python 中最常用的数据类型。我们可以使用引号( " 或 " )来创建字符串。

var1 = "Hello World!"
var2 = "Runoob"
Python 访问字符串中的值

Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。

Python 访问子字符串,可以使用方括号来截取字符串,

如下实例:

var1 = "Hello World!"
var2 = "Runoob"
 
print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5])

输出:

var1[0]:  H
var2[1:5]:  unoo
Python字符串运算符
  • +字符串连接
  • *重复输出字符串
  • [] 通过索引获取字符串中字符
  • [ : ] 截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。
  • in 成员运算符 - 如果字符串中包含给定的字符返回 True
  • not in 成员运算符 - 如果字符串中不包含给定的字符返回 True
  • r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
f-string

f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。

name = "Runoob"
f"Hello {name}"  # 替换变量
Unicode 字符串

在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀 u。

在Python3中,所有的字符串都是Unicode字符串。

Python 的字符串内建函数

count(str, beg= 0,end=len(string))

返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

count()方法语法:

str.count(sub, start= 0,end=len(string))

参数

  • sub -- 搜索的子字符串
  • start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
  • end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。

实例:

str="www.runoob.com"
sub="o"
print ("str.count("o") : ", str.count(sub))

sub="run"
print ("str.count("run", 0, 10) : ", str.count(sub,0,10))

输出:

str.count("o") :  3
str.count("run", 0, 10) :  1

bytes.decode()、encode()

Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。

以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是"ignore"或者"replace"

方法语法:

bytes.decode(encoding="utf-8", errors="strict")
str.encode(encoding="UTF-8",errors="strict")

参数

  • encoding -- 要使用的编码,如"UTF-8"。
  • errors -- 设置不同错误的处理方案。默认为 "strict",意为编码错误引起一个UnicodeError。 其他可能得值有 "ignore", "replace", "xmlcharrefreplace", "backslashreplace" 以及通过 codecs.register_error() 注册的任何值。

实例:

str = "菜鸟教程";
str_utf8 = str.encode("UTF-8")
str_gbk = str.encode("GBK")
 
print(str)
 
print("UTF-8 编码:", str_utf8)
print("GBK 编码:", str_gbk)
 
print("UTF-8 解码:", str_utf8.decode("UTF-8","strict"))
print("GBK 解码:", str_gbk.decode("GBK","strict"))

输出:

菜鸟教程
UTF-8 编码: b"xe8x8fx9cxe9xb8x9fxe6x95x99xe7xa8x8b"
GBK 编码: b"xb2xcbxc4xf1xbdxccxb3xcc"
UTF-8 解码: 菜鸟教程
GBK 解码: 菜鸟教程

endswith()、startswith()

检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.

检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查

方法语法:

str.endswith(substr, beg=0,end=len(string)])
str.startswith(substr, beg=0,end=len(string));

参数

  • suffix -- 该参数可以是一个字符串或者是一个元素。
  • beg -- 字符串中的开始位置。
  • end -- 字符中结束位置。
Str="Runoob example....wow!!!"
suffix="run"
print (Str.endswith(suffix, 0, 19))

str = "this is string example....wow!!!"
print (str.startswith( "this", 2, 4 )) # 从第2个字符开始到第四个字符结束的字符串是否以 this 开头

输出:

False
False

find(str, beg=0, end=len(string))

检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1

find()方法语法:

str.find(str, beg=0, end=len(string))

参数

  • str -- 指定检索的字符串
  • beg -- 开始索引,默认为0。
  • end -- 结束索引,默认为字符串的长度。

返回值

  • 如果包含子字符串返回开始的索引值,否则返回-1。

实例:

str1 = "Runoob example....wow!!!"
str2 = "exam";
 
print (str1.find(str2))
print (str1.find(str2, 5))
print (str1.find(str2, 10))

输出:

7
7
-1

isalnum()

如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False

实例:

str = "runoob2016"  # 字符串没有空格
print (str.isalnum())
 
str = "www.runoob.com"
print (str.isalnum())

输出:

True
False

isalpha()

如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False

实例:

str = "runoob"
print (str.isalpha())

# 字母和中文文字
str = "runoob菜鸟教程"
print (str.isalpha())

str = "Runoob example....wow!!!"
print (str.isalpha())

输出:

True
True
False

isdigit()

如果字符串只包含数字则返回 True 否则返回 False..

isdigit()方法的实例:

#!/usr/bin/python3

str = "123456"; 
print (str.isdigit())

str = "Runoob example....wow!!!"
print (str.isdigit())

输出:

True
False

join(seq)

以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

join()方法语法:

str.join(sequence)

参数

  • sequence -- 要连接的元素序列。

返回值

  • 返回通过指定字符连接序列中元素后生成的新字符串。

实例:

s1 = "-"
seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
print (s1.join( seq ))

输出:

r-u-n-o-o-b

len(string)

返回字符串长度

lstrip()、rstrip()

截掉字符串左边的空格或指定字符。

截掉字符串右边的空格或指定字符。

strip([chars])

在字符串上执行 lstrip()和 rstrip() 删除字符串字符串末尾的空格.

max(str)

返回字符串 str 中最大的字母。

min(str)

返回字符串 str 中最小的字母。

replace(old, new [, max])

把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。

replace()方法语法:

str.replace(old, new[, max])

参数

  • old -- 将被替换的子字符串。
  • new -- 新字符串,用于替换old子字符串。
  • max -- 可选字符串, 替换不超过 max 次

返回值

  • 返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次 实例:
str = "this is string example....wow!!!"
print (str.replace("is", "was", 3))

输出:

thwas was string example....wow!!!

split(str="", num=string.count(str))

split() 通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串

实例:

str = "this is string example....wow!!!"
print (str.split( ))       # 以空格为分隔符
print (str.split("i",1))   # 以 i 为分隔符
print (str.split("w"))     # 以 w 为分隔符

输出:

["this", "is", "string", "example....wow!!!"]
["th", "s is string example....wow!!!"]
["this is string example....", "o", "!!!"]

splitlines([keepends])

按照行(" ", " ", ")分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。 实例:

>>> "ab c

de fg
kl
".splitlines()
["ab c", "", "de fg", "kl"]
>>> "ab c

de fg
kl
".splitlines(True)
["ab c
", "
", "de fg
", "kl
"]

推荐阅读
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 摘要: 在测试数据中,生成中文姓名是一个常见的需求。本文介绍了使用C#编写的随机生成中文姓名的方法,并分享了相关代码。作者欢迎读者提出意见和建议。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • Java SE从入门到放弃(三)的逻辑运算符详解
    本文详细介绍了Java SE中的逻辑运算符,包括逻辑运算符的操作和运算结果,以及与运算符的不同之处。通过代码演示,展示了逻辑运算符的使用方法和注意事项。文章以Java SE从入门到放弃(三)为背景,对逻辑运算符进行了深入的解析。 ... [详细]
  • 《2017年3月全国计算机等级考试二级C语言上机题库完全版》由会员分享,可在线阅读,更多相关《2017年3月全国计算机等级考试二级C语言上机题库完全版( ... [详细]
  • R语言拼接字符串_paste的用法说明
    这篇文章主要介绍了R语言拼接字符串_paste的用法说明,具有很好的参考价值,希望对大家有所帮助。一 ... [详细]
  • 查找给定字符串的所有不同回文子字符串原文:https://www ... [详细]
  • 1关于字符串相邻的两个或多个字符串字面值(引号引起来的字符)将会自动连接到一起:str_catpython!str_cat输出:python!把很长 ... [详细]
  • java io换行符_Java IO:为什么从stdin读取时,换行符的数字表示出现在控制台上?...
    只是为了更好地理解我在讲座中听到的内容(关于Java输入和输出流),我自己做了这个小程序:publicstaticvoidmain(String[]args)thro ... [详细]
  • 开发笔记:对称加密详解,以及JAVA简单实现
     (原)常用的加密有3种1、正向加密,如MD5,加密后密文固定,目前还没办法破解,但是可以能过数据库撞库有一定概率找到,不过现 ... [详细]
  • 点击打开链接去除换行updatezhzl_addresstsett.add_administration_numreplace(t.add_administration_num,chr(10 ... [详细]
author-avatar
mobiledu2502914555
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有