【编号0006】Python中的字符串拼接方式

不管是爬虫,还是数据分析,还是Web开发,字符串是最基础的基础结构。

本篇文章重点讲解对象,字符串——使用频率最高的数据结构之一【或许没有之一也说不定】

首先来讲一下字符串的格式化方式。

方法1. 使用 + 号

这种是最简单的字符串拼接方式了,如下:

str_a = 'hello'+ 'world'

最简单的加法,就是将两个字符串,通过一个加号 + ,将他们组合起来,然后赋值给另一个参数。

如果是多个字符串需要拼接,直接使用 字符串+字符串+字符串+...,就不多说了

方法2. %s 替换

这个也是非常常见的,使用%s进行替换,如下

str_b = "Nice to %s"
names = ['elisha','wendy','davis','gloria']
for name in names:
    print(str_b%name)
#结果输出
#Nice to elisha
#Nice to wendy
#Nice to davis
#Nice to gloria

这是单个的%s替换字符,如果是多个呢?

str_b = "Hi, %s. I'm %s"
names = [['elisha','wendy'],['davis','gloria']]
for name in names:
    print(str_b%(name[0],name[1]))
#结果输出
#Hi, elisha. I'm wendy
#Hi, davis. I'm gloria

效果图:
在这里插入图片描述

这里的%s替换方式,不仅仅只有%s,还有其他的一些特定格式,如下表格:

转换说明符,都以%开始输出格式
d,i十进制
u无符号数
o八进制
x十六进制或长整数
X十六进制
f,e,E浮点数
g,G指数小于-4时使用
s字符串或者任意对象,同str生成的字符串
r同repr生成的字符串

在%符号和转换说明符中间,还可以加如下的修饰符:

  1. - 左对齐标志【默认是右对齐】
  2. + 号表示显示数字的正负号
  3. 0 表示用0来填充空位
  4. 如果是将字典的值格式化成字符串,则%符号和转换说明符中间可以写(键)
  5. 一个小数点,用于按精度来分割内容的显示宽度
  6. 一个数字,指定要打印字符串中最大字符个数,小数点之后的位数;或者整数的最小位数

代码示意:

# 对应第4条内容
dict_a = {'name':'小布','age':18}
print("我的名字是%(name)s,我今年%(age)d岁,且永远%(age)d岁"%dict_a)

# 对应第1 2 3 5 6条内容
float_a = 12.58734
print("%f"%float_a)    #12.587340;正常打印
print("%3f"%float_a)   #12.587340;最小宽度为3,但是长度已经超过了3,所以正常打印
print("%10f"%float_a)  # 12.587340;最小宽度为10,宽度不足10,默认为右对齐,向左补充空格直至宽度为10
print("%.3f"%float_a)  #12.587;小数点后的数字为精度,小数点后保留3位
print("%.10f"%float_a) #12.5873400000;小数点后位数不足10,补0至位数为10


方法3. format替换

format函数也非常的强大,简单分类就是字符串格式化和数字格式化

1. 字符串格式化
print("{} {}".format("spbeen", "xiaobu"))    # 按顺序
# 结果:'spbeen xiaobu'
 
print("{0} {1}".format("spbeen", "xiaobu"))  # 按位置
# 结果:'spbeen xiaobu'
 
print("{1} {0} {1}".format("spbeen", "xiaobu")) # 按位置
# 结果:'xiaobu spbeen xiaobu'

上面就是非常简单的字符串格式化的方式,可以选择默认顺序,或者是指定format函数括号内的第几个参数

2. 数字的格式化

数字的格式化,因为考虑到排版、对其、缩进等问题,所以这个知识点,比较的多,下面依旧使用表格展示:

数字格式输出描述
3.1415926{:.2f}3.14保留小数点后两位
3.1415926{:+.2f}+3.14带符号保留小数点后两位
-1{:+.2f}-1.00带符号保留小数点后两位
2.71828{:.0f}3不带小数
5{:0>2d}05数字补零 (填充左边, 宽度为2)
5{:x<4d}5xxx数字补x (填充右边, 宽度为4)
10{:x<4d}10xx数字补x (填充右边, 宽度为4)
1000000{:,}1,000,000以逗号分隔的数字格式
0.25{:.2%}25.00%百分比格式
1000000000{:.2e}1.00e+09指数记法
13{:>10d}13右对齐 (默认, 宽度为10)
13{:<10d}13左对齐 (宽度为10)
13{:^10d}13中间对齐 (宽度为10)

表格的补充说明:

  • ^, <, > 分别是居中、左对齐、右对齐,后面带宽度
  • : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
  • + 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格
  • b、d、o、x 分别是二进制、十进制、八进制、十六进制。

方法4. f-string 语法

这个知识点,是Python3.6的新特性,所以要注意,3.6之前的版本,请勿测试,因为不支持

链接:Python3.6官方文档

先上一个截图:

在这里插入图片描述

相对于%s和format来讲,这是一个更简单、更方便的写法。

因为即使是%s和format,如果拼接的内容很多,则他们两个在括号内,都要写比较长的一串内容。

但是在这里呢,就非常方便了,只要是在字符串声明时,在引号前写一个字母f,则字符串内的{}就可以直接写该行代码前,出现过的变量名,非常的方便。甚至是函数名,都可以直接使用

上两个脚本代码段:

int_a = 98
int_b = 776
print(f"a+b的结果是{int_a+int_b}")
# 结果是 874
def accum_to(num1, num2):
    total = 0
    for i in range(num1, num2+1):
        total += i
    return total

num1 = 34
num2 = 867
print(f"从{num1}开始,一直累加到{num2},总和是{accum_to(num1,num2)}")
# 输出:从34开始,一直累加到867,总和是375717

效果图:

在这里插入图片描述


以上就是本篇文章的全部介绍内容了


!放在最后

如果文章中有什么错误或者建议修改的地方,欢迎留言纠正和回复

如果你喜欢本篇文章,不妨关注一下我们的公众号,每周更新两篇原创技术文档,都是干货

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以使用Python的os和shutil模块来实现对文件夹的文件进行重新编号。 首先,使用os模块的listdir函数获取文件夹的所有文件名,并将它们保存在一个列表。 然后,使用enumerate函数遍历这个文件列表,得到每个文件的索引和文件名。 接下来,构造一个新的文件名,可以使用字符串的格式化操作来实现,在文件名插入编号。 最后,使用shutil模块的move函数将原文件改名为新的文件名。 下面是一个简单的示例代码: ```python import os import shutil def rename_files(folder_path): # 获取文件夹的所有文件名 file_list = os.listdir(folder_path) for i, file_name in enumerate(file_list): # 构造新的文件名 new_file_name = "file_{}.txt".format(i) # 使用shutil模块的move函数将文件改名 shutil.move(os.path.join(folder_path, file_name), os.path.join(folder_path, new_file_name)) print("文件重新编号完成!") # 调用函数对文件夹的文件进行重新编号 rename_files("文件夹路径") ``` 请将上述代码的"文件夹路径"替换为你实际的文件夹路径,并执行代码,即可实现对文件夹的文件进行重新编号。 ### 回答2: 在Python,我们可以使用`os`模块实现对文件夹的文件进行重新编号。 首先,我们需要使用`os.listdir()`函数获取文件夹的所有文件名,并保存在一个列表。 然后,我们可以使用`enumerate()`函数遍历该列表,并使用`os.rename()`函数对每个文件进行重新编号。 具体步骤如下: ```python import os # 获取文件夹路径 folder_path = '文件夹路径' # 获取文件夹的所有文件名 file_names = os.listdir(folder_path) # 遍历文件名列表 for i, file_name in enumerate(file_names): # 构造新文件名 new_file_name = f'{i+1}.txt' # 新文件名的格式可以根据需要进行修改 # 构造文件的完整路径 file_path = os.path.join(folder_path, file_name) new_file_path = os.path.join(folder_path, new_file_name) # 对文件进行重新编号 os.rename(file_path, new_file_path) print('文件夹的文件已重新编号') ``` 上述代码,`folder_path`是待处理文件夹的路径,`file_names`保存了文件夹的所有文件名。然后,使用`enumerate()`遍历`file_names`列表,并使用`os.rename()`函数将每个文件重命名为新文件名。 注意,上述代码使用了f-string格式化字符串,其`i+1`表示文件的新编号。你可以根据需求修改新文件名的格式。 最后,代码打印出一条消息,表示文件夹的文件已重新编号。 希望以上回答能够帮到你! ### 回答3: 对文件夹的文件进行重新编号,可以使用Python的os模块和shutil模块来实现。 首先,使用os模块的listdir函数获取文件夹的所有文件名。然后,使用enumerate函数对文件列表进行遍历,并对每个文件进行重新编号。可以使用zfill函数来确保重新编号的文件名在数字前面补零,以保持文件名的长度一致。 接下来,使用os模块的rename函数对原始文件进行重命名。将原始文件名与重新编号后的文件名进行拼接并传递给rename函数即可。 最后,文件的路径可能发生了变化,可以使用shutil模块的move函数将重命名后的文件移动到正确的路径。 下面是一个示例代码: ``` import os import shutil # 定义文件夹路径和重新编号的起始数字 folder_path = '文件夹路径' start_num = 1 # 获取文件夹所有文件名 file_names = os.listdir(folder_path) for i, file_name in enumerate(file_names): # 文件名的重新编号 new_file_name = f'{start_num + i:03d}_{file_name}' # 保持文件名长度为3位,不足的地方用0补齐 # 重命名文件 os.rename(os.path.join(folder_path, file_name), os.path.join(folder_path, new_file_name)) # 移动文件到正确路径(如果需要) shutil.move(os.path.join(folder_path, new_file_name), '正确的文件夹路径') ``` 以上代码会将文件夹的每个文件重新编号,并将重命名后的文件移动到正确的路径。根据实际情况,你可以根据需要修改文件夹路径、重新编号的起始数字以及正确的文件夹路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布啦豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值