Python学习:字符串

Python 字符串概念

在Python中,字符串是一种不可变的数据类型,用于表示文本数据。字符串可以包含字母、数字、符号以及空格等字符,通常用引号(单引号或双引号)括起来表示。

var1 = 'Hello World!'
var2 = "www.csdn.net"

Python 访问字符串中的值

在Python中,可以通过索引和切片来访问字符串中的值。下面详细解释一下:
在这里插入图片描述

  1. 使用索引

    • 在Python中,字符串中的每个字符都有一个索引,从0开始到字符串长度减1。
    • 通过在方括号内指定索引值,可以获取字符串中特定位置的字符。
    • 索引值可以是负数,从-1开始表示倒数第一个字符。
    my_string = "Hello, World!"
    print(my_string[0])      # 输出: H (第一个字符)
    print(my_string[7])      # 输出: W (第八个字符)
    print(my_string[-1])     # 输出: ! (倒数第一个字符)
    
  2. 使用切片

    • 切片允许您访问字符串中的子字符串部分,而不仅仅是单个字符。
    • 使用[start:end]语法,其中start是起始索引,end是结束索引(不包括该索引对应的字符)。
    • 如果省略start,则默认从字符串开头开始;如果省略end,则默认到字符串末尾。
    my_string = "Hello, World!"
    print(my_string[7:12])    # 输出: World (获取索引为7到索引为11的子字符串)
    print(my_string[:5])     # 输出: Hello (从开头到索引4的子字符串)
    print(my_string[7:])     # 输出: World! (从索引7到结束的子字符串)
    
  3. 字符串长度

    • 使用len()函数可以获得字符串的长度,即字符串中字符的数量。
    my_string = "Hello, World!"
    print(len(my_string))    # 输出: 13 (字符串有13个字符)
    

Python 字符串更新

在 Python 中,字符串是不可变的数据类型,这意味着一旦创建了字符串对象,就不能直接修改其中的字符。但是,您可以通过创建一个新的字符串来实现字符串的更新。下面详细解释如何更新字符串:

  1. 使用切片替换字符

    • 通过切片操作,您可以创建一个新的字符串,并在其中替换特定位置的字符。
    my_string = "Hello, World!"
    new_string = my_string[:5] + "Python" + my_string[12:]
    print(new_string)   # 输出: HelloPython!
    
  2. 使用字符串拼接

    • 您可以使用加号(+)运算符将多个字符串连接在一起,从而创建一个新的字符串。
    str1 = "Hello"
    str2 = "World"
    new_string = str1 + ", " + str2 + "!"
    print(new_string)   # 输出: Hello, World!
    
  3. 使用字符串格式化

    • 使用字符串的format()方法或者 f-string(在 Python 3.6 之后引入)可以方便地组合字符串。
    name = "Alice"
    age = 30
    message = "My name is {} and I am {} years old.".format(name, age)
    print(message)      # 输出: My name is Alice and I am 30 years old.
    
    # 使用 f-string
    message = f"My name is {name} and I am {age} years old."
    print(message)      # 输出: My name is Alice and I am 30 years old.
    
  4. 使用字符串方法

    • 还可以使用字符串方法来更新字符串,例如replace()方法用于替换子字符串。
    my_string = "Hello, World!"
    new_string = my_string.replace("Hello", "Hi")
    print(new_string)   # 输出: Hi, World!
    

Python 转义字符

在Python中,转义字符用于表示一些特殊字符,这些特殊字符无法直接使用。常见的转义字符包括:

  1. 反斜杠(\):用于转义字符本身。

    print("This is a backslash: \\")
    # 输出: This is a backslash: \
    
  2. 换行符(\n):用于在字符串中插入换行。

    print("Hello\nWorld")
    # 输出:
    # Hello
    # World
    
  3. 制表符(\t):用于在字符串中插入制表符(tab)。

    print("Name\tAge")
    print("Alice\t25")
    print("Bob\t30")
    # 输出:
    # Name  Age
    # Alice 25
    # Bob   30
    
  4. 回车符(\r):用于将光标移到行首。

    print("Hello\rWorld")
    # 输出: World
    
  5. 退格符(\b):用于删除光标前的字符。

    print("Hello\bWorld")
    # 输出: HellWorld
    
  6. 单引号(')和双引号("):用于在字符串中插入引号。

    print('He said, "Hello"')
    print("She's happy")
    # 输出:
    # He said, "Hello"
    # She's happy
    

以上是Python中常用的转义字符。使用转义字符可以在字符串中插入特殊字符或者避免字符被解释为其它含义。

Python 字符串运算符

在 Python 中,字符串是不可变的序列类型,提供了一些特定的运算符和操作,用于对字符串进行操作和组合。下面是一些常见的字符串运算符:

  1. + 运算符(字符串连接)

    • 使用加号(+)可以将两个字符串连接成一个新字符串。
    str1 = "Hello"
    str2 = " World"
    result = str1 + str2
    print(result)   # 输出: Hello World
    
  2. * 运算符(重复字符串)

    • 使用乘号(*)可以将一个字符串重复多次。
    str1 = "Hello"
    result = str1 * 3
    print(result)   # 输出: HelloHelloHello
    
  3. 比较运算符

    • 字符串之间可以使用以下比较运算符进行比较:==, !=, <, >, <=, >=
    • 比较运算符返回布尔值(True或False),用于判断字符串的相等性、大小和排序顺序。
    str1 = "Hello"
    str2 = "World"
    print(str1 == str2)   # 输出: False
    print(str1 < str2)    # 输出: True
    
  4. in 运算符(成员测试)

    • 使用 in 运算符可以检查一个字符串是否是另一个字符串的子字符串。
    • 如果子字符串存在于原始字符串中,则返回 True;否则返回 False。
    str1 = "Hello, World!"
    print("World" in str1)   # 输出: True
    print("Python" in str1)  # 输出: False
    

上述是一些常用的字符串运算符和操作。通过运用这些运算符,可以对字符串进行组合、重复、比较和检查子字符串等操作。如

Python 字符串格式化

在这里插入图片描述

Python 提供多种方式进行字符串格式化,主要有以下几种:

  1. 使用 % 运算符

    • 旧式的字符串格式化方法,类似于 C 语言中 printf 的使用方式。
    name = 'John'
    age = 25
    print('My name is %s and I am %d years old.' % (name, age))
    
  2. 使用 str.format() 方法

    • 这是一个改进的字符串格式化方法,提供更多的灵活性。
    name = 'Jane'
    age = 28
    print('My name is {} and I am {} years old.'.format(name, age))
    # 定义位置
    print('My name is {0} and I am {1} years old. I really like being called {0}.'.format(name, age))
    # 关键字参数
    print('My name is {name} and I am {age} years old.'.format(name='Alice', age=30))
    
  3. 使用 Formatted String Literals (f-strings)

    • 从 Python 3.6 开始支持的一种新的字符串格式化方法,也称为“f-字符串”。简洁且易于阅读。
    name = 'Dave'
    age = 32
    print(f'My name is {name} and I am {age} years old.')
    

在使用这些方法时,可以指定格式化的数据类型、精度,甚至根据条件进行复杂的表达式嵌入。f-字符串是当前推荐的格式化方法,考虑到它们的简洁性和执行效率。

以上三种都是针对单引号或双引号包裹下的字符串的格式化方法。

Python 三引号

三引号'''""")通常用于多行字符串或在字符串内部包含单双引号的情况。

例如:

multi_line_string = '''This is a multi-line string.
It spans multiple lines.
'''
print(multi_line_string)

quote_string = """Here's a string that contains both "double" and 'single' quotes."""
print(quote_string)

三引号字符串亦可用于格式化,但它们不会改变格式化语法或行为。

Python Unicode 字符串

在 Python 中,Unicode 字符串是一种可以表示多种语言和字符集的字符串类型。在 Python 3 中,默认的字符串类型就是 Unicode 字符串。这意味着可以直接在字符串中使用各种 Unicode 字符,而无需额外的转换或编码。

下面是一些使用 Unicode 字符串的示例:

  1. 直接在字符串中使用 Unicode 字符:

    # 使用 Unicode 字符
    unicode_str = '你好,世界!'
    print(unicode_str)  # 输出:你好,世界!
    
    # 使用 Unicode 转义序列
    unicode_escape = '\u4f60\u597d\uff0c\u4e16\u754c\uff01'
    print(unicode_escape)  # 输出:你好,世界!
    
  2. 处理不同语言的 Unicode 字符:

    arabic_str = 'مرحبا بك في العالم'
    japanese_str = 'こんにちは、世界!'
    russian_str = 'Привет, мир!'
    
    print(arabic_str)    # 输出:مرحبا بك في العالم
    print(japanese_str)  # 输出:こんにちは、世界!
    print(russian_str)   # 输出:Привет, мир!
    

Unicode 字符串的优势是可以轻松地处理不同语言和字符集,支持全球化的应用开发。在需要处理其他非 ASCII 字符的情况下,Unicode 字符串非常有用。

Python 的字符串内建函数

在这里插入图片描述

Python中的字符串是不可变的数据类型,同时提供了许多内置函数来对字符串进行操作。以下是一些常用的字符串内建函数:

  1. capitalize() - 将字符串的第一个字符转换为大写。
s = "hello, world!"
print(s.capitalize())  # 输出:Hello, world!
  1. lower() - 将字符串中所有大写字母转换为小写。
s = "HELLO, WORLD!"
print(s.lower())  # 输出:hello, world!
  1. upper() - 将字符串中所有小写字母转换为大写。
s = "hello, world!"
print(s.upper())  # 输出:HELLO, WORLD!
  1. title() - 将字符串中每个单词的首字母大写。
s = "hello, world!"
print(s.title())  # 输出:Hello, World!
  1. len() - 返回字符串的长度。
s = "hello, world!"
print(len(s))  # 输出:13
  1. strip() - 去除字符串两端的空格或指定字符(默认为空格)。
s = "  hello, world!   "
print(s.strip())  # 输出:"hello, world!"
  1. replace() - 替换字符串中的指定子字符串。
s = "hello, world!"
new_s = s.replace("world", "Python")
print(new_s)  # 输出:"hello, Python!"
  1. split() - 分割字符串并返回子字符串组成的列表。
s = "apple,banana,orange"
fruits = s.split(",")
print(fruits)  # 输出:['apple', 'banana', 'orange']
  1. join() - 将序列中的元素以指定的字符串连接生成一个新字符串。
fruits = ['apple', 'banana', 'orange']
s = ",".join(fruits)
print(s)  # 输出:"apple,banana,orange"

关注我,不迷路,共学习,同进步

关注我,不迷路,共学习,同进步

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

运维篇SHELL脚本实战案例

统计出每个IP的访问量有多少&#xff1f; 检查是否提供了日志文件的路径作为参数。使用awk从日志文件的每行中提取第一个字段&#xff08;假设这是IP地址&#xff09;。使用sort对提取的IP地址进行排序。使用uniq -c统计每个唯一IP地址的出现次数。最后&#xff0c;使用sort -…

Java的类与对象

前言 Java是一门纯面向对象的语言(Object Oriented Program&#xff0c;简称OOP)&#xff0c;在面向对象的世界里&#xff0c;一切皆为对象。面向对象是解决问题的一种思想&#xff0c;主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序&#xff0c;更符合人们…

2024年【熔化焊接与热切割】模拟考试题库及熔化焊接与热切割实操考试视频

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 熔化焊接与热切割模拟考试题库参考答案及熔化焊接与热切割考试试题解析是安全生产模拟考试一点通题库老师及熔化焊接与热切割操作证已考过的学员汇总&#xff0c;相对有效帮助熔化焊接与热切割实操考试视频学员顺利通…

YOLOv9有效改进|CVPR2023即插即用的到残差注意力机制(轻量化注意力机制)Inverted Residual Mobile Block

专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;助力高效涨点&#xff01;&#xff01;&#xff01; 一、改进点介绍 在YOLOv9中加入CVPR2023即插即用的到残差注意力机制。 二、模块详解 2.1 模块简介 Inverted Residual Mobile Block结合了倒置残差块…

MySQL高级学习笔记

1、MySQL架构组成 1.1 高级MySQL介绍 什么是DBA&#xff1f; 数据库管理员&#xff0c;英文是Database Administrator&#xff0c;简称DBA&#xff1b; 百度百科介绍 数据库管理员&#xff08;简称DBA&#xff09;&#xff0c;是从事管理和维护数据库管理系统&#xff08;D…

使用PLCSIM Advanced仿真博途运动控制

作者顾工首先&#xff0c;添加一个CPU&#xff0c;直接添加一个1518T&#xff0c;反正仿真&#xff0c;不用最好的干嘛呢。是吧。当然&#xff0c;你也可以添加一个你喜欢的PLC&#xff0c;这里不强求。 然后添加工艺对象&#xff0c;我们简单添加一个定位轴。 在工艺对象&am…

php laravel 二维码

public function qr($url,$name2,$inpath){require_once(dirname(__FILE__) . /../../../Library/phpqrcode/phpqrcode.php);$errorCorrectionLevel L;//容错级别$matrixPointSize 10;//生成图片大小$QRcode new \QRcode() ;$QRcode->png($url, $inpath.$name2, $errorCor…

参数化学习

因为parameters的参数不能和数据驱动类使用&#xff0c;会出现报错&#xff0c;可以使用before test/等参数

NCV6323BMTAATBG同步降压转换器芯片中文资料规格书PDF数据手册参数引脚图图片

产品概述&#xff1a; NCV6323 是一款同步降压转换器&#xff0c;用于使用一个锂电池或三个碱性/镍镉/镍氢电池供电的便携式应用的各种子系统。此类器件能够基于外部可调电压提供高达 2 A 的电流。使用 3 MHz 开关频率的运行允许采用小尺寸电感器和电容器。采用输入电源电压前…

Premiere模板|200个视频标题文字动画pr字幕模板包

Premiere模板&#xff0c;13个类别200个Pr视频标题字幕文字动画模板mogrt包。 几乎适用于任何场景。粗体标题&#xff0c;标注&#xff0c;未来主义和线条标题&#xff0c;下三分之一&#xff0c;霓虹灯&#xff0c;带数字的标题&#xff0c;倒计时&#xff0c;表格&#xff0c…

Spring Cloud Alibaba微服务从入门到进阶(七)(服务容错-Sentinel)

雪崩效应 我们把基础服务故障&#xff0c;导致上层服务故障&#xff0c;并且这个故障不断放大的过程&#xff0c;成为雪崩效应。 雪崩效应&#xff0c;往往是因为服务没有做好容错造成的。 微服务常见容错方案 仓壁模式 比如让controller有自己独立的线程池&#xff0c;线程池满…

海外舆情监控的重要性以及云手机的推荐

海外市场不仅有着无尽的商机&#xff0c;同时也存在着各种各样的挑战。例如&#xff0c;海外市场舆情的复杂变化给企业带来了潜在风险&#xff0c;尤其在新媒体技术快速发展的时代&#xff0c;舆论对企业品牌形象的影响日益巨大。本文将详细探讨海外舆情监控的重要性以及为大家…

jmeter接口测试教程及接口测试流程详解

一、Jmeter简介 Jmeter是由Apache公司开发的一个纯Java的开源项目&#xff0c;即可以用于做接口测试也可以用于做性能测试。 Jmeter具备高移植性&#xff0c;可以实现跨平台运行。 Jmeter可以实现分布式负载。 Jmeter采用多线程&#xff0c;允许通过多个线程并发取样或通过…

24.两数相加

给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数都不会以 0 …

Java程序设计 3 选择

布尔数据类型和逻辑运算符 boolean类型的值为true和false&#xff0c;其字面值也只有true和false&#xff08;也就是不能等同视为0和非零&#xff0c;这一点和C/C有所不同&#xff09;&#xff0c;且不能和其他数据类型混合运算&#xff08;包括类型转换&#xff09;。 Java里面…

【leetcode】67.二进制求和

前言&#xff1a;剑指offer刷题系列 问题&#xff1a; 给你两个二进制字符串 a 和 b &#xff0c;以二进制字符串的形式返回它们的和。 示例&#xff1a; 输入&#xff1a;a "1010", b "1011" 输出&#xff1a;"10101"思路1&#xff1a; …

【面试题】HashMap为什么可以插入null而Hashtable就不可以(源码分析)

首先hashmap可以插入null值&#xff0c;但是hashtable和hashcurrentHashmap是不支持的&#xff1b;这是因为在 hashmap对插入key为null进行了特殊处理&#xff0c;当插入的值为null的时候会将哈希值设置为0 但是hashtable会直接抛出异常&#xff1a; 并且hashmap是线程不…

微信小程序选择器picker的使用(省市区)

index.wxml picker中的 moderegion模式&#xff0c;这里同element中的select不同的是&#xff0c;不需要自己在绑定数据原&#xff0c;默认就包含了省市区的整体数据 <view class"section"><view class"section__title">省市区选择器</vie…

13、Deconstructing Denoising Diffusion Models for Self-Supervised Learning

简介 研究了最初用于图像生成的去噪扩散模型(DDM)的表示学习能力 解构DDM&#xff0c;逐步将其转变为经典的去噪自动编码器(DAE) 探索现代ddm的各个组成部分如何影响自监督表征学习 结论&#xff1a; 只有很少的现代组件对于学习良好的表示是至关重要的&#xff0c;而其他许多…

2022年第13届蓝桥杯Java省赛B组-星期计算

一、题目 星期计算 【问题描述】 已知今天是星期六&#xff0c;请问 天后是星期几&#xff1f;注意用数字 1 到 7 表示星期一到星期日。 【答案提交】 这是一道结果填空的题&#xff0c;你只需要算出结果后提交即可。本题的结果为一个整数&#xff0c;在提交答案时只填写这个…