【python入门之基本数据类型的学习】---基本数据类型(列表、字符串)【二】
1.【python入门之相关语言了解】---开发语言与其他2.【python入门之pycharm篇】--如何安装pycharm以及如何安装python解释器3.【python工具指南】pycharm相关快捷键---windows+mac合集4.【python入门之pip换源问题】---pip换源的方式5.【python小记】---PE8规范简述6.【python入门之虚拟环境与系统环境】---虚拟环境的创建方式及使用7.【python入门之常量与变量】---常量与变量小记8.【python入门之基本数据类型的学习】---基本数据之数字类型
9.【python入门之基本数据类型的学习】---基本数据类型(列表、字符串)【二】
10.【python入门之基本数据类型】---基本数据类型(字典、布尔)【三】11.【python入门之基本数据类型】---基本数据类型(元组、集合)【四】12.【python入门之程序与用户交互】---程序与用户交互13.【python入门之基本运算符】---基本运算符14.【python入门之流程控制语句】---流程控制语句15.【python入门之垃圾回收机制】---python 垃圾回收机制16.【python入门之文件操作】---文件操作17.【python入门之文字符编码】---字符编码18.【python基础之可变和不可变数据类型】---python之栈的介绍19.【python基础之可变和不可变数据类型】--- python之堆的介绍20.【python基础之可变和不可变数据类型】--- python堆栈的相关应用21.【python基础之数据类型的内置方法】--- 数据类型的内置方法22.【python入门之深浅拷贝】---python 深浅拷贝23.【python入门之异常处理】---python 异常处理24.【python基础之函数】--- 函数入门25.【python基础之命名空间与作用域】---命名空间与作用域26.【python基础之函数对象和闭包】 --- 函数对象与闭包27.【python基础之装饰器】---装饰器28.【python基础之迭代器】 --- 迭代器29.【python基础之三元表达式】--- 三元表达式30.【python基础之列表生成式】---列表生成式31.【python基础之生成器】---生成器32.【python基础之模块介绍】---模块33.【python基础之包介绍】---包34.【python扩展之软件开发目录规范】---软件开发目录规范35.【python常用模块之OS模块简介】---OS模块36.【python常用模块之random模块简介】---random模块37.【python常用模块之time时间模块】---时间模块(time/datetime)38.【python常用模块之subprocess模块】---subprocess模块39.【python常用模块之sys模块】---系统模块(sys)40.【Python常用模块之logging模块】---日志输出功能(示例代码)41.【python--- ATM+SHOPPING】42.【python基础之面向对象介绍】--- 面向对象43.【python基础之面向对象的绑定方法与非绑定方法】--面向对象的绑定方法与非绑定方法44.【python网络编程相关】 ----操作系统相关了解45.【python之DRF学习】DRF入门了解46.【python之DRF学习】三大方法之认证47.【python之接口工具】利用docker-compose搭建Yapi48.【python之DRF学习】drf全局异常49.【python之DRF学习】 drf之接口文档介绍及使用50.【python之DRF学习】drf之jwt使用【三】字符串类型(str)
【1】作用
- 字符串类型(str)用于表示文本信息,是一种非常重要的数据类型,用于处理文字、字符等信息
【2】定义
(1)定义方式
- 字符串可以使用单引号、双引号或三引号进行定义
# 定义方式1:
name_1 = 'Jack' # (当左边有赋值符号和遍历名的时候,它就是字符串)
# 定义方式2:
name_2 = "Jack" # (当左边有赋值符号和遍历名的时候,它就是字符串)
# 定义方式3:
name_3 = '''Jack''' # (当左边有赋值符号和遍历名的时候,它就是字符串)
# 定义方式4:
name_4 = """Jack""" # (当左边有赋值符号和遍历名的时候,它就是字符串)
- 用引号引起来的部分就是对应变量的值(字符串类型),并且对于变量名的值
- 用单引号、双引号、多引号,都可以定义字符串
- 本质上是没有区别的(这些引号定义字符串的方式是等价的)
(2)引号嵌套的配对问题
# 正确示范一:双引号内部,可以使用单引号,并且可以使用多个单引号
msg_1 = "My name is Jack , I'm 18 years old!,hope your life : 'wonderful!'"
# 正确示范二:单引号内部,可以使用双引号,但是只支持双引号,不支持单个的单引号
msg_2 = 'My name is Jack , I am 18 years old!,hope your life : "wonderful!"'
# 错误示范: 单引号内部,嵌套了单引号,会导致语法错误 ---- End of statement expected
msg_3 = 'My name is Jack , I'm 18 years old!,hope your life : "wonderful!"'
- 引号的嵌套需要注意,外层是单引号时,内层应使用双引号,反之亦然。
- 如果需要在字符串中包含引号,可以灵活运用不同类型的引号
(3)多行字符串
- 通过三引号(单引号或双引号)可以定义多行字符串,方便表示包含换行的文本内容
# 三引号内部支持多行文本
msg_1 = '''
从前,森林里的动物们为了争夺水源而争吵不休。
一只智慧的老猫咪提议:只要大家一起合作挖井,每个人都能得到足够的水。
动物们明白了团结的力量,共同努力,终于挖出了一口深井。
从此,他们学会了合作,森林里的和谐与幸福也随之而来。
'''
msg_2 = """
从前,森林里的动物们为了争夺水源而争吵不休。
一只智慧的老猫咪提议:只要大家一起合作挖井,每个人都能得到足够的水。
动物们明白了团结的力量,共同努力,终于挖出了一口深井。
从此,他们学会了合作,森林里的和谐与幸福也随之而来。
"""
【3】使用
数字可以进行加减乘除等运算
字符串只能进行"相加"和"相乘"运算。
(1)相加
- 字符串可以通过加号
+
进行拼接 - 相加其实就是简单的字符串拼接
greeting = "Hello"
name = "Jack"
message = greeting + ", " + name + "!"
print(message) #输出: Hello, Jack!
(2)相乘
- 字符串可以通过乘号
*
进行重复 - 相乘就相当于将字符串相加了5次
divider = "-" * 20
print(divider) # --------------------
(3)索引取值
- 字符串属于序列类型,所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。
msg = 'Hello World'
print(len(msg)) # 11
# 取索引为 0 的位置的元素
print(msg[0]) # H
# 取索引位置为 10 的元素 (上面打印的长度为11,但是我们是从 0 开始计数的,所以是 11-1=10)
print(msg[10]) # d
- Python 还支持索引值是负数,此类索引是从右向左计数,换句话说,从最后一个元素开始计数,从索引值 -1 开始,如图 所示。
msg = 'Hello World'
print(len(msg)) # 11
# 取索引为 -1 的位置的元素
print(msg[-1]) # d
# 取索引位置为 -11 的元素 (上面打印的长度为11,但是我们是从 -1 开始计数的,所以是 -11)
print(msg[-11]) # H
(4)格式化输出
- 之前讲到过 print() 函数的用法,这只是最简单最初级的形式,print() 还有很多高级的玩法,比如格式化输出。
[1] % 输出
- 使用
%
运算符进行格式化输出,可以在字符串中插入占位符,然后通过%
运算符传入相应的值。
# 格式化输出语法一 : %
name = "Jack"
age = 18
height = 175.5
# 使用 %s 占位符,输出字符串
print("My name is %s." % name)
# My name is Jack.
# 使用 %d 占位符,输出整数
print("My age is %d." % age)
# My age is 18.
# 使用 %f 占位符,输出浮点数,默认保留六位小数
print("My height is %f." % height)
# My height is 175.500000.
# 使用 %.2f 占位符,保留两位小数
print("My height is %.2f." % height)
# My height is 170.50.
# 使用 %x 占位符,输出十六进制整数
number = 255
print("Number in hex: %x." % number)
# Number in hex: ff.
# 两个以上的占位符格式化输出
print("My name is %s; My age is %d" % (name, age))
# My name is Jack; My age is 18
- 在上例中,
%s
和%d
是占位符,分别表示字符串和整数,而(name, age)
是传入这两个占位符的实际值。 - 占位符类型
%s
:字符串%d
:整数%f
:浮点数%x
:十六进制整数
[2] formate 输出
- 使用
format
方法进行格式化输出,通过花括号{}
表示占位符,然后调用format
方法传入实际值
name = "Jack"
age = 18
# 格式化输出语法三 : formate
print("My name is {}; My age is {}".format(name, age))
# My name is Jack; My age is 18
#format格式化输出语法的另一种方式
print("My name is {0}; My age is {1}".format(name, age))
- 在这个例子中,
{}
是占位符,它会按顺序依次填充传入format
方法的值,也可以将后面的值按照顺序(0123。。。的顺序)将其填入正确的位置
[3] f + {} 输出
- 使用 f-string(f +
{}
)进行格式化输出,通过在字符串前加上f
或F
前缀,然后在字符串中使用{}
表示占位符,并在{}
中直接引用变量。
name = "Jack"
age = 18
# 格式化输出语法二 : f + {}
print(f"My name is {name}; My age is {age}")
# My name is Jack; My age is 18
(5)字符串的转义
- 在字符串中,转义字符用于表示一些特殊字符或执行一些特殊操作,常用的转义字符如下:
转义字符 | 说明 |
---|---|
\n | 换行符,将光标位置移到下一行开头。 |
\r | 回车符,将光标位置移到本行开头。 |
\t | 水平制表符,也即 Tab 键,一般相当于四个空格。 |
\a | 蜂鸣器响铃。注意不是喇叭发声,现在的计算机很多都不带蜂鸣器了,所以响铃不一定有效。 |
\b | 退格(Backspace),将光标位置移到前一列。 |
\ | 反斜线 |
' | 单引号 |
" | 双引号 |
\ | 在字符串行尾的续行符,即一行未完,转到下一行继续写。 |
# 换行符
print("Hello\nWorld")
# Hello
# World
# 制表符
print("Name\tAge")
# Name Age
# 反斜线
print("This is a backslash: \\")
# This is a backslash: \
# 单引号
print("I'm a programmer.")
# I'm a programmer.
# 双引号
print("He said, \"Hello.\"")
# He said, "Hello."
# 回车符与退格符
print("One\rTwo\bThree")
# Two Three
【四】列表类型(list)
【1】作用
- 用来存取多个相同属性的值,并且方便存取
- 如果我们需要用一个变量记录多个学生的姓名,用数字类型是无法实现,字符串类型则可以记录下来
【2】定义
# 字符串类型
stu_names=’张三 李四 王五’
# 列表类型
names_list = ['张三', '李四', '王五']
- 存的目的是为了取,此时若想取出第二个学生的姓名实现起来相当麻烦
- 而列表类型就是专门用来记录多个同种属性的值(比如同一个班级多个学生的姓名、同一个人的多个爱好等),并且存取都十分方便
【3】使用
(1)索引取值
- 列表类型是用索引来对应值,索引代表的是数据的位置,从0开始计数
# 列表类型
names_list = ['张三', '李四', '王五']
# 索引取值
first_student = names_list[0]
print(first_student) # 输出结果:张三
second_student = names_list[1]
print(second_student) # 输出结果:李四
(2)列表嵌套及嵌套取值
- 列表可以嵌套在其他列表中,形成二维或多维数组,通过嵌套的方式可以方便地处理复杂的数据结构。
# 列表嵌套
class1 = ['张三', '李四', '王五']
class2 = ['Tom', 'Jerry', 'Spike']
classes = [class1, class2]
# 嵌套取值
student_1_class_1 = classes[0][0]
print(student_1_class_1) # 输出结果:张三
student_2_class_2 = classes[1][1]
print(student_2_class_2) # 输出结果:Jerry
本文来自博客园,作者:Unfool,转载请注明原文链接:https://www.cnblogs.com/queryH/p/17862791.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!