Day08:字符串

1. 什么是字符串

字符串(String) 是由一系列字符组成的文本数据。在Python中,字符串用引号括起来,既可以是单引号',也可以是双引号"
字符串可以包含字母、数字、空格、符号等内容。

示例:定义字符串

# 使用单引号
single_quote_str = 'Hello'# 使用双引号
double_quote_str = "World"# 空字符串
empty_str = ''# 输出字符串
print(single_quote_str)  # 输出:Hello
print(double_quote_str)  # 输出:World
print(empty_str)         # 输出为空

2. 字符串的常用操作

2.1 字符串的拼接

使用加号(+)可以拼接多个字符串。

str1 = "Hello"
str2 = "World"
result = str1 + " " + str2
print(result)  # 输出:Hello World

2.2 重复字符串

使用乘号(*)可以重复字符串。

repeat_str = "Python "
print(repeat_str * 3)  # 输出:Python Python Python 

2.3 获取字符串的长度

使用len()函数可以获取字符串的长度。

str_example = "Python"
print(len(str_example))  # 输出:6

2.4 访问字符串中的字符

通过索引访问字符串中的单个字符,索引从0开始。

str_example = "Python"
print(str_example[0])  # 输出:P
print(str_example[5])  # 输出:n

注意:如果索引超出范围会报错。

2.5 字符串切片

通过切片操作获取字符串的子字符串。

str_example = "Python Programming"
print(str_example[0:6])   # 输出:Python
print(str_example[7:18])  # 输出:Programming
print(str_example[:6])    # 输出:Python
print(str_example[7:])    # 输出:Programming

3. 字符串的常用方法

Python内置了许多字符串方法,可以对字符串进行各种操作。

3.1 改变大小写

  • upper():将字符串转换为大写。
  • lower():将字符串转换为小写。
  • capitalize():将字符串的首字母大写。

示例

text = "hello, Python!"
print(text.upper())      # 输出:HELLO, PYTHON!
print(text.lower())      # 输出:hello, python!
print(text.capitalize()) # 输出:Hello, python!

3.2 去除空格

  • strip():去除字符串两端的空格。
  • lstrip():去除字符串左侧的空格。
  • rstrip():去除字符串右侧的空格。

示例

text = "   Hello, Python!   "
print(text.strip())   # 输出:Hello, Python!
print(text.lstrip())  # 输出:Hello, Python!   
print(text.rstrip())  # 输出:   Hello, Python!

3.3 查找和替换

  • find():查找子字符串在字符串中的位置,返回索引,如果不存在则返回-1
  • replace():替换字符串中的某些内容。

示例

text = "I love Python!"
print(text.find("Python"))    # 输出:7
print(text.replace("Python", "Programming"))  # 输出:I love Programming!

3.4 分割与连接

  • split():将字符串按照指定分隔符分割成列表。
  • join():将列表中的字符串用指定分隔符连接成一个字符串。

示例

text = "Python is fun"
# 分割
words = text.split(" ")
print(words)  # 输出:['Python', 'is', 'fun']# 连接
sentence = "-".join(words)
print(sentence)  # 输出:Python-is-fun

4. 字符串格式化

字符串格式化用于动态生成包含变量内容的字符串。

4.1 使用%进行格式化

name = "Alice"
age = 25
print("My name is %s, and I am %d years old." % (name, age))

4.2 使用format()进行格式化

name = "Alice"
age = 25
print("My name is {}, and I am {} years old.".format(name, age))

4.3 使用f字符串(推荐)

name = "Alice"
age = 25
print(f"My name is {name}, and I am {age} years old.")

5. 字符串的编码与解码

字符串在存储和传输时是以编码形式表示的,如UTF-8。

  • encode():将字符串编码为字节。
  • decode():将字节解码为字符串。

示例

text = "你好"
encoded_text = text.encode("utf-8")
print(encoded_text)  # 输出:b'\xe4\xbd\xa0\xe5\xa5\xbd'decoded_text = encoded_text.decode("utf-8")
print(decoded_text)  # 输出:你好

6. 字符串的应用

示例1:用户登录验证

username = input("请输入用户名:")
password = input("请输入密码:")if username == "admin" and password == "123456":print("登录成功!")
else:print("用户名或密码错误!")

示例2:统计字符出现的次数

text = "I love Python. Python is amazing!"
char = "Python"
count = text.count(char)
print(f"{char} 出现了 {count} 次。")

示例3:回文判断

text = input("请输入一个字符串:")
if text == text[::-1]:print("这是一个回文字符串。")
else:print("这不是一个回文字符串。")

7. 课后练习

  1. 输入一个字符串,统计其中每个字符出现的次数。
  2. 将一个句子中的所有单词反转,但保持单词的顺序不变。
  3. 检查一个字符串是否只包含字母和数字。
  4. 将一段文本中所有的标点符号去掉,仅保留字母和数字。

8. 本章小结

本章深入介绍了字符串的定义、操作、方法和实际应用。
通过学习本章,您可以:

  1. 定义和操作字符串。
  2. 使用字符串方法完成常见的文本处理任务。
  3. 应用字符串格式化和编码处理技术。

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

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

相关文章

Unity开发微信小游戏踩坑总结

前言 不记录真记不住,这个帖子以后不定时更新。 问题1:图片模糊 问题描述: 在Unity里什么事没有,进入到微信开发者工具里就已经模糊了,人物动画是一团马赛克,图片看着倒是没事。 问题原因:…

Vue异步处理、异步请求

Vue.js 是一个用于构建用户界面的渐进式JavaScript框架,它允许开发者以声明式的方式编写异步操作。在 Vue 中处理异步任务非常重要,因为很多现代Web应用都需要与后端API交互、执行耗时计算或管理复杂的异步流程。以下是对 Vue 中异步处理的详细讲解&…

【AI日记】24.12.30 kaggle 比赛 2-18

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 参加:kaggle 比赛 Regression with an Insurance Dataset时间:8 小时 读书 1 书名:教育的本质时间:0.5 小时评估:快速读完,收获不…

torchvision.utils.make_grid 解释下

torchvision.utils.make_grid 是 PyTorch 中 torchvision 库提供的一个实用函数,用于将多个图像拼接成一个网格,方便进行可视化。 主要功能 make_grid 将一批图片组织成一个网格形式,输出一个单一的张量,便于使用可视化工具(如 Matplotlib)查看图像。 参数解释 torchvi…

VUE echarts 教程二 折线堆叠图

VUE echarts 教程一 折线图 import * as echarts from echarts;var chartDom document.getElementById(main); var myChart echarts.init(chartDom); var option {title: {text: Stacked Line},tooltip: {trigger: axis},legend: {data: [Email, Union Ads, Video Ads, Dir…

微信小程序中遇到过的问题

记录微信小程序中遇到的问题(持续更新ing) 问题描述:1. WXML中无法直接调用JavaScript方法。2. css中无法直接引用背景图片。3. 关于右上角胶囊按钮。4. 数据绑定问题。5. 事件处理问题。6. 关于movable-view组件的问题7. 关于设置宽度后设置…

RabbitMQ实现生产者消费者

一.启动MQ 注意管理员身份进入cmd才行,我这里是在本地安装的MQ,推荐使用虚拟机安装 二.思路 官方解释RabbitMQ结构: 自我理解RabbitMQ结构: 其实RabbitMQ的服务器就像邮局一样,我们的生产者和消费者对于这个服务器来说都是消费者,因为服务器都可以向两者发送消息 环境准备 …

课设CLion连接Ubuntu14makeQt项目出错解决汇总

在这之前需要注意以下几点: 1、需要 确保CLion能连接Ubuntu14 2、cmakelist.txt文件配置 3、知道部署路径: 问题一:/usr/bin/ld: cannot open output file GreedySnake: Is a directory 否则就会出现make以后应该生成一个可执行文件&…

MySQL三大日志—— binlog、redoLog、undoLog 详解

前言: 日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息,能帮助我们进行很多容错及分析工作,其中有三大日志与我们这些开发者息息相关,本文将介绍binlog、redoLog、undoLog三种日志: 1.…

JavaWeb开发(一)IDEA工具下载、配置、项目创建、Tomcat配置

1. IDEA工具下载、配置、项目创建、Tomcat配置 1.1. IDEA官方地址下载 官方地址下载 1.1.1. 自动补全 Settings–>Editor–>General–>Code Completion 1.1.2. 自动导包 Settings–>Editor–>General–>Auto lmport 1.1.3. 配置JDK 1.2. 创建项目 1…

RK3568 bsp 9 - USB调试记录

文章目录 1、环境介绍2、RK3568 USB资源介绍3、配置目标4、dts配置4.1、USB3.0 OTG4.2、USB2.0 Host 2 和 USB2.0 Host 3 5、kernel配置5.1、USB PHY CONFIG5.2、USB Host CONFIG5.3、USB OTG CONFIG5.4、USB外设CONFIG5.4.1、Mass Storage Class CONFIG5.4.2、USB HID CONFIG …

Servlet会话跟踪

在Servlet中,会话跟踪是通过HttpSession对象来实现的,主要有以下几种方式: 通过HttpSession对象 获取HttpSession对象:可以通过HttpServletRequest对象的getSession()方法来获取HttpSession对象。如果当前请求没有关联的会话&am…

一文讲清楚webpack和vite原理

一、前言 每次用vite创建项目秒建好,用vue-cli创建了一个项目,却有点久,那为什么用 vite 比 webpack 要快呢,这篇文章带你梳理清楚它们的原理及不同之处!文章有一点长,看完绝对有收获! 二、web…

Vue3源码解读--方向篇

vue3文档地址、GitHub项目地址: https://cn.vuejs.org/v2/api/ https://github1s.com/vuejs/vue-next/tree/3.2 二、如何本地调试vue3源码 很多时候我们都是在本地调试vue3的源码,然后沿着调用链,一步一步的去梳理vue3的源码。 把vue3项目拉到…

工业大数据分析算法实战-day20

文章目录 day20设备对象维度建模方法维度专家规则驱动的方法:AI-FIT-PM过程模型少量样本驱动的方法数据驱动的方法 软件维度 day20 今天是第20天,昨日是对第九章节行业知识沉淀中知识工程、维度模型、模式要素模型进行讲解,尤其是维度模型中…

k8s的可观测性

文章目录 1. 健康状态监测(Health Check)1.1 健康检查的原理1.2 健康检查的配置示例1.3 健康状态监测工具 2. 资源使用监控(Resource Usage Monitoring)2.1 资源使用监控的原理2.2 资源使用监控的配置示例2.3 资源使用监控工具 3.…

InstructGPT:基于人类反馈训练语言模型遵从指令的能力

大家读完觉得有意义记得关注和点赞!!! 大模型进化树,可以看到 InstructGPT 所处的年代和位置。来自 大语言模型(LLM)综述与实用指南(Amazon,2023) 目录 摘要 1 引言 …

自定义VUE指定,实现鼠标悬停显示提示面板,离开元素或面板后面板消失

参考文档:https://www.bilibili.com/opus/500023412612186477 // 自定义"v-tooltip"指令,实现鼠标悬浮显示文本 Vue.directive(tooltip, {bind(element, binding) {const tooltipText binding.value;const tooltip document.createElement(div);toolti…

如何进行年度工作回顾?

发生了什么事? 什么事情进展顺利 ? 什么事情进展不顺利? 如何适应未来? 年度回顾的定义:这是一种战略工具,能帮助人们清晰看到过去一年对业务、职业或个人生活的影响,可用于明确关键事件、找出问…

Centos 7 二进制安装时序数据库TDengine_我和国产时序数据库的第一次亲密接触

一、前言 之前在搞监控时,曾学习和测试过InfluxDB数据库,第一次接触时序数据库,也深深感受到了时序数据库的块,最近在墨天轮上看到对国产库时序数据库(Time Series Database)的介绍,特别是看了涛…