鱼C论坛

 找回密码
 立即注册
查看: 1244|回复: 13

[已解决]小甲鱼课本问题

[复制链接]
发表于 2020-6-18 22:20:37 | 显示全部楼层 |阅读模式

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

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

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

为什么我想下一行,按回车就出错了呢?小甲鱼的书例子有问题吗?
最佳答案
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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-6-18 23:41:33 | 显示全部楼层
是的,是因为我下载后自带的那个IDLE有点问题,搞到我现在看,越看越懵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-18 23:43:07 | 显示全部楼层
Twilight6 发表于 2020-6-18 22:21
你的缩进有错误,你重新小心翼翼的敲一次代码、

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

我现在是搞不懂这种内置函数赋值的工作原理是怎么了?这里看得我真的好懵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

怎么说   有什么不懂的可以说说 说不定我能帮你解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-19 11:34:23 | 显示全部楼层
本帖最后由 1223253411 于 2020-6-19 11:36 编辑

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

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

会让你很爽的,剩下的就看你愿不愿意信了


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-22 21:04:34 | 显示全部楼层
Twilight6 发表于 2020-6-18 23:52
怎么说   有什么不懂的可以说说 说不定我能帮你解决

请问去哪里pycharm呢?我再看一次视频学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-22 21:07:08 | 显示全部楼层
kakahzw 发表于 2020-6-22 21:04
请问去哪里pycharm呢?我再看一次视频学习一下


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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-22 21:44:53 | 显示全部楼层
Twilight6 发表于 2020-6-22 21:07
https://fishc.com.cn/thread-162968-1-1.html

已看,网站打不开
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-22 21:48:23 | 显示全部楼层
kakahzw 发表于 2020-6-22 21:44
已看,网站打不开

那你就自己翻我的帖子,这个帖子我写的  你看着教程安装就好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-22 22:23:00 | 显示全部楼层
Twilight6 发表于 2020-6-22 21:48
那你就自己翻我的帖子,这个帖子我写的  你看着教程安装就好

可以了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-22 23:09:56 | 显示全部楼层
Twilight6 发表于 2020-6-22 21:48
那你就自己翻我的帖子,这个帖子我写的  你看着教程安装就好

不知道是不是版本不一样,跟你的安装教程不一样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-22 23:20:28 | 显示全部楼层
kakahzw 发表于 2020-6-22 23:09
不知道是不是版本不一样,跟你的安装教程不一样的

没事 不影响使用即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-23 16:49:47 | 显示全部楼层
实在看不惯就用nonlocal关键字把上面的xnonlocal一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 13:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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