kakahzw 发表于 2020-6-18 22:20:37

小甲鱼课本问题

>>> def funX():
    x = 5
    def funY():
        x = x + 1
       
SyntaxError: inconsistent use of tabs and spaces in indentation
>>>

为什么我想下一行,按回车就出错了呢?小甲鱼的书例子有问题吗?

Twilight6 发表于 2020-6-18 22:21:30

本帖最后由 Twilight6 于 2020-6-18 22:23 编辑



你的缩进有错误,你重新小心翼翼的敲一次代码、

而且 funY 函数里的 x = x + 1 会触发 Python 的屏蔽机制 :
当函数内部的变量和函数外部全局作用域的变量名相同时,会触发 Python 的屏蔽机制,函数内部会创建一个同名的局部变量

来暂时覆盖同名的全局变量,此时在函数内部的值都为这个局部变量,只要一出此函数,那么该局部变量就不复存在,变会原来的全局变量

这里 funY 就相对于 funX 是局部函数所以 x = x + 1 会被屏蔽 x 导致 x 为定义而报错 NameError

kakahzw 发表于 2020-6-18 23:41:33

是的,是因为我下载后自带的那个IDLE有点问题,搞到我现在看,越看越懵

kakahzw 发表于 2020-6-18 23:43:07

Twilight6 发表于 2020-6-18 22:21
你的缩进有错误,你重新小心翼翼的敲一次代码、

而且 funY 函数里的 x = x + 1 会触发 Python 的屏 ...

我现在是搞不懂这种内置函数赋值的工作原理是怎么了?这里看得我真的好懵

Twilight6 发表于 2020-6-18 23:52:45

kakahzw 发表于 2020-6-18 23:43
我现在是搞不懂这种内置函数赋值的工作原理是怎么了?这里看得我真的好懵

怎么说   有什么不懂的可以说说 说不定我能帮你解决

1223253411 发表于 2020-6-19 11:34:23

本帖最后由 1223253411 于 2020-6-19 11:36 编辑

下载个python编辑器吧,我敢保证能让你绕开百分之九十的语法错误

你可以找你给最佳的那个大佬向他要下pycharm的安装教程

会让你很爽的,剩下的就看你愿不愿意信了{:10_333:}


kakahzw 发表于 2020-6-22 21:04:34

Twilight6 发表于 2020-6-18 23:52
怎么说   有什么不懂的可以说说 说不定我能帮你解决

请问去哪里pycharm呢?我再看一次视频学习一下

Twilight6 发表于 2020-6-22 21:07:08

kakahzw 发表于 2020-6-22 21:04
请问去哪里pycharm呢?我再看一次视频学习一下


https://fishc.com.cn/thread-162968-1-1.html

kakahzw 发表于 2020-6-22 21:44:53

Twilight6 发表于 2020-6-22 21:07
https://fishc.com.cn/thread-162968-1-1.html

已看,网站打不开

Twilight6 发表于 2020-6-22 21:48:23

kakahzw 发表于 2020-6-22 21:44
已看,网站打不开

那你就自己翻我的帖子,这个帖子我写的你看着教程安装就好

kakahzw 发表于 2020-6-22 22:23:00

Twilight6 发表于 2020-6-22 21:48
那你就自己翻我的帖子,这个帖子我写的你看着教程安装就好

可以了,谢谢

kakahzw 发表于 2020-6-22 23:09:56

Twilight6 发表于 2020-6-22 21:48
那你就自己翻我的帖子,这个帖子我写的你看着教程安装就好

不知道是不是版本不一样,跟你的安装教程不一样的

Twilight6 发表于 2020-6-22 23:20:28

kakahzw 发表于 2020-6-22 23:09
不知道是不是版本不一样,跟你的安装教程不一样的

没事 不影响使用即可

lijiachen 发表于 2020-6-23 16:49:47

实在看不惯就用nonlocal关键字把上面的xnonlocal一下
页: [1]
查看完整版本: 小甲鱼课本问题