此章的目的
- 了解如何在交互模式下输入代码、如何保存代码、以方便后期可以的idle打开、在系统命令行中打开、点击图标打开;
- IDLE模式GUI界面及相关操作;
此章主要内容
- Python程序主要通过交互模式、系统命令行、模块导入与重载、点击文件图标、exec模块以及IDE模式等几种方式运行。
交互提示模式下编写代码
运行python程序最简单的方法就是在交互模式下进行,这中交互模式可以在系统终端和IDE模式下进行。
系统交互模式
win+r 输入cmd,在命令行输入python即启动交互模式
win10版本,在shell模式下打开交互模式:win+x,打开shell模式,输入python,即打开交互模式
IDE模式:安装python时会自带python交互模式,开启需要在开始菜单中打开。
交互地运行代码
以python交互模式为例,对输入进行介绍
单行输入模式>>>,输出按一次enter
多行输入模式…,如果想输出结果需要按两次enter
为什么使用交互提示模式
使用交互模式主要是能够快速运行出结果。所以,如果想快速的测试某个语句的使用方法,可以使用交互模式进行体验。所以交互模式是 实验 和 测试最好的地方,能快速测定出问题的地方。
交互模式需注意的地方
- 交互模式下只能输入python语句,不能够输入系统命令,如输入系统命令需import os进行操作
- 交互模式下可以不执行打印命令
- 认清交互模式下的符号,>>>,在此符号下不需要缩进
- 只执行一行即出结果,多行输入模式下需要以空行结束,即enter两次才能看到结果。
系统命令行和文件
系统交互模式虽然可以进行实验和测试,但是无法保存代码。所以,需要在编辑器中进行代码的编写,然后在系统命令行中运行。编写代码所形成的文件为模块,python程序由模块组成。第一段脚本
使用idle编辑器编写一段代码
import sys
print(sys.platform)
print(2**100)
x = 'spam'
print(x*8)
然后保存并命名为first.py,注意保存为py文件
- 在该文件所在的文件夹中打开shell控制器
在运行后,会在该文件夹目录下形成,pycache缓存文件中有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窗口及结果显示
注意:初次运行时,结果并无显示,在写文章时结果显示在了下方。
图标点击的其他限制
模块导入和重载
- 模块是包含有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进行导入,而每个模块就就包含多个变量名,组成一个包。这个包就是一个命名空间。