weixin_55121846
雪糕大魔王
采纳率100%
2021-03-03 20:15

函数定义循环不会结束

已采纳

python程序,如果我用函数定义的话,就一直循环不会结束,但是如果不用函数的话,就会自动结束,请问是什么原因呢?还有如果是定义函数,怎样结束呢?

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • jslang 天际的海浪 1月前

    因为在函数中对restart变量赋值是在函数中创建一个同名的局部变量,并不是改变全局变量restart的值。

    要改变全局变量restart的值,需要在函数开头用 global restart 来声明函数内的restart为全局变量。

    def game():

        global restart

    点赞 评论 复制链接分享
  • technologist_03 CSDN技术专家团—feng 1月前

    作用域不对,在函数里面的变量,默认是局部变量,你这样赋值外部是不生效的。

    可以看这个例子,作用域看完这个文档就明白了https://www.runoob.com/python3/python3-namespace-scope.html

    点赞 评论 复制链接分享
  • weixin_55121846 雪糕大魔王 1月前

    谢谢,golbal 变量解决了

    点赞 评论 复制链接分享
  • funny123 coagenth 1月前

    因为你的代码中while循环条件一直是true,所以会一直调用函数。有多种方式可以既使用函数又能终止循环。其中一种导入sys模块在except语句块中最后一行加上sys.exit().还有可以将while循环放入函数体中,并设置退出循环条件(比如设置如输入为‘q’或回答累计达到指定次数或答案正确的话停止循环),在其后 break退出循环。

    点赞 评论 复制链接分享

为你推荐