Python学习笔记——字符串

目录

(一)字符串定义

 (二)字符换的拼接

(三)字符串的格式化

3.1. 占位符格式化

3.2. 快速格式化

 3.3. 表达式格式化

(四)数据输入

(五)字符串的切片

(六)感谢


(一)字符串定义

1. 字符串可以通过双引号和单引号进行定义

name_1 = "1" # 井号用于注释
name_2 = '1' # 单双引号定义字符串
name_3 = "'1'" # 单双引号内也可以有引号
name_4 = '\'' # 三个单引号是全局注释,前面加入转义字符 \,可以将其解释为字符串
print(name_1)
print(name_2)
print(name_3)
print(name_4)

 1.1. 运行结果

1
1
'1'
'

 (二)字符换的拼接

2. 字符串可以使用 '+' 进行拼接

# 使用 + 进行字符串的拼接
name_1 = "我是"
name_2 = "张三"
print(name_1 + name_2)

num = 12
print(name_1, num) # 数字类型数据不能用 + 拼接,这里用逗号隔开是print()可以用逗号隔开多个数据并打印
print(name_1 + str(num)) # 但是可以用str()强制转换为字符串类型

2.1. 运行结果

我是张三
我是 12
我是12

(三)字符串的格式化

3.1. 占位符格式化

字符串和数字可以通过格式化占位符插入其他字符串中,多个数据的插入在%后的括号中按照顺序添加数据即可, 主要注意在字符串后要添加%

num_1 = 21
num_2 = 16783
num_3 = 178.6
print("我是张三,年龄%d岁, 月薪%d, 身高%f"%(num_1, num_2, num_3))
# 在字符串中插入%s %d %f,分别表示字符串,整数,浮点数的格式化插入

num_4 = 12.2324
num_5 = 17.1206
num_6 = 20.1252
print("这个正方体长%5.2f, 宽%.3f, 高%10.4f"%(num_4,num_5,num_6))
# 在格式化符号中插入m.n来限制数字的长度和小数点的位数
# m是数字长度,小数点本身也算作一个长度
# n用于限制小数点位数,同时默认进行四舍五入

3.1.1. 运行结果

字符串本身长度小于限制长度,系统在打印时会在字符串前自动添加空格占位来满足长度要求,例如num_6, 同时注意若长度限制小于数字的整数部分,则限制不会生效

未进行限制的num_3(浮点数)则在其后面添加了多个0

同时在进行小数的位数的限制时默认会进行四舍五入的操作,例如num_5

我是张三,年龄21岁, 月薪16783, 身高178.600000
这个正方体长12.23, 宽17.121, 高   20.1252

3.2. 快速格式化

另一种格式化方法更加快速,利用 f " {} "对字符串进行快速格式化,但是不会考虑数字插入的精度,会直接原原本本的插入

num_1 = 21
num_2 = 16783
num_3 = 178.6
print(f"我是张三,年龄{num_1}岁, 月薪{num_2}, 身高{num_3}")
# 字符串前加 f 表示要进行格式化
# 大括号中添加格式化数据

3.2.1. 运行结果

我是张三,年龄21岁, 月薪16783, 身高178.6

 3.3. 表达式格式化

括号和大括号中可以直接加入表达式进行计算

num_1 = 21
num_2 = 16
print("num_1 + num_2 = %d "%(num_1 + num_2))
print(f"num_1 + num2 = {num_1 + num_2}")

3.3.1. 运行结果

num_1 + num_2 = 37 
num_1 + num2 = 37

(四)数据输入

4. Python利用input()可以直接进行输入,默认输入的是字符串类型

但是可以使用eval()将字符串转换为数字

num_1 = eval(input("输入一个数字:"))
num_2 = input("请输入一个数字:")
print(type(num_1) , f": {num_1}")
print(type(num_2) , f": {num_2}")

注意这里type是一个type类型,不是一个字符串类型,因此不能直接与后面的字符串相加拼接

4.1. 运行结果

输入一个数字:12132
请输入一个数字:12332
<class 'int'> : 12132
<class 'str'> : 12332

(五)字符串的切片

Python中对字符串可以进行非常方便的分割切片,进行切片操作时会产生新的字符串,而不会对原本的字符串产生影响

1. 单冒号切片

        语法:Str[ 下标 : 下标]


# 字符串正向索引:0 1 2 3 4 5 ...... n-1
# 字符串反向索引:-(n-1) ...... -5 -4 -3 -2 -1
Str = "I love you"
# 切片时的切片范围是左闭右开的:[下标:下标)

# 取单个字符:0
print(Str[0:1])

# 取某一范围的字符串:2 3 4 5
print(Str[2:6])

# 反向索引: -8 -7 -6 -5
print(Str[-8:-4])

# 空下标索引:0 1 2 3 4 5 / 7 8 9
# 当有一边的下标索引为空时,将默认从字符串的边界开始
print(Str[:6])
print(Str[7:])

# 当两边的下标都为空时,表示取整个字符串
print(Str[:])

"""
运行结果
I
love
love
I love
you
I love you
"""

2. 双冒号切片

单个冒号划定了切片的范围,双冒号的引入让我们得以使用步长的方式进行切片


# 字符串正向索引:0 1 2 3 4 5 ...... n-1
# 字符串反向索引:-(n-1) ...... -5 -4 -3 -2 -1
Str = "I love you"
# 切片时的切片范围是左闭右开的:[下标:下标)

# 步长为2进行切片:0 2 4 6 8
print(Str[::2])

# 步长为3的切片:0 3 6 9
print(Str[0::3])

"""
运行结果
Ilv o
Io u
"""

通过切片操作可以很简单方便的进行字符串的处理...

3. 其他数据容器的切片处理

除了字符串以外的列表,元组也可以进行切片处理,且其他数据容器进行切片时同样也会返回新的对应类型的对象,而不会对原对象产生影响

但是集合和字典则不能够进行切片,首先集合具有无序性,不能够进行下标索引,因此也不能够进行切片;然后,字典作为键值对的集合,只能通过键进行索引查找,也不能通过下标索引,因此也不能够切片


List = [1, "3", 100, 90, False]
Tuple1 = (1, 4, 9, 8)

print(List)
print(Tuple1)
print(List[0:2])
print(Tuple1[0:2])
print(List)
print(Tuple1)

"""
运行结果
[1, '3', 100, 90, False]
(1, 4, 9, 8)
[1, '3']
(1, 4)
[1, '3', 100, 90, False]
(1, 4, 9, 8)
"""

有关数据容器的内容可以参考我的另一篇文章:

Python学习笔记——函数与数据容器-CSDN博客

(六)感谢

感谢大家的阅读,希望这些笔记能够帮到大家解决一些实际问题,如果内容有什么错误可以在评论中指出,会及时做出更改,以后有新内容也会进行更新,感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值