变量只存在于它们的“名称空间”中,这是代码的一部分,可以识别不同的变量。将为您编写的每个函数创建一个新的命名空间。这是很有帮助的,因为随着项目的增长,您可能需要为几个不同的事物重用公共变量名。在

在代码中,有两个不同的变量名为playerGuess。一个位于第一个命名空间中,另一个位于为函数guess()创建的命名空间中。如果我们这样做:while int(playerGuess) != number:

print(playerGuess, number) # The added line

guess()

事情变得更清楚了。这是我玩的一个游戏,增加了一行:

^{pr2}$

脚本中任何函数之外的名称空间(如number = randint(0,20))是“全局”名称空间,这意味着可以从任何其他名称空间从这里提取值。这就是为什么number可以被guess()函数使用-guess()检查它的命名空间中是否定义了一个变量number,看没有,然后检查全局命名空间。可以从代码的其他部分更改全局命名空间,但这被认为是不好的做法,因为这些更改来自何处并不明显。如果你想采用这种方法,你可以这样修改你的代码:from random import randint

number = randint(0,20)

playerGuess = '0'

def guess():

global playerGuess # The added line

playerGuess = input("Guess a number: ")

. . .

现在它可以工作了,因为guess()被授予了更改全局名称空间的显式权限。另一种方法是只在名称空间之间来回传递我们关心的值。在from random import randint

number = randint(0,20)

playerGuess = '0'

def guess():

playerGuess = input("Guess a number: ")

if int(playerGuess) == number:

print("Correct!")

elif int(playerGuess) > number:

print("Lower!")

elif int(playerGuess) < number:

print("Higher!")

else:

print("Please input a whole number.")

return playerGuess # Added line

while int(playerGuess) != number:

print(playerGuess, number)

playerGuess = guess() # Added line, update the playerGuess in this namespace

这被认为是更好的,因为现在很明显,在哪里和什么改变了变量playerGuess。在

python退出程序 只跳出while_为什么我的简单程序从不退出while循环?相关推荐

  1. python 退出程序_Python:用Ctrl+C解决终止多线程程序的问题!(建议收藏)

    前言: 今天为大家带来的内容是Python:用Ctrl+C解决终止多线程程序的问题!文章中的代码具有不错的参考意义,希望在此能够帮助到各位!(多数代码用图片的方式呈现出来,方便各位观看与收藏) 出发点 ...

  2. python退出程序-python退出程序

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! python退出程序的方式有两种:os._exit(),sys.exit() 1) ...

  3. python中如何跳出多层循环

    像c语言中的goto,shell中的break 后面跟跳出层次的在方法在python中都没有,这可不是因为python设计的low,而是允许一次性跳出多个循环很容易造成程序流程的混乱,使理解和调试程序 ...

  4. python 跳出for循环_python中如何退出for循环

    Python中的for循环与其它语言不大一样,但跳出循环还是与大多数语言一样,可以使用关键字continue跳出本次循环或者break跳出整个for循环. break语句: Python中的break ...

  5. python 为什么只执行一次_python只执行一次

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! #!usrbinpython #coding=utf-8 created on ...

  6. python移动文件的函数_移动并重命名2000个文件,用Python,只需3秒

    原标题:移动并重命名2000个文件,用Python,只需3秒 作者:陈熹.刘早起 来源:早起Python 今天介绍的案例是如何利用Python来 自动化移动.修改.重命名文件/夹,这样的操作在日常办公 ...

  7. Python退出程序 sys.exit()

    1. sys.exit(arg) (1)退出程序机制 通过引发SystemExit异常来退出Python程序. 可以通过捕捉SystemExit异常,在finally语句中进行一些清理操作:不捕捉Sy ...

  8. [转载] python字符串只留数字_Python工匠:数字与字符串(下)

    参考链接: Python字符串| rsplit " 编程某种意义上是一门『手艺』,因为优雅而高效的代码,就如同完美的手工艺品一样让人赏心悦目. " 致"匠人" ...

  9. python异常处理_Python基础语法案例(Fibonacci):选择结构、循环结构、异常处理结构、代码优化...

    推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书购买链接(京东):配 ...

  10. python指定条件分类输出_python基础(二)条件判断、循环、格式化输出

    继续上一篇,今天主要总结一下条件判断.循环.格式化输出 一.条件判断 python中条件判断使用if else来判断,多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样, ...

最新文章

  1. Linus 谈 Git 的设计思想,顺带骂了一堆人(视频)
  2. 微信支付:“当前页面的URL未注册”
  3. Jupyter Notebook: 解决build docker-stacks时conda太慢的问题
  4. 利用OpenCvSharp处理图片并在winformd的pictureBox中显示
  5. python pygame模块怎么写游戏_使用 Python 和 Pygame 模块构建一个游戏框架
  6. BitSet之为什么用long保存信息
  7. SQL语句执行效率及分析(轉)
  8. Java敏感词过滤 工具类
  9. 【COS】函数使用技巧
  10. 重磅长文!先进院李骁健等人:在体神经界面技术的发展-从小到大规模记录
  11. [问题]Make sure that `gem install pg -v '0.17.1'` succeeds before bundling.
  12. 人机智能交互技术(ROS)实践作业模版与说明
  13. schedule定时任务
  14. Qt6.3.1播放音频文件QAudioSink
  15. u8信息服务器,U8开启服务器
  16. 《三国群英传2网络版》英勇兵资料大汇总,看这一篇就够了
  17. 2021年全球渗膜式空气干燥器收入大约525百万美元,预计2028年达到580百万美元
  18. 计算机组装师分为哪几步,电脑组装主要需要学习哪几个方面?难学吗?
  19. 离散数学:计算主析取范式(基于真值表)
  20. 不看绝对血亏!新加坡java工程师的月薪

热门文章

  1. 深入理解同步/异步与阻塞/非阻塞区别 (转)
  2. hdu 1983(BFS+DFS) 怪盗Kid
  3. 【转载】Jquery中的$命名冲突的解决方案
  4. Gravatar是什么?全球通用头像简单介绍与使用教程
  5. sql 判断分钟是偶数数据_SQL注入数据库类型判断
  6. 拓端tecdat|R语言有限混合模型聚类FMM、广义线性回归模型GLM混合应用分析威士忌市场和研究专利申请、支出数据
  7. 拓端tecdat|R语言多项式线性模型:最大似然估计二次曲线
  8. 拓端tecdat|Mac系统R语言升级后无法加载包报错 package or namespace load failed in dyn.load(file, DLLpath = DLLpath,
  9. 拓端tecdat|windows中用命令行执行R语言命令
  10. 安卓studio没有java.xml_Android文件(Java和XML)被奇怪的XML替换