下面这个程序的错误能否解释一下

img


能否解释一下第六题 出现的两个错误是为什么 第一个是没有定义吗,第二个看不懂,加了global
b之后就是对的好像是全局变量的意思但是我不太明白怎么用

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7547049
  • 这篇博客也不错, 你可以看下【爬虫实战】B站网课不想看?看看此刻有多少同学正在观看,你还能睡得着吗?
  • 除此之外, 这篇博客: 功能测试学习笔记【资料来源:B站黑马测试】中的 6.3.7、由此引出的问题:作为测试人员,一般什么时候提交缺陷报告?能否可以直接口头传达不写缺陷报告? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 执行测试用例,并且失败的时候,就立即停止执行马上提交bug。
    • 不能,防止忘记之后无法保留证据。
  • 您还可以看一下 炮哥带你学老师的快速带你入门深度学习与实战课程中的 3.4、参数b更新计算小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    首先解释一下global的作用,global用于在函数内部声明一个全局变量,从而使得函数中对该变量的修改能够影响到文件级别的全局变量。

    针对第一个错误提示没有定义,这很可能是由于变量作用域的问题造成的。在Python中,变量作用域分为全局作用域和局部作用域。如果在函数内部使用一个变量,但是该变量在函数中并没有被定义或声明为全局变量,则会引发"NameError: name 'xxx' is not defined"的错误。因此,我们可以通过将该变量声明为global,使其变成全局变量,从而避免"NameError"的发生。

    针对第二个错误,我们需要具体看一下错误提示,才能得出准确的答案。

    关于如何正确使用global,我给出以下步骤:

    1.在函数中声明global变量。例如,声明一个名为"b"的全局变量:

    def my_function():
        global b
        b = "hello"
    

    2.通过函数对该全局变量进行修改。例如,将b的值修改为"world":

    my_function()
    print(b)  # 输出:world
    

    需要注意的是,修改全局变量应当放在函数内部,而不是在函数外部。如果在函数外部修改全局变量,可能会导致变量作用域的混乱,从而引发不可预测的错误。

    总结一下,如果遇到 "NameError" 的提示,则需要检查变量作用域的问题,并将变量声明为global。此外,正确使用global的关键在于对全局变量的声明和修改需要在同一个函数中完成。

  1. num 是参数,在全局不能访问。
  2. b 是局部变量,在全局不能访问。

第一个,num确实没有定义,只有函数f的参数名称用了num。
第二个,代码最后一行打印b,但是b的定义在函数f中,作用域只在函数f中,加全局,可以将作用域变成全局,函数f外也可以访问。