Python学习教程(二)字符串

前言

  上一篇我们学习了怎样安装python的开发环境以及基本数据类型,这一篇我们聊聊字符串,字符串在任何语言中都广泛使用,也都会单独开一篇讲解,由于本人才开始接触python,关于字符串,目前学到都是一些基础知识,如果后续学习中再有涉及到字符串相关知识,我会持续更新,废话不多说,开始今天的学习。

1.定义字符串

定义字符串有三种方法,单引号,双引号,三个双引号,直接上代码,会比较直观。

  • 单引号

    s1 = 'hello python'

  • 双引号

    s2 = "hello python"

  • 三个双引号
    适合带有换行,缩进等文章的原样输出时,使用三个双引号来定义

    s3 = """

    hello
    python

    """

这里三个单引号也可以定义字符串,官方推荐使用三个双引号

复制代码
s4 = '''
====================
hello python
====================
'''

拓展

上边讲解了常用的定义字符串方法,我们来拓展下其他方法

a) 双引号字符串中定义双引号怎么办,python为我们提供了转义符:\,直接上代码

复制代码
s5 = "hello \"python"

b) 单引号字符串中定义双引号的字符串,直接写双引号就可以

复制代码
s6 = 'hello "python'

同样,单引号的字符串中使用转义符定义单引号以及双引号字符串中直接写单引号

复制代码
s5 = 'hello \'python'
s6 = "hello 'python"

c) 定义字符串的一行代码中,可以同时写两个字符串,解析器解析时,会自动为我们合并成一个字符串,这个知识了解一下,很少用到

复制代码
s7 = "hello""python"

两个字符串之间也可以用空格隔开

复制代码
s7 = "hello" "python"

和java对比

java中常使用单引号定义单个字符,双引号定义字符串,

定义带有换行的字符串时,手动加换行符

这里区别就比较明显

2 .常用方法

2.1 字符串拼接

拼接两个字符串,使用加号:+

复制代码
s8 = "hello"
s9 = "python"
s10 = s8 + "," +s9

注意点

字符串拼接时,只能字符串和字符串拼接,字符串和int类型变量拼接时就会报错,看下边代码

复制代码
num1 = 10
s11 = "hello python"
s12 = s11 + num1

编译时没有问题,代码执行会报以下错误

复制代码
    s12 = s11 + num1
          ~~~~^~~~~~
TypeError: can only concatenate str (not "int") to str

怎样解决这个问题呢,对了,需要类型转换,我们下一节2.2会讲到。

和java对比

java中string可以拼接任何类型

2.2 字符串类型转换

2.1讲到,字符串只能和字符串拼接,如果想拼接int类型变量时,只能将int类型转化成字符串,再进行拼接,使用到str()这个方法,上代码

复制代码
num1 = 10
s11 = "hello python"
s12 = s11 + str(num1)

这样代码可以正常执行了

和java对比

java中就有很多转字符串的方法,String.valueOf(),int型变量+""等,还有很多工具类,这时我就体会到java的强大之处,在我心里java还是世界上最好的语言,不接受反驳,哈哈

2.3 格式化字符串

就会提到占位符(%s),使用百分号(%)连接要替换占位符的参数,直接上代码会比较直观

复制代码
print("hello %s" % "python")

输出结果

复制代码
hello python

有多个占位符时,替换的参数用逗号隔开,并且用括号括起来

复制代码
print("hello %s %s" % ("py","thon"))

输出结果

复制代码
hello py thon

还有一种方法是在字符串的双括号前写一个f,需要替换的变量使用大括号括起来

f"内容{变量}"

代码

复制代码
name = "python"
print(f"hello {name}")

输出结果

复制代码
hello python

和java对比

和java中的MessageFormat类,以及java8以后的String.format方法一样

  字符串的基本用法先写到这里,如果对你有帮助,点赞加关注,下篇见。

相关推荐
兵慌码乱8 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵10 小时前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
FreakStudio14 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
用户03321266636715 小时前
使用 Python 从零创建 Word 文档
python
Csvn19 小时前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽20 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
用户556918817531 天前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录
python·自动化运维
兵慌码乱2 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
luckdewei2 天前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python