18、Python字符串全解析:Unicode支持、三种创建方式与长度计算实战

news2025/5/29 9:54:19

适合人群:零基础自学者 | 编程小白快速入门
阅读时长:约6分钟

文章目录

  • 一、问题:Python的字符串是什么?
    • 1、例子1:多语言支持演示
    • 2、例子2:字符串不可变性验证
    • 3、答案:
      • (1)字符串的本质
      • (2)Python3支持Unicode编码
      • (3)⚠ 新手注意
      • (4)老手建议
  • 二、问题:Python的创建字符串?
    • 1、例子1:简易名片制作(单双引号)
    • 2、例子2:诗歌格式排版(三引号实战)
    • 3、答案:
      • (1)引号创建字符串
  • 三、问题:Python的空字符串和len()函数?
    • 1、例子1:商品简介长度检查
    • 2、答案:
      • (1)空字符和len()函数
  • 四、动手试一试
    • 任务1:多行诗歌排版
    • 任务2:商品描述长度验证

一、问题:Python的字符串是什么?

1、例子1:多语言支持演示

# 定义多语言问候语  
chinese = "你好!"  
english = "Hello!"  
japanese = "こんにちは!"  

print(chinese + english + japanese)  
# 输出:你好!Hello!こんにちは!  

# 合法变量名示例
用户名 = "张三"  
年龄 = 25  
住所 = "東京都渋谷区"  

print(f"{用户名}今年{年龄}岁,住在{住所}")  
# 输出:张三今年25岁,住在東京都渋谷区

2、例子2:字符串不可变性验证

origin_str = "Hello"
new_str = origin_str.replace("H", "h")
print(origin_str)  # 输出:Hello → 原字符串未改变
print(new_str)     # 输出:hello → 创建新字符串

3、答案:

(1)字符串的本质

在这里插入图片描述

  1. 字符串的本质是:字符序列。羊肉串是羊肉的串,字符串是字符的串,字符串有顺序的排列。
  2. Python不支持单字符类型,单字符也是作为一个字符串使用的。

(2)Python3支持Unicode编码

  1. Python3直接支持Unicode编码,可以表示世界上任何书面语言的字符。Python3默认使用Unicode编码(UTF-8),理论上支持超过100万个字符,ASCII码是Unicode编码的子集。
  2. Python标识符命名遵循Unicode标准,允许使用中文、英文、日文等多语言字符。

(3)⚠ 新手注意

  1. Python的字符串是不可变的,我们无法直接修改原字符串。但可以通过创建新字符串的方式实现"看似修改"的效果。

(4)老手建议

  1. 很多人初学编程时,总是担心自己数学不行,潜意识里认为数学好才能编程。实际上,大多数程序员打交道最多的是“字符串”而不是“数学”。因为,编程是用来解决现实问题的,因此逻辑思维的重要性远远超过数学能力。

二、问题:Python的创建字符串?

1、例子1:简易名片制作(单双引号)

# 单引号创建含双引号的字符串  
name_card1 = '昵称:"Python小助手"'  
# 双引号创建含单引号的字符串  
name_card2 = "口号:'让编程更简单'"  

print(name_card1)  # 输出:昵称:"Python小助手"  
print(name_card2)  # 输出:口号:'让编程更简单'  

2、例子2:诗歌格式排版(三引号实战)

# 三引号保留换行和缩进格式  
poem = '''  
《静夜思》  
床前明月光,疑是地上霜。  
举头望明月,低头思故乡。  
'''  
print(poem)  

# 输出效果:
"""
《静夜思》  
床前明月光,疑是地上霜。  
举头望明月,低头思故乡。  
"""

3、答案:

(1)引号创建字符串

  1. 通过单引号或双引号创建字符串,例如:a='abc'b="qsf",使用两种引号的好处是,可以创建本身就包含引号的字符串,而不用使用转义字符。
  2. 连续三个单引号或三个双引号,可以创建多行字符串。在长字符串中会保留原始的格式。

三、问题:Python的空字符串和len()函数?

1、例子1:商品简介长度检查

empty_desc = ""  
simple_desc = "新鲜直达"  
detail_desc = "有机种植|24小时冷链运输|无农药残留"  # 共19个字符(含符号)

print("空描述长度:", len(empty_desc))    # 输出:0  
print("简介长度:", len(simple_desc))     # 输出:4  
print("详细描述长度:", len(detail_desc)) # 输出:19  

2、答案:

(1)空字符和len()函数

  1. Python允许空字符的存在,不包含任何字符且长度为0。
  2. len() 用于计算字符串含有多少个字符。

四、动手试一试

任务1:多行诗歌排版

# 补全代码:用三引号创建《静夜思》完整格式  
poem = ______  
print(poem)  
# 目标输出:  
# 《静夜思》  
# 床前明月光,疑是地上霜。  
# 举头望明月,低头思故乡。

参考答案:

poem = '''  
《静夜思》  
床前明月光,疑是地上霜。  
举头望明月,低头思故乡。  
'''  

关键点

  1. 三引号保留换行和缩进格式
  2. 直接输入诗句无需转义符号

任务2:商品描述长度验证

product = "新款无线蓝牙耳机(旗舰版)"  

# 补全代码计算描述字符数  
desc_len = ______  
print(f"描述长度:{desc_len}字符")  # 应输出:12  

参考答案:

desc_len = len(product)  

解析

  1. len() 函数统计所有Unicode字符(中文每个字符计1)
  2. 标点符号和括号也计入长度

📢 互动区
👉 遇到问题?在评论区:

  1. 描述问题(带代码截图更好)
  2. 分享学习心得
  3. 给文章提建议

支持作者:点赞 | 收藏 | 关注
你的三连是我更新的最大动力!


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

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

相关文章

5月27日复盘-Transformer介绍

5月27日复盘 二、层归一化 层归一化,Layer Normalization。 Layer Normalizatioh和Batch Normalization都是用来规范化中间特征分布,稳定和加速神经网络训练的,但它们在处理方式、应用场景和结构上有本质区别。 1. 核心区别 特征BatchNo…

MyBatis-Plus一站式增强组件MyBatis-Plus-kit(更新2.0版本):零Controller也能生成API?

MyBatis-Plus-Kit 🚀 MyBatis-Plus-Kit 是基于MyBatis-Plus的增强组件,专注于提升开发效率,支持零侵入、即插即用的能力扩展。它聚焦于 免写 Controller、代码一键生成、通用响应封装 等核心场景,让您只需专注业务建模&#xff0…

实时数仓flick+clickhouse启动命令

1、启动zookeeper zk.sh start 2、启动DFS,Hadoop集群 start-dfs.sh 3、启动yarn start-yarn.sh 4、启动kafka 启动Kafka集群 bin/kafka-server-start.sh -daemon config/server.properties 查看Kafka topic 列表 bin/kafka-topics.sh --bootstrap-server local…

【Git】Commit Hash vs Change-Id

文章目录 1、Commit 号2、Change-Id 号3、区别与联系4、实际场景示例5、为什么需要两者?6、总结附录——Gerrit 在 Git 和代码审查工具(如 Gerrit)中,Commit 号(Commit Hash) 和 Change-Id 号 是两个不同的…

【KWDB创作者计划】_KWDB分布式多模数据库智能交通应用——高并发时序处理与多模数据融合实践

导读:本文主要探讨了基于KWDB的分布式多模数据库智能交通应用场景,进行了高并发时序处理与多模数据融合实践方向的思考。探索智慧交通领域的数据实时处理与存储资源利用方面的建设思路。 本文目录 一、智能交通数据架构革命   1.1 传统架构瓶颈  …

Java集合框架与三层架构实战指南:从基础到企业级应用

一、集合框架深度解析 1. List集合的武林争霸 ArrayList: 数组结构:内存连续,查询效率O(1) 扩容机制:默认扩容1.5倍(源码示例) private void grow(int minCapacity) {int oldCapacity elementData.len…

6个月Python学习计划 Day 2 - 条件判断、用户输入、格式化输出

6个月Python学习计划:从入门到AI实战(前端开发者进阶指南) Python 基础入门 & 开发环境搭建 🎯 今日目标 学会使用 input() 获取用户输入掌握 if/else/elif 条件判断语法熟悉格式化输出方式:f-string、format() …

目标检测 TaskAlignedAssigner 原理

文章目录 TaskAlignedAssigner 原理和代码使用示例 TaskAlignedAssigner 原理和代码 原理主要是结合预测的分类分数和边界框与真实标注的信息,找出与真实目标最匹配的锚点,为这些锚点分配对应的目标标签、边界框和分数。 TaskAlignedAssigner 是目标检…

游戏:元梦之星游戏开发代码(谢苏)

《元梦之星》是一款轻松社交派对游戏,玩家们可以化身星宝,体验纯粹的游玩乐趣,收获简单的快乐。无论i人e人,都能轻松找到属于自己的社交方式。 《元梦之星》的快乐,可以是闯关夺冠时的激动,谁是狼人推理的巧妙,峡谷3V3打赢团战的爽感。也可以是星梦广场开…

TCP协议原理与Java编程实战:从连接建立到断开的完整解析

1.TCP协议核心:面向连接的可靠通信基石 TCP(Transmission Control Protocol,传输控制协议)是互联网的“可靠信使”,属于传输层协议,其核心在于面向连接和可靠传输。它通过严谨的握手机制与数据控制逻辑&am…

鸿蒙仓颉开发语言实战教程:实现商城应用详情页

昨天有朋友提到鸿蒙既然有了ArkTs开发语言,为什么还需要仓颉开发语言。其实这个不难理解,安卓有Java和Kotlin,iOS先后推出了Objective-C和Swift,鸿蒙有两种开发语言也就不奇怪了。而且仓颉是比ArkTs更加灵活的语言,虽然…

GitAny - 無需登入的 GitHub 最新倉庫檢索工具

地址:https://github.com/MartinxMax/gitany GitAny - 無需登入的 GitHub 專案搜尋工具 GitAny 是一款基於 Python 的工具,允許你在無需登入的情況下搜尋當天最新的 GitHub 專案。它支援模糊搜尋、條件篩選以及倉庫資料的視覺化分析。 安裝依賴 $ pip…

在飞牛nas系统上部署gitlab

在飞牛nas系统上部署gitlab需要使用docker进行部署,如下将介绍详细的部署流程。 文章目录 1. docker镜像2. 拉取镜像3. 运行容器4. 运行和访问gitlab5. 一些小配置5.1 url问题5.2 ssh端口5.3 其他配置 1. docker镜像 首先需要找一个gitlab的docker镜像地址&#x…

深入理解 Redis 哨兵模式

Redis 哨兵模式深度解析:从原理到实践的全流程指南 在分布式系统架构中,Redis 作为高性能的内存数据库,其哨兵模式(Sentinel)是保障服务高可用性的核心方案。本文将从基础概念、运行机制出发,结合具体配置…

[特殊字符]《Qt实战:基于QCustomPlot的装药燃面动态曲线绘制(附右键菜单/样式美化/完整源码)》

1、将qcustomplot.cpp qcustomplot.h放入工程目录下引入qcustomplot 2、代码 .h #if defined(_MSC_VER) #pragma execution_character_set(

力扣-最大连续一的个数

1.题目描述 2.题目链接 1004. 最大连续1的个数 III - 力扣&#xff08;LeetCode&#xff09; 3.代码解答 class Solution {public int longestOnes(int[] nums, int k) {int zero0,length0;for(int left0,right0;right<nums.length;right){if(nums[right]0){zero;}while…

无人机避障——深蓝学院浙大栅格地图以及ESDF地图内容

Occupancy Grid Map & Euclidean Signed Distance Field: 【注意】&#xff1a;目的是为了将有噪声的传感器收集起来&#xff0c;用于实时的建图。 Occupancy Grid Map&#xff1a; 概率栅格&#xff1a; 【注意】&#xff1a;由于传感器带有噪声&#xff0c;在实际中基于…

Postman基础操作

1.Postman是什么&#xff1f; Postman是接口测试的工具&#xff0c;简单来说它能模拟浏览器对服务器的某个接口发起请求并接收响应数据。 1.1 Postman工作原理 2.Postman发送请求 2.1 发送GET请求 我们知道GET请求是没用请求体的&#xff0c;所以我们需要将请求参数写在Param…

【MPC控制 - 从ACC到自动驾驶】3 MPC控制器设计原理与参数配置:打造ACC的“最强大脑”

【MPC控制 - 从ACC到自动驾驶】MPC控制器设计原理与参数配置&#xff1a;打造ACC的“最强大脑” 在Day 1&#xff0c;我们认识了ACC自适应巡航和MPC这位“深谋远虑的棋手”。Day 2&#xff0c;我们一起给汽车“画像”&#xff0c;建立了它的纵向动力学模型&#xff0c;并把它翻…

Unity3D仿星露谷物语开发52之菜单页面

1、目标 创建菜单页面&#xff0c;可通过Esc键开启或关闭。 当把鼠标悬停在上面时它会高亮&#xff0c;然后当点击按钮时标签页会被选择。 2、 创建PauseMenuCanvas &#xff08;1&#xff09;创建Canvas 在Hierarchy -> PersistentScene -> UI下创建新的Cavans命名为…