此章的目的

  • 了解如何在交互模式下输入代码、如何保存代码、以方便后期可以的idle打开、在系统命令行中打开、点击图标打开;
  • IDLE模式GUI界面及相关操作;

此章主要内容

  • Python程序主要通过交互模式、系统命令行、模块导入与重载、点击文件图标、exec模块以及IDE模式等几种方式运行。

交互提示模式下编写代码

交互提示模式下编写代码

image.png运行python程序最简单的方法就是在交互模式下进行,这中交互模式可以在系统终端和IDE模式下进行。
系统交互模式
win+r 输入cmd,在命令行输入python即启动交互模式
image.png
win10版本,在shell模式下打开交互模式:win+x,打开shell模式,输入python,即打开交互模式
image.png
IDE模式:安装python时会自带python交互模式,开启需要在开始菜单中打开。
image.png

交互地运行代码

以python交互模式为例,对输入进行介绍
单行输入模式>>>,输出按一次enter
多行输入模式…,如果想输出结果需要按两次enter

image.png

为什么使用交互提示模式

使用交互模式主要是能够快速运行出结果。所以,如果想快速的测试某个语句的使用方法,可以使用交互模式进行体验。所以交互模式是 实验 和 测试最好的地方,能快速测定出问题的地方。

交互模式需注意的地方

  • 交互模式下只能输入python语句,不能够输入系统命令,如输入系统命令需import os进行操作
  • 交互模式下可以不执行打印命令
  • 认清交互模式下的符号,>>>,在此符号下不需要缩进
  • 只执行一行即出结果,多行输入模式下需要以空行结束,即enter两次才能看到结果。

    系统命令行和文件

    系统交互模式虽然可以进行实验和测试,但是无法保存代码。所以,需要在编辑器中进行代码的编写,然后在系统命令行中运行。编写代码所形成的文件为模块,python程序由模块组成。

    第一段脚本

    使用idle编辑器编写一段代码
  1. import sys
  2. print(sys.platform)
  3. print(2**100)
  4. x = 'spam'
  5. print(x*8)

然后保存并命名为first.py,注意保存为py文件

  • 在该文件所在的文件夹中打开shell控制器

image.png
在运行后,会在该文件夹目录下形成image.pngpycache缓存文件中有first.pyc文件。

  • 在非文件所在文件夹打开shell控制器,需要将first.py文件所在目录加上。

UNIX可执行脚本

点击文件图标

在windows中点击图标

input的技巧

使用shell控制器启动py文件时,结果无法停留在界面上,运行一闪而过,通过在代码末尾添加input()函数,使结果停留下来

from math import *
lis_a = []
for x in range(10000):
    a = sqrt(x + 100)
    b = sqrt(x + 268)
    if a / int(a) == 1 and b/int(b) == 1:
        lis_a.append(x)
        print(x)
print(lis_a)
input()

shell窗口及结果显示
image.png
注意:初次运行时,结果并无显示,在写文章时结果显示在了下方。

图标点击的其他限制

模块导入和重载

  • 模块是包含有python语句的文件。每一个以py为扩展名的python源代码文件称为模块;
  • 其他的文件可以通过导入这个模块以读取这个文件的内容;
  • 通过读取了解模块的属性以被外部世界所用。
  • 模块属性只能通过import 和 from读取,reload函数调用

模块导入 :import函数使用
在first.py 所在的文件夹下打开shell文件,打开python,使用import函数导入first。

>>> import first
win32
1267650600228229401496703205376
spamspamspamspamspamspamspamspam

模块重载:reload 函数使用
如果在已经运行过一次该函数,可以使用reload函数重新运行该模块

>>> from imp import reload
__main__:1: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
>>> reload(first)
win32
1267650600228229401496703205376
spamspamspamspamspamspamspamspam
<module 'first' from 'C:\\Users\\dongd\\Desktop\\first.py'>

模块导入使用import和from

>>> import myfile
>>> print(myfile.title)
The meaning of life
>>> from myfile import title
>>> print(title)
The meaning of life

模块的显要特性:属性

  • 模块就是变量名的封装,一个模块就是一个命名空间。
  • 一个模块就是多个变量名属性的集合,其中可以有多个变量名

创建threenames.py文件

a = 'the first'
b = 'the second'
c = 'the third'
print(a, b , c)

通过import函数引用threenames模块,查看变量属性

>>> import threenames
the first the second the third
>>> print(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> print(threenames.a)
the first
>>> print(threenames.b)
the second

通过from threenames import * 查看变量属性

>>> from threenames import *
the first the second the third
>>> print(a)
the first
>>> print(b)
the second

查看threenames所有变量

>>> import threenames
>>> dir(threenames)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__',
 '__name__', '__package__', '__spec__', 'a', 'b', 'c']

在使用dir()获取的变量名结果中,带有下划线的为自带的变量名,而后面为自己命名的变量名。

模块和命名空间

Python是由多个模块组成的,通过import进行导入,而每个模块就就包含多个变量名,组成一个包。这个包就是一个命名空间。

使用exec运行模块文件

IDLE用户界面

IDLE基础

使用IDLE

高级IDLE工具

其他的IDE

其他启动选项

嵌入式调用

冻结二进制的可执行性

文本编辑器启动的选择

其他的启动选择

未来的可能