2016/11/20

问题

详情见代码

Python 作为高级语言, 抽象层次很高, 然一个程序员一般都会好几门语言, 有时候会在语言的细节处, 发生概念性的混淆

有点害怕, 是不是一直误解了 Python 的作用域原理?

正确的作用域原理是什么?

答案: LEGB法则

初学 Python 语法的时候, 由于觉得这东西太复杂, 就快速跳过了, 没想到是个坑( maybe feature ? )

相关代码

def find(sequence, target):

for index, value in enumerate(sequence):

if value == target:

break

else:

return -1

return index # ?? 这里是否可表示 index 已经逃离 for...in 作用域了?

print find(range(10), 1)

for iii in range(10):

iii += 1

print iii

一直以为是这样的

for (int i=0; i<10; ++i)

do something # i的作用域在 for 中

重现

拷贝代码, 运行

尝试解决

python if里面的变量外面能用吗_for...in 中的局部变量, 为何能在外面使用?相关推荐

  1. python中变量的作用域有几种_Python中变量的作用域(variable scope)

    http://www.crifan.com/summary_python_variable_effective_scope/ 解释python中变量的作用域 示例: 1.代码版 #!/usr/bin/ ...

  2. python 函数递归一次增加一次变量_python基础之函数、返回值,局部变量、全局变量,递归(继续补充不定长参数)...

    1.python中函数定义:函数是逻辑结构化和过程化的一种编程方法.(完成某一种特定的功能) def test02(): #"" msg = 'hello WuDaLang' re ...

  3. python定义一个整数变量_python循环定义多个变量的实例分析

    python循环定义多个变量方法 我们可能会时长碰到这样一个场景,计算得到一个非固定值,需要根据这个值定义相同数量个变量. 实现方式的核心是exec函数,exec函数可以执行我们输入的代码字符串. e ...

  4. python的数据类型和变量

    python的数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种 ...

  5. Python基本语法_变量作用域LEGB

    目录 目录 软件系统 变量的作用域 高级语言对数据类型的使用过程 作用域的产生 作用域的类型 Llocal局部作用域 Eenclosing嵌套作用域 Gglobal全局作用域 Bbuilt-in内置作 ...

  6. Python学习笔记(2)-Python执行方式、变量

    Python执行方式 Python执行过程是由上到下逐行执行,遇到问题即刻终止,现在我们编写多行代码查看效果(Python的一条命令单独占用一行,不允许多条命令写在同一行),如下三图 图1:结果依次打 ...

  7. Python 工匠:善用变量来改善代码质量

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂优文发表于云+社区专栏 作者:朱雷 | 腾讯IEG高级工程师 『Python 工匠』是什么? 我一直觉得编程某种意义上是一门『手艺 ...

  8. python语言变量命名规则有什-以下选项中,符合Python语言变量命名规则的是_学小易找答案...

    [填空题]与文件系统相比,数据库系统的数据冗余度___________,数据共享性___________. [填空题]在数据库体系结构中,两级数据映象分别是指___________之间的数据映象与__ ...

  9. python老是报参数未定义_浅谈Python程序的错误:变量未定义

    Python程序的错误种类 Python程序的错误分两种.一种是语法错误(syntax error).这种错误是语句的书写不符合Python语言的语法规定.第二种是逻辑错误(logic error). ...

最新文章

  1. Soft robotics:造仿生昆虫机器人柔性骨骼新技术,只需2小时,成本不到7块!
  2. 云原生应用程序的架构应该怎么设计?
  3. Python matplotlib绘制雷达图
  4. 布隆过滤器(Bloom Filter)- 原理、实现和推导
  5. 虚拟系统管理VSM提高服务器整合率
  6. DOS 常用命令大全
  7. 微波遥感SNAP(一)——基于Sentinel-1雷达数据重建数字高程模型
  8. 微信小程序记账报表小程序
  9. Mac下Alt键配置
  10. c++实现植物大战僵尸修改器
  11. FoxNFT创世品牌娘卡包预售6月15日正式开启!五位姑娘正式与大家见面
  12. 无线网络和本地连接同时启用后,无线网络无法使用。
  13. Java基础--数值和字符串
  14. 红米NoteX和红米NoteXpro的区别
  15. 计算机论文专著 论文集,学习计算机方面论文参考文献 学习计算机专著类参考文献有哪些...
  16. 关于AC6003、6005、6605版本关联WIFI6代产品方法
  17. android图标生成网址
  18. 【web系列十一】使用django创建数据库表
  19. linux rz 快捷上传包或文件
  20. 最牛人工智能 ChatGPT,进一步的应用心得和感受,提升10倍工作效率?

热门文章

  1. 二叉树练习:找树根和hz
  2. AD(二十一)面向加工——PCB的检查和生产输出(光绘、钻孔文件、IPC网表、贴片坐标文件、BOM表)
  3. 信息摘要算法之一:MD5算法解析及实现
  4. MDClub轻量级论坛源码
  5. PTA-JAVA-类和对象
  6. Foursquare
  7. c++代码 二元一次方程求解
  8. 浙大python网_浙大
  9. 2.深度学习时序建模库PaddleTS教程之TSDataset数据集
  10. (02) 任务(Jobs)和触发器(Triggers)