Python 编程 | 连载 05 - 字符串操作

简介: Python 编程 | 连载 05 - 字符串操作

一、字符串 String 操作

Python中一切皆对象,而每个对象都拥有各自的属性与方法,对象的特点就是它的属性,对象拥有的功能就是它的方法

capitalize 函数

capitalize方法的作用是将字符串首字母大写其他字母小写

capitalize()函数是字符串对象的一个函数,只有字符串才能调用,方法的参数为空并返回一个新的字符串;原字符串不会受到影响

d50fcf0177484270ba9e59494e291f03_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

在python-hero项目中新增capitalize.py文件

name = 'thor'
info = 'stark 斯塔克'
nick_name = '蜘蛛侠 Peter'
number_str = '9527'
new_name = name.capitalize()
new_info = info.capitalize()
new_nick_name = nick_name.capitalize()
new_number_str = number_str.capitalize()
print(new_name)
print("name变量的值:" + name)
print(new_info)
print("info变量的值:" + info)
print(new_nick_name)
print("nick_name变量的值:" + nick_name)
print(new_number_str)
print("number_str变量的值:" + number_str)
复制代码

执行Python脚本

583cb34042654ab8b7c7d17ebb54915a_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

根据控制台输出,capitalize方法将首字母都变成了大写,而原字符串不变

capitalize的注意事项有:

  • 只对第一个字母有效
  • 只对字母有效
  • 字母已经是大写则不做任何改变

casefold 与 lower 函数

casefold函数的功能与lower函数的功能一致,作用是将字符串中所有的字符全部小写,并返回一个新的字符串,且不用填写任何参数

casefold和lower只对字符串中的字母有效,其他字符无效,且如果字符已经全部都是小写,则调用方法不会有任何变化

casefold在python3.3之后才引入的,lower在python2版本中就存在 lower将英文字母小写,其他语言则无法处理 casefold可以将更多语种进行小写处理

name = 'PETER'
info = 'How Are You'
info_ch = '你好啊'
info_empty = ''
new_name = name.casefold()
new_info = info.casefold()
new_info_ch = info_ch.casefold()
new_info_empty = info_empty.casefold()
new_name_lower = name.lower()
new_info_lower = info.lower()
new_info_ch_lower = new_info_ch.lower()
new_info_empty_lower = info_empty.lower()
print(new_name)
print(new_info)
print(new_info_ch)
print(new_info_empty)
print('-------------')
print(new_name_lower)
print(new_info_lower)
print(new_info_ch_lower)
print(new_info_empty_lower)
print('-------------')
复制代码

19b0f057c8cf483aadf8d0e939167ffb_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

对英文casefold和lower对英文语言的作用是一样的,作用于空字符串不会报错且原字符串不变

upper 函数

upper函数的作用是将字符串全体大写,并返回新的字符串,参数为空;upper函数只会作用于字符串中的字母,如果字母已经是大写则无效。

info = 'Hello Python!'
message = 'this is peter, 18 years old'
new_info = info.upper()
new_message = message.upper()
print(new_info)
print(new_message)
复制代码

90f19d36d06e4a6ba2d2a06876b570be_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

swapcase 函数

swapcase是大小写有关中的最后一个函数,该函数的作用是将字符串中的大小写字母进行转换,该函数返回一个新的字符串,传递的参数为空。swapcase函数只针对字符串中的字符有效

info_01 = 'python is The World Best LANGUAGE'
info_02 = 'python web is VERY IMPORTANT'
new_info_01 = info_01.swapcase()
new_info_02 = info_02.swapcase()
print(new_info_01)
print(new_info_02)
复制代码

b433db521ff7469ba2005e1bef370a3c_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

zfill 函数

zfill函数为字符串定义长度,如果字符串长度不满足定义的长度,则用0填补;该函数返回一个新的字符串,并且需要传入一个参数既字符串的长度;zfill函数的使用与字符串的字符无关并且如果定义长度小于当前字符串的长度,则不发生变化

info = 'python'
if __name__ == '__main__':
    print(len(info))
    print(info.zfill(3))
    print(info.zfill(10))
复制代码

130f98f63b2446e190f6d10c72a64ef3_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

count 函数

count 函数返回当前字符串中指定字符的个数,需要传入一个字符作为参数并返回一个整型数据,如果查询的元素不再字符串中就返回0

zen = '''
    The Zen of Python, by Tim Peters
    Beautiful is better than ugly.
    Explicit is better than implicit.
    Simple is better than complex.
    Complex is better than complicated.
    Flat is better than nested.
    Sparse is better than dense.
    Readability counts.
    Special cases aren't special enough to break the rules.
    Although practicality beats purity.
    Errors should never pass silently.
    Unless explicitly silenced.
    In the face of ambiguity, refuse the temptation to guess.
    There should be one-- and preferably only one --obvious way to do it.
    Although that way may not be obvious at first unless you're Dutch.
    Now is better than never.
    Although never is often better than *right* now.
    If the implementation is hard to explain, it's a bad idea.
    If the implementation is easy to explain, it may be a good idea.
    Namespaces are one honking great idea -- let's do more of those!
    '''
is_count = zen.count('is')
print(is_count)
to_count = zen.count('to')
print(to_count)
of_count = zen.count('of')
print(of_count)
复制代码

558de06129ad413095a36f68e84f457e_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

startswith 和 endswith 函数

startswith函数的功能是判断字符串开始位是否是指定的字符串,endswith函数式判断字符串是否以指定的字符串结束,这两个函数都返回布尔值。

info = 'i am iron man'
msg = 'today is monday'
res_01 = info.startswith('i')
print(res_01)
res_02 = msg.startswith('t')
print(res_02)
res_03 = info.endswith('n')
print(res_03)
res_04 = msg.endswith('a')
print(res_04)
复制代码

4daba93a22ae4a7896753e91dec8627e_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

find 函数与 index  函数

find与index都是返回指定成员在字符串中的位置,参数为要查询的字符,返回一个整形;如果find找不到指定元素返回-1,如果index找不到指定元素则会报错

info = 'python is the world best language'
res_01 = info.find('o')
print(res_01)
res_02 = info.index('o')
print(res_02)
res_03 = info.find('go')
print(res_03)
res_04 = info.index('go')
print(res_04)
复制代码

a615e4503f494995b6354544862bd8e9_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

strip、lstrip、rstrip 函数

strip 函数可以去除字符串左右两边的指定元素,默认去除空格;返回一个新的字符串,参数为指定要去除的字符,默认为空格。

注意事项:

  • 传入的元素如果不再开头或者结尾则无效
  • lstrip仅仅去掉字符串开头的指定元素或者空格
  • rstrip仅仅去除字符串结尾的指定元素或者空格
message = '  ---With great power comes great responsibility---   '
message_01 = message.strip()
print(message_01)
message_02 = message_01.strip('-')
print(message_02)
message_03 = message_02.lstrip('W')
print(message_03)
message_04 = message_03.rstrip('y')
print(message_04)
复制代码

76903e7d80b24085956af5857353835a_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

replace 函数

replace函数可以将字符串中指定的元素(old)替换为另一个指定的元素(new),并可以指定替换的数量(max),replace函数需要传入三个参数并返回一个新的字符串,替换数量默认为替换全部,并且从左往右替换,如果要替换的元素字符串中不存在,则字符串不会发生变化

new_str = str.replace(old, new, max)
复制代码
code = 'Who is The strongest Avenger'
code_01 = code.replace('Who', 'Thor')
print(code_01)
code_02 = code.replace('e', 'E')
print(code_02)
code_03 = code.replace('e', 'E', 1)
print(code_03)
code_04 = code.replace('who', 'Hulk')
print(code_04)
复制代码

e802359bd87142c8bc55b656519e7f8e_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

返回 bool 类型的函数

字符串中返回值为bool类型的有以下几个函数

  • isspace:判断字符串是否由空格组成,无须传递参数
  • istitle:判断字符串是否是一个标题类型,无须传递参数
  • isupper:判断字符串中的字符是否都是大写,无须传递参数
  • islower:判断字符串中的字符是否都是小写,无须传递参数

注意:

  • 由空格组成的字串不是空字符串
  • title就是有多个单词组成,每个单词的首字母大写
  • title函数只能用于英文
print('-----isspace函数-----')
print('  '.isspace())
print('HULK'.isspace())
print('STARK '.isspace())
print('-----istitle函数-----')
print('Stark Industry'.istitle())
print('the seven'.istitle())
print('-----isupper函数-----')
print('VISION'.isupper())
print('Thor Odin'.isupper())
print('-----islower函数-----')
print('Tony'.islower())
print('ok'.islower())
复制代码

733699fd86f64f21a512033ece23d101_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

这几个函数使用频率相对较低。


相关文章
|
4天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
4天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
4天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
6天前
|
设计模式 算法 搜索推荐
Python编程中的设计模式:优雅解决复杂问题的钥匙####
本文将探讨Python编程中几种核心设计模式的应用实例与优势,不涉及具体代码示例,而是聚焦于每种模式背后的设计理念、适用场景及其如何促进代码的可维护性和扩展性。通过理解这些设计模式,开发者可以更加高效地构建软件系统,实现代码复用,提升项目质量。 ####
|
5天前
|
机器学习/深度学习 存储 算法
探索Python编程:从基础到高级应用
【10月更文挑战第38天】本文旨在引导读者从Python的基础知识出发,逐渐深入到高级编程概念。通过简明的语言和实际代码示例,我们将一起探索这门语言的魅力和潜力,理解它如何帮助解决现实问题,并启发我们思考编程在现代社会中的作用和意义。
|
5天前
|
机器学习/深度学习 数据挖掘 开发者
Python编程入门:理解基础语法与编写第一个程序
【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。
|
6天前
|
人工智能 数据挖掘 程序员
Python编程入门:从零到英雄
【10月更文挑战第37天】本文将引导你走进Python编程的世界,无论你是初学者还是有一定基础的开发者,都能从中受益。我们将从最基础的语法开始讲解,逐步深入到更复杂的主题,如数据结构、面向对象编程和网络编程等。通过本文的学习,你将能够编写出自己的Python程序,实现各种功能。让我们一起踏上Python编程之旅吧!
|
7天前
|
数据采集 机器学习/深度学习 人工智能
Python编程入门:从基础到实战
【10月更文挑战第36天】本文将带你走进Python的世界,从基础语法出发,逐步深入到实际项目应用。我们将一起探索Python的简洁与强大,通过实例学习如何运用Python解决问题。无论你是编程新手还是希望扩展技能的老手,这篇文章都将为你提供有价值的指导和灵感。让我们一起开启Python编程之旅,用代码书写想法,创造可能。
|
9天前
|
Python
不容错过!Python中图的精妙表示与高效遍历策略,提升你的编程艺术感
本文介绍了Python中图的表示方法及遍历策略。图可通过邻接表或邻接矩阵表示,前者节省空间适合稀疏图,后者便于检查连接但占用更多空间。文章详细展示了邻接表和邻接矩阵的实现,并讲解了深度优先搜索(DFS)和广度优先搜索(BFS)的遍历方法,帮助读者掌握图的基本操作和应用技巧。
26 4
|
11天前
|
存储 人工智能 数据挖掘
从零起步,揭秘Python编程如何带你从新手村迈向高手殿堂
【10月更文挑战第32天】Python,诞生于1991年的高级编程语言,以其简洁明了的语法成为众多程序员的入门首选。从基础的变量类型、控制流到列表、字典等数据结构,再到函数定义与调用及面向对象编程,Python提供了丰富的功能和强大的库支持,适用于Web开发、数据分析、人工智能等多个领域。学习Python不仅是掌握一门语言,更是加入一个充满活力的技术社区,开启探索未知世界的旅程。
20 6