在python的for语句下,i为什么会一直是1呢?
from docx import Document

import re

document = Document(r"E:\学无止境\python\实验用文件夹\工作票模板.docx")
paragraphs=document.paragraphs
for i in range(0,5):
    print(str(i))
    text = re.sub('black','okokok{}'.format(i), paragraphs[0].text)
    print (text)
    paragraphs[0].text=text
    document.save(r'E:\学无止境\python\实验用文件夹\工作票模板{}.docx'.format(str(i)))

#以上一段程序中,text = re.sub('black', 'okokok{}'.format(i), paragraphs[0].text)中的i一直不变,这是为什么呢?



输出结果是:

0
okokok01
1
okokok01
2
okokok01
3
okokok01
4
okokok01
图片说明

4个回答

老哥,第十一行paragraphs[0].text=text,paragraphs[0].text在for循环里是全局变量,你这么写,下一次就还是上一次的值了

python是有空格就会导致不在循环里面吧,你这个复制出来也没格式,看不出问题

weixin_39808420
世纪怪咖 老哥当我没说
30 天之前 回复
weixin_39808420
世纪怪咖 上句说错了,没仔细看,我运行的不是这个输出结果0 okokok02 1 okokok12 2 okokok22 3 okokok32 4 okokok42是这样的,也就是输出结果随着i在动的
30 天之前 回复
weixin_39808420
世纪怪咖 回复pyx3120: paragraphs[0].text 哈哈哈哈,这个值是固定的,前面只是个格式化的,所以一直都是这个值
30 天之前 回复
pyx3120
pyx3120 paragraphs[0]的内容是五个字母加一个数字:black1
大约一个月之前 回复
pyx3120
pyx3120 我重新上传了,还请您帮忙再看一下
大约一个月之前 回复
pyx3120
pyx3120 但我保存的命令就没问题,存了工作票模板0~4
大约一个月之前 回复

你这样没缩进没办法看噻

pyx3120
pyx3120 paragraphs[0]的内容是五个字母加一个数字:black1
大约一个月之前 回复
pyx3120
pyx3120 我重新上传了,还请您帮忙再看一下
大约一个月之前 回复
pyx3120
pyx3120 我又补了个图
大约一个月之前 回复

paragraphs[0].text 这个文本内容是什么?

pyx3120
pyx3120 paragraphs[0]是五个字母加一个数字:black1
大约一个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问