老师,我这个为啥每次写入的yaml文件,的k值都是1了,我加了一个循环了。老师请教一下

老师,我这个为啥每次写入的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>


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好!

因为以上代码的循环只是循环了range(li)次,临时变量i从0开始累加每次加1,如range(li=5)循环了5次,则i=4,y=4+1,返回的y值依然是5次,不会增加

修改方法:直接对变量li进行加1,返回li,如下图:

https://img1.sycdn.imooc.com//climg/614dabd609c2c8e606420325.jpg

祝学习愉快!

  • 热爱编程学习 提问者 #1
    1
    print(reuslt,'+++++')<br>li=len(reuslt)<br>print(type(li))<br>for i in range(li):

    老师,我这给li传的参数是,reuslt的长度,循环次数是reuslt长度才对?可是为啥循环的此时是0呢?不太理解呢

    1
    ​<br>


    2021-09-24 18:54:05
  • 同学,你好!li的值是result的长度,for...range(li)循环是从0取值,第一次循环,i的值是0,同学在for循环中使用了return语句,程序遇到return语句就停止运行,for只执行了一次就停止了,可将return语句放在for循环外面。假如result的长度是5,那么最后一次循环y的值是5,全部循环之后再将y的值返回

    https://img1.sycdn.imooc.com//climg/614ea3fe09dd15c207940716.jpg

    祝:学习愉快!

    2021-09-25 12:29:11
  • 好的,谢谢解答

    2021-09-25 17:32:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码