鱼C论坛

 找回密码
 立即注册
查看: 2319|回复: 5

[已解决]零基础入门学习Python第19讲课后作业第一题

[复制链接]
发表于 2020-11-23 21:13:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def next():
    print('我在next()函数里...')
    pre()

def pre():
    print('我在pre()函数里...')
   
next()

这是题目,问会输出什么?以下是答案。

有些编程语言不够“聪明”,向这类向前引用的方式会导致报错,但Python足够“醒目”,这段代码是正确的!
会输出:
我在next()函数里...
我在pre()函数里...

问题是我复制代码后只输出了第一行,后面报错了,不知道什么原因??请教高手
我在next()函数里...
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    next()
  File "<pyshell#2>", line 3, in next
    pre()
UnboundLocalError: local variable 'pre' referenced before assignment
最佳答案
2020-11-23 21:20:08
你复制错了吧,亲测没问题啊,
  1. def next():
  2.     print('我在next()函数里...')
  3.     pre()

  4. def pre():
  5.     print('我在pre()函数里...')
  6.    
  7. next()
复制代码


输出:
  1. 我在next()函数里...
  2. 我在pre()函数里...
复制代码


你看看你上面哪里引用了pre,在赋值前,造成报错
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-11-23 21:20:08 | 显示全部楼层    本楼为最佳答案   
你复制错了吧,亲测没问题啊,
  1. def next():
  2.     print('我在next()函数里...')
  3.     pre()

  4. def pre():
  5.     print('我在pre()函数里...')
  6.    
  7. next()
复制代码


输出:
  1. 我在next()函数里...
  2. 我在pre()函数里...
复制代码


你看看你上面哪里引用了pre,在赋值前,造成报错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-23 21:25:25 | 显示全部楼层
昨非 发表于 2020-11-23 21:20
你复制错了吧,亲测没问题啊,

我复制到软件运行窗体里面错了,如果把语句复制到一个新的文件运行就是对的。晕
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-23 21:25:59 | 显示全部楼层
rychair 发表于 2020-11-23 21:25
我复制到软件运行窗体里面错了,如果把语句复制到一个新的文件运行就是对的。晕

小问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-24 19:36:58 | 显示全部楼层

不好意思,我昨晚想了半天还是不懂。在第一个自定义函数 next() 下面单独写了一行 pre(), 这是什么意思呢?后面再跟一个自定义函数 pre(),为何程序运行 next(), 这是第一个自定义函数,会打印两个自定义函数的值呢?这就是后面要讲的内嵌函数吗?很奇怪,第二个如果是内嵌函数,为啥没有缩进呢?我只能厚着脸皮再问您以下,谢谢。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-24 19:41:15 | 显示全部楼层
rychair 发表于 2020-11-24 19:36
不好意思,我昨晚想了半天还是不懂。在第一个自定义函数 next() 下面单独写了一行 pre(), 这是什么意思呢 ...

就是定义函数1,里面调用了2
有定义了函数2

最后调用了1->打印next()
又因为1里面调用了2->所以也打印了pre()

函数只有被调用的时候才会执行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-27 02:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表