老师,我这个为啥每次写入的yaml文件,的k值都是1了,我加了一个循环了。老师请教一下
1 | import random<br> import os<br> import yaml<br><br> class email:<br> def email_mvp( self ):<br> reuset = random.randint( 100000 , 999999 )<br> reuslt = '@qq.com' <br> v_email = str (reuset) + reuslt<br> # print(v_email)<br> k_email=self.fenlei()<br> # print(k_email)<br> resuslts={<br> k_email:v_email<br> }<br> print(resuslts)<br> return resuslts<br><br><br> def fenlei(self):<br><br> with open("email.yaml",'r') as f:<br> data=f.read()<br> reuslt=yaml.load(data,Loader=yaml.FullLoader)<br> print(reuslt,'+++++')<br> li=len(reuslt)<br> print(type(li))<br> for i in range(li):<br> y=i+1<br> print(y,'=======')<br> return y<br> def mingcheng(self):<br> with open("email.yaml",'a',encoding='utf-8') as f:<br> yaml.dump(self.email_mvp(),f)<br><br><br>if __name__=='__main__':<br> Em=email()<br> #for i in range(1):<br> Em.mingcheng()<br> |
18
收起
正在回答
1回答
同学,你好!
因为以上代码的循环只是循环了range(li)次,临时变量i从0开始累加每次加1,如range(li=5)循环了5次,则i=4,y=4+1,返回的y值依然是5次,不会增加
修改方法:直接对变量li进行加1,返回li,如下图:
祝学习愉快!
Python全栈工程师2020
- 参与学习 人
- 提交作业 5238 份
- 解答问题 2433 个
Facebook曾声称“只招全栈工程师”!全栈用人需求猛增,市面人才紧缺。 0基础进击Python全栈开发,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧