[Python3]String(字符串)

概述

字符串是Python中最常用的数据类型,通常我们使用引号(单引‘ 或 双引" 或 三引号""")来创建字符串。

在python3中,所有的字符串都是Unicode编码。

对于编程而言,大部分时间都是在做字符的处理,例如字符串连接、切割、转换、格式化等等。

下面我们如何用不同的引号来创建字符串:

a = u‘我是字符串‘

b = u"我是字符串"

c = """我是字符串
我是字符串
我还是字符串
"""

由上面看出,三引号括起来的字符串可以有多行。

字符串内置函数

在python中字符串内置函数提供了各种字符串处理能力,下面我们看几个常用的函数应用示例:

字符连接和切割

在python中提供了以下函数完成连接和切割功能:

  • join
    以指定的字符串将元组、列表中的所有的元素合并为一个新的字符串。
  • split
    以指定的分隔符来截取字符串,返回一个list对象

下面我们看看具体的代码示例:

# -*- coding:utf-8 -*-

__author__ = u‘谷白‘

if __name__ == "__main__":
    t = (‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘a‘, ‘b‘, "efg")   

    # 用 - 将t中元素合并成一个新的字符串
    str_demo = ‘-‘.join(t)
    print(str_demo)    

    # 将str_demo以-进行切割
    str_set = str_demo.split(‘-‘)
    print(str_set)    

    # 将t中元素合并成一个新的字符串
    str_demo = ‘‘.join(t)
    print(str_demo)

执行结果如下:

1-2-3-4-5-a-b-efg
[‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘a‘, ‘b‘, ‘efg‘]
12345abefg

字符串查找和替换

在python提供了以下函数来实现查找与替换功能。

  • find
    find(str, beg=0, end=len(string)),查找str是否包含在字符串中,若指定了beg和end,则在beg和end范围中查找,若找到则返回开始的索引值,否则返回-1
  • index
    同find方法,不同的是,index若未查找到,抛出一个异常信息,而不是返回-1
  • rfind
    同find方法,不过rfind是从右边往左边查找。
  • rindex
    同index方法,不过rindex是从右边往左边查找。
  • repalce
    将字符串中指定的子串替换成目标字符串,如果指定了替换次数,则替换不超过指定的次数

下面我们一起看下代码示例:

# -*- coding:utf-8 -*-

__author__ = u‘谷白‘

if __name__ == "__main__":
    source_str = u"it‘s my book, please show it, wa ka ka, yo yo yo!"

    # 从左往右查找yo
    print(u"从左往右查找 yo")
    print(source_str.find("yo"))
    print(source_str.index("yo"))    

    # 从右往左查找yo
    print(u"从右往左查找 yo")
    print(source_str.find("yo"))
    print(source_str.rindex("yo"))    

    # 替换所有的 yo
    des_str = source_str.replace("yo", "ha")
    print(des_str)    

    # 替换两次 yo
    des_str = source_str.replace("yo", "ha", 2)
    print(des_str)
    

执行结果如下

从左往右查找 yo
40
40
从右往左查找 yo
40
46
it‘s my book, please show it, wa ka ka, ha ha ha!
it‘s my book, please show it, wa ka ka, ha ha yo!

去字符串前后空格

去除字符串的空格需要用到以下三个字符串内置函数:

  • lstrip
    去除字符串左边的空格
  • rstrip
    去除字符串右边的空格
  • strip
    去除字符串左右两边的空格,即把lstrip和rstrip都执行一遍
# -*- coding:utf-8 -*-

__author__ = u‘谷白‘

if __name__ == "__main__":
    # 去字符串空格示例
    demo_str = "  我的前  后 和 中 间  都有空格  "
    print(demo_str)  

    # 去除前面的空格
    lstr = demo_str.lstrip()
    print(lstr)    

    # 去除后面的空格
    rstr = demo_str.rstrip()
    print(rstr)    

    # 去除前后的空格
    str = demo_str.strip()
    print(str)

运行结果如下:

我的前  后 和 中 间  都有空格
我的前  后 和 中 间  都有空格
  我的前  后 和 中 间  都有空格
我的前  后 和 中 间  都有空格

判断字符串类型

根据字符串数据来判断其类型,需要用到以下函数:

  • isalnum
    判断字符串是否由字母或数字组成,是则返回true,否则为false
  • isalpha
    判断字符串是否都是字母,是则返回true,否则为false
  • isdigit 判断字符串是否都是数字,是则返回true,否则为false
  • islower 判断字符串是否都是小写,是则返回true,否则为false
  • isnumeric 判断字符串是否都是数字,是则返回true,否则为false
  • isspace 判断字符串是否都是空格,是则返回true,否则为false
  • isupper 判断字符串是否都是大写,是则返回true,否则为false

下看下上述函数的代码示例:

# -*- coding:utf-8 -*-

__author__ = u‘谷白‘

if __name__ == "__main__":
    str_1 = "1234567890"
    str_2 = "abcdefABCDEF"
    str_3 = "12345abcdeABCDE"
    str_4 = "abcdef"
    str_5 = "ABCDEF"
    str_6 = "    "
    str_7 = " sfsdf "

    # isalnum
    print(str_3.isalnum())    

    # isalpha
    print(str_2.isalpha())    

    # isdigit
    print(str_1.isdigit())    

    # islower
    print(str_4.islower())
    print(str_2.islower())    

    # isupper
    print(str_4.isupper())
    print(str_2.isupper())    

    # isspace
    print(str_6.isspace())
    print(str_7.isspace())

具体运行结果,你可以将上述代码运行查看实际结果,并可以尝试修改上述代码看看。

小结

本节并未将字符串处理的所有函数都进行实例演示,所以对于其他的函数,请参考官方文档。

时间: 2024-08-08 13:51:42

[Python3]String(字符串)的相关文章

JAVA基础——重新认识String字符串

深入剖析Java之String字符串 在程序开发中字符串无处不在,如用户登陆时输入的用户名.密码等使用的就是字符串. 在 Java 中,字符串被作为 String 类型的对象处理. String 类位于 java.lang 包中.默认情况下,该包被自动导入所有的程序. 创建 String 对象有三种方法 String s1="我是字符串1"; String s2=new String();//创建一个空的字符串对象 String s3=new String("我是字符串2&q

Java String字符串/==和equals区别,str。toCharAt(),getBytes,indexOf过滤存在字符,trim()/String与StringBuffer多线程安全/StringBuilder单线程—— 14.0

课程概要 String 字符串 String字符串常用方法 StringBuffer StringBuilder String字符串: 1.实例化String对象 直接赋值  String str="Hello";  推荐这种 使用关键字new  String str1=new String("Hello"); 在内存中开辟2个空间 如图: 源代码 StringDemo01.java 2.String内容的比较 String str="Hello"

不使用java内置函数,将String字符串转换为int类型

package com.test; public class AtoiTest { public static void main(String[] args) throws Exception { String s = "-011134"; System.out.println("转换前的字符串:" + s); System.out.println("atoi1转换后的字符串:" + atoi1(s)); System.out.println(

ZOJ 1151 Word Reversal反转单词 (string字符串处理)

链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=151 For each list of words, output a line with each word reversed without changing the order of the words. This problem contains multiple test cases! The first line of a multiple input is

集合或数组转成String字符串

1.将集合转成String字符串 String s=""; for (int i = 0; i < numList.size(); i++) { if (s=="") { s=numList.get(i); }else { s=s+","+numList.get(i); } } 定义List集合,如: List<String> numList=new ArrayList<String>(); for(int i=1;

C++入门经典-例6.20-修改string字符串的单个字符

1:使用+可以将两个string 字符串连接起来.同时,string还支持标准输入输出函数.代码如下: // 6.20.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include <string> using namespace std; int main() { string str1 = "您好,"; string str2; cout<<&

C++入门经典-例6.21-比较string字符串,比较两个字符串

1:使用">"."!=".">="等比较运算符可以比较两个字符串的内容.比较的方法是将两个string字符串从头开始比较每一个字符,直到出现两者不一致.比较这两个不相同的字符的字面值,得出相应的结果.代码如下: // 6.21.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include <string> u

Python3基础-字符串类型

Text Sequence Type - str(immutable) class str(object='') class str(object=b'', encoding='utf-8', errors='strict') Return a string version of object. If object is not provided, returns the empty string. Otherwise, the behavior of str() depends on whet

string字符串转换为array(互换)

将string字符串转换为array数组 NSArray  *array = [Str componentsSeparatedByString:@","]; 反向方法 将array数组转换为string字符串 NSString *tempString = [mutableArray componentsJoinedByString:@","];--分隔符