03_Python数据类型_字符串

news2024/11/25 4:22:21

在这里插入图片描述

Python的基础数据类型

  • 数值类型:整数、浮点数、复数、布尔
  • 字符串
  • 容器类型:列表、元祖、字典、集合

字符串

  • 在Python中,字符串(String)是一种非常重要的数据类型,用于表示文本数据。
  • 字符串是不可变的,这意味着一旦创建了字符串,就不能更改其中的内容。
  • 创建字符串:可以使用单引号(’ ‘)、双引号(" ")或三引号(’‘’ ‘’’ 或 “”" “”")来创建字符串。
# 创建字符串,单引号
s1 = 'Python'
print(s1)
# 创建字符串 双引号
s2 = "Python"
print(s2)
# 创建字符串,三引单号
s3 = '''床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。'''
print(s3)
# 创建字符串,三单引号
s3 = """床前看月光,
疑是地上霜。
举头望山月,
低头思故乡。"""
print(s3)

字符串定义时,可以使用续行符,在代码编辑器中进行换行。

# 续行符 \
s4 = "窗前明月光,\
疑是地上霜。"
print(s4)

字符串的基本操作

  • 拼接: 使用 + 运算符可以拼接两个字符串。
  • 重复: 使用 * 运算符可以重复字符串。
  • 索引: 使用索引可以访问字符串中的单个字符,索引从0开始。
  • 切片: 使用切片可以获取字符串的一部分。

拼接

# 拼接
s1 + s2

重复

# 重复
s1 * 3

索引

  • 访问序列中某一个元素
    • 语法格式:字符串名[index]
      • index范围:0…len()-1
      • index正数:从左到右顺序进行索引。
      • index负数:从右到左顺序进行索引。
print(s1[0])
print(s1[-6])

切片

  • 获取序列中一定区域的元素。
    • 语法格式:字符串名[start🔚step]
      • start: 起始位置:正数从左到右,否则从右到左,默认0
      • end: 结束位置,不包含end,默认len(str)
      • step: 代表获取元素的方向。默认1
        • 正数,从左到右切取,要求start位置必须在end位置左侧;
        • 负数,从右到左切取,要求start位置必须在end位置右侧。
# Pyt
print(s1[0:3:1])
# Pto
print(s1[0:5:2])

常用运算

  • s1 in/not in s2:s1是否存在s2中,返回boolen
  • s1 is s2:两个对象是否同一个
  • s1 == s2:两个内容是否同一个,作为字符串来说,is==结果相同。
  • id(object):返回object的内存地址(唯一标识)。
  • 字符串比较:==、!=、>、<、>=、<=
  • 字符串大小写转换:upper、lower、swapcase、capitalize
  • 字符串查找:find、index、rfind、rindex、startswith、endswith
  • 字符串替换:replace、strip、lstrip、rstrip
  • 字符串分割:split、rsplit、partition、rpartition
  • 字符串格式化:format、%
  • 字符串转数字:int、float
  • 字符串转义:\n、\t、\r、\b、\f、\v、\0、\xhh、\uhhhh、\Uhhhhhhhh
'P' in s1
'p' not in s1
id(s1)
# 字符串查找
s = "Hello Python!"
# 子串在字符串中第一次出现的位置
s.index("o")
# 从第5个字符开始查找
s.index("o",5)
# join 将字符串拼接
"-".join(["a","b","c","d"])
# 字符串替换
# replace 将old替换成new,默认全部替换。
s.replace("o","--",1)
# split 切割,默认空值;结果存成列表(list)
s.split()
# strip 去掉前后空字符
# lstrip 去掉左侧空字符
# rstrip 去掉右侧空字符
s3 = "    Hello Python!  \n"
s3.strip()
# 大小写转换
# lower 转小写
# upper 转大写
s3.lower()
s3.upper()

字符串格式化

Python支持多种字符串格式化的方法,包括:

  • 百分号格式化: % 格式化。
  • str.format(): 使用 str.format() 方法。
name = "张三"
age = 20
formatted_str = "姓名:%s,年龄:%d" % (name, age)
formatted_str2 = "姓名:{}, 年龄:{}".format(name, age)
formatted_str3 = f"姓名:{name}, 年龄:{age}"
print(formatted_str)
print(formatted_str2)
print(formatted_str3)

字符串编码和解码

Python中的字符串在内存中以Unicode表示,但存储到文件或通过网络传输时,需要将其编码为字节。可以使用 encode() 方法进行编码,使用 decode() 方法进行解码。

utf8_str = "你好".encode('utf-8')
original_str = utf8_str.decode('utf-8')
print(utf8_str)
print(original_str)

字符串是Python编程中不可或缺的部分,掌握字符串的操作对于编写Python程序至关重要。

附件

本文对应的jupyter notebook源码链接,欢迎下载练习:https://download.csdn.net/download/fx_yzjy101/89754107

如有问题请留言。

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

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

相关文章

算子级血缘在金融数据环境的实践应用

在企业的数据管理领域&#xff0c;算子级血缘极大优化了脚本内部字段口径的理解与追踪。面对几十、几百乃至几千行代码的复杂脚本&#xff0c;并且有着各种函数调用、数据转换等复杂的加工逻辑&#xff0c;如果通过传统的 ETL 工作模式&#xff0c;开发人员就不得不采用“盲人摸…

SpringBoot整合WebSocket实现消息推送或聊天功能示例

最近在做一个功能&#xff0c;就是需要实时给用户推送消息&#xff0c;所以就需要用到 websocket springboot 接入 websocket 非常简单&#xff0c;只需要下面几个配置即可 pom 文件 <!-- spring-boot-web启动器 --><dependency><groupId>org.springframewo…

深度学习驱动超材料设计领域发展

深度学习在超材料设计领域的应用是一个令人兴奋的研究方向。超材料&#xff08;Metamaterials&#xff09;是一类具有自然界中不存在的特殊性质的人工材料&#xff0c;它们通过精确设计微结构来获得独特的电磁、光学或声学特性。这些特性使得超材料在各个领域都有广泛的应用前景…

大模型产品经验漫谈

前文 昨天给领导汇报了最近做的一个 txt2sql 技术路线实现的智能助手的项目&#xff0c;总算是告一段落了&#xff0c;做了半年的时间&#xff0c;作为整个项目的技术负责人从头到尾主导项目&#xff0c;肯定是有不少收获和感悟的&#xff0c;趁现在还在脑袋里面热乎着&#x…

GPS/LBS/Wi-Fi定位,全安排!—合宙Air201资产定位模组LuatOS快速入门04

经历了hello world、点灯、远程控制三期基础教程&#xff0c;小伙伴们是不是收获满满&#xff0c;期待更高阶的应用呢&#xff1f; 本期&#xff0c;我们将学习合宙Air201的核心功能之一——定位功能&#xff01; Air201定位示例教程 合宙Air201资产定位模组——是一个集成超…

SAP B1 Web Client MS Teams App集成连载一:先决条件/Prerequisites

一、先决条件/Prerequisites 在设置 SAP Business One 应用之前&#xff0c;确保您已具备以下各项&#xff1a;Before you set up the SAP Business One app, make sure you have acquired the following: 1.Microsoft Teams 管理员账户/A Microsoft Teams admin account 您需…

电力电子器件:二极管,晶闸管,GTO,GTR,MOSFET,IGBT

目录 1. 二极管 2. 晶闸管&#xff08;SCR&#xff09; 3. 门极关断晶闸管&#xff08;GTO&#xff09; 4. 门极可关断晶体管&#xff08;GTR&#xff09; 5. 金属氧化物半导体场效应晶体管&#xff08;MOSFET&#xff09; 6. 绝缘栅双极型晶体管&#xff08;IGBT&#x…

HarmonyOS开发实战( Beta5.0)使用ArkUI的FrameNode扩展实现动态布局类框架详解

鸿蒙HarmonyOS开发往期必看&#xff1a; 最新版&#xff01;“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线&#xff01;&#xff08;从零基础入门到精通&#xff09; HarmonyOS NEXT应用开发性能实践总结 简介 在特定的节假日或活动节点&#xff0c;应用通常需要推送相…

【Unity新闻】Unity的产品命名变化

快速回顾一下Unity产品命名的调整。 在2023年 Unity就宣布版本命名的变化&#xff0c;将使用Unity 6作为最新版本的命名。 具体的规则&#xff0c;在论坛里进行了说明。 以后正式的LTS版本就是Unity 6&#xff0c;将在2024年末发布。 而不管是之前的Runtime费还是今天的费用…

短视频剪辑从简单到复杂,这四款很OK!

作为一个刚刚踏入视频剪辑世界的新手&#xff0c;我最近可是忙得不亦乐乎。我尝试了四款流行的视频剪辑软件&#xff0c;今天&#xff0c;就让我来和大家分享一下我的使用感受&#xff0c;看看哪款软件更适合我们这些初学者。这里先说一句&#xff0c;选择视频剪辑软件就像挑衣…

Python Module 模块详解:模块导入与项目管理的最佳实践

Python Module 模块详解&#xff1a;模块导入与项目管理的最佳实践 文章目录 Python Module 模块详解&#xff1a;模块导入与项目管理的最佳实践一 准备示例代码二 引用 module三 大型项目的模块管理四 完整文件示例五 源码地址 本文详细介绍了 Python 中模块&#xff08;Modul…

yolo自动化项目实例解析(二)ui页面整理

我们在上一章整理main.py 的if __name__ __main__: 内容还留下面这一段&#xff0c; app QApplication(sys.argv) # 初始化Qt应用ratio screen_width / 2560 # 分辨率比例# 设置全局字体大小# 计算字体大小base_font_size 13# 基准字体大小&#xff0c;适合1920*1080分辨…

不要在这些场景中使用LLM或生成式AI

虽然但是&#xff0c;LLM并不是AI的全部&#xff0c;并不是所有的AI应用场景都适合生成式AI。 在某些用例中&#xff0c;应避免或极其谨慎地使用LLM和GenAI&#xff0c;二者可能并非最佳解决方案。 1. 高风险决策 LLM和生成式AI不适合做出可能对现实世界产生重大影响的高风险…

别人做谷歌seo为什么流量比你多?

如果你确认你的网站技术层面没有问题&#xff0c;那其实无非就是两方面&#xff0c;关键词没选好和用户体验不够好&#xff0c;不要妄想一步登天&#xff0c;选那些看起来搜索量很大的热门关键词&#xff0c;这种属于大家都在做&#xff0c;竞争是非常激烈的&#xff0c;在你的…

华宇TAS应用中间件斩获2024鲲鹏应用创新大赛北京赛区总决赛二等奖!

近日&#xff0c;以“数智未来 因你而来”为主题的创客北京2024鲲鹏应用创新大赛华鲲振宇北京赛区总决赛在北京鲲鹏联合创新中心圆满举办&#xff0c;华宇TAS应用中间件凭借产品竞争力、产品兼容性、技术领先性等优势脱颖而出&#xff0c;斩获鲲鹏原生开发赛道&#xff08;泛政…

AI为云游戏带来的革新及解决方案:深度技术剖析与未来展望

近期&#xff0c;科技巨头埃隆马斯克与热门国产游戏《黑神话&#xff1a;悟空》的互动&#xff0c;再次引发了公众对AI技术在游戏产业中应用的关注。马斯克&#xff0c;作为特斯拉和SpaceX的掌门人&#xff0c;不仅在科技领域引领风骚&#xff0c;其个人兴趣也广泛涉猎&#xf…

关于使用Mybatis-Plus 自动填充功能失效问题

关于使用Mybatis-Plus 自动填充功能失效问题 关于使用Mybatis-Plus 自动填充功能失效 首先遇到的第一个问题 自动填充失败 或被填充为NULL 原因&#xff1a;字段类型 与 填充类型 不一致导致 解决方法&#xff1a;将类型替换成一致的类型 全部为Date 或 LocalDateTime 即可解…

828华为云征文 | 使用华为云X实例部署图数据库Virtuoso并存储6500万条大数据的完整过程与性能测评

前言 在大数据时代&#xff0c;图数据库以其强大的关系处理能力在复杂网络、社交媒体分析、知识图谱等领域得到了广泛应用。而在云计算的蓬勃发展下&#xff0c;使用云服务器进行图数据库的部署与管理变得更加方便高效。本篇文章将详细介绍如何在华为云X实例上部署开源图数据…

CANFD和CAN最主要的区别

随着汽车电子的高速发展&#xff0c;车内信息的急剧增多&#xff0c;传统的CAN总线的数据传输能力已经很难满足车辆ECU的数据传输需求了&#xff0c;此时CANFD就应运而生了。 CANFD和CAN最主要的区别就是CANFD的ID段和数据段能够以不同的速率传输数据&#xff0c;这就保证了即…

【大模型专栏—进阶篇】语言模型创新大总结——“后起之秀”

大模型专栏介绍 &#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本文为大模型专栏子篇&#xff0c;大模型专栏将持续更新&#xff0c;主要讲解大模型从入门到实战打怪升级。如有兴趣&#xff0c;欢迎您的阅读。 &#x1f4…