《python学习手册》自学(2)

第三章 你应该如何运行程序

本章讨论的是当前常用的程序启动技术,你将学习如何交互的输入程序代码,以及如何将代码保存并运行:可以在系统命令行中运行,点击图标运行,模块导入,exec调用,以及IDLE GUI中的菜单选项
(我读这本书是为了更加深入python,所以一些基础知识就跳过了。。。)

  • 1.开始一个交互式会话
    在提示命令行下输入python,即可开始一个交互式会话。(Windows就是命令提示符啦,Linux/mac 拜拜。。)
    Ctrl + Z退出
C:\Users\NERO>python
Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print('hi')
hi
>>>
  • 2.系统路径
    如果你没有设置PATH环境变量的话,你就要用完整路径来代替上面的‘python’ ,
    在3.X中自带了一个Windows启动器 py 打上即用,不用配置PATH,对于电脑上有多个版本的python,在py后面附上版本号能更好的开启。

  • 大型程序都是以多个模块文件的形式存在。其中的一个模块文件指定为主文件(顶层文件,脚本)能够运行整个程序的文件。第一次导入后,其他导入都会在工作,甚至在另一个窗口中改变并保存 了模块的源代码也不行。

  • 如果想要在同i一次会话中再次运行文件,可以使用imp模块中的reload函数from imp import reload reload(scripts1)script一定是已经导入的文件

  • 导入的每一个模块都是一个文件,都是一个变量包(一个命名空间),一个模块文件的变量名是独立的,这就减少了代码文件中命名冲突。

  • 使用exec运行模块文件
    exec调用有着类似import的效果,但实际上不会真正导入模块。就相当于把文件粘贴到了调用exec的地方`因此不需要在文件修改后进行重载。但是它与from一样,可能会把使用的变量替换掉。而import语句每个进程只运行文件一次,并且会把文件生成到一个单独的模块命名空间,以便它的赋值不会改变你的作用域中的变量,代价就是在修改之后要从新加载。(然后他讲,最佳建议就是不要用它。。。)

x=999
exec(open(script1.py').read())
x>>'spam'

- IDLE用户界面
一个能编辑,运行,浏览,调试程序的GUI:
ALT + P从后向前一条 ALT + N 从前向后
在编辑器中,自动缩进,在输入时TAB 键自动补全
当进行函数调用,输入其开始的‘(’时,会有气球帮助提供信息
当在对象名称后面输入‘ . ',然后停顿或按下Tab键会有对象属性的弹出选择列表。
另外IDLE提供了更多的高级特性,图形化调试器(在debug窗口),对象浏览器(file菜单) 该浏览器允许你通过模块搜索路径导航到文件和文件中的对象,在文件或对象上点击则在文本编辑窗口中打开对应的源文件。
通过在主窗口选择Debug - Debugger菜单选项来初始化IDLE,然后通过在文本编辑窗口中选择Run-Run模块选项来启动你的脚本,一旦调试器被启用,就可以在代码中设置断点,在文件编辑窗口的代码行上右击会阻止它的执行,以及显示变量值等等。
为了实现更加简单的调试操作,你也可以用鼠标右击错误信息的文本来快速跳到出错的那行代码。

嵌入式调用

在一些特定的领域,python代码也许会在一个封闭的系统中运行。我们就说python程序被嵌入其他程序中运行,代码可以保存到一个文本文件中,存储在数据库中,从一个HTML页面获取,从XML文件解析等。这样的侵入式执行程序一般用来支持终端用户定制的,例如一个游戏程序。

本章习题

  1. 怎样才能开始一个交互式解释器的会话:cmd,IDLE。。
  2. 你应该在那里输入系统命令行来启动一个脚本文件:在输入命令行的地方
  3. 指出运行保存在一个脚本文件中的代码的方法:实际上是模块,可以通过系统命令行,点击图标,导入和重载,exec内置函数,IDLE的Run。。。。
  4. 为什么你需要重载模块:在默认情况下,python每个进程只会导入一个模块一次,所以如果你修改了他的源代码,并且希望在不停止或者重新启动python的情况下运行其最新的版本,必须重载它,而在IDLE这类IDE中,这些启动机制都是运行最新版。
  5. 什么是命名空间:就是对变量的封装,他在python中以一个带有属性的对象的形式出现,每个模块文件都有一个命名空间,可以避免程序中命名的冲突
    在这里插入图片描述
    在这里插入图片描述
发布了25 篇原创文章 · 获赞 0 · 访问量 301

猜你喜欢

转载自blog.csdn.net/weixin_46192930/article/details/104821501
今日推荐