使用IDLE
IDLE是python集成开发环境,包括编辑器、调试工具、Python shell、Python 3在线文档集
方式一:用python shell运行代码(>>>
提示窗口)
Python Shell是一个REPL环境(read-eval-print-loop,一个交互式编程工具),用来运行 Python代码段,通常一次运行一条语句。
Python shell允许在编写代码的同时尝试运行:在标识符>>>
后输入代码会被立即执行
ps.Python Shell的交互式很有用。想要确定解决某个特定问题所需的代码时, Python程序员通常更倾向于在shell上试验代码段
一些python shell(>>>
提示窗口)使用技巧:
- 键入一些代码后,
TAB
可显示代码提示 - 键入一些代码后,
Alt
+/
可自动补全(若不是想要的,再按Alt
+/
取消) Alt
+P
可回忆之前键入的前一语句(即Previous)Alt
+N
可前进至下一语句(即Next)Ctrl
+]
可将选中的文本增加缩进Ctrl
+[
可将选中的文本减少缩进Alt
+3
加注释,Alt
+4
去掉注释Ctrl
+Z
可撤销修改Ctrl
+Shift
+Z
可重做- 修改以上快捷键:选择Options -> Configure IDLE -> Keys
- 配置自己喜欢的字体:在shell中选择Options -> Configure IDLE,将字体替换为常用的
Consolas
- 获取Python自带的帮助:
键入dir(xxx)
可查看Python中与某个东西相关的所有属性;
键入help(xxx)
可获得相关的Python帮助文档;
键入help()
进入帮助模式,>>>
变为help>
,输入内置函数名获得相关帮助,输入quit
退出
#查看random模块的所有属性和方法
>>> dir(random)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random',
'randint', 'random', 'randrange', 'sample', 'seed',
'uniform', 'vonmisesvariate', 'weibullvariate']
#查看randint函数的帮助文档
>>> help(random.randint)
Help on method randint in module random:
randint(a, b) method of random.Random instance
Return random integer in range [a, b], including both end points.
方式二:用文本编辑窗口运行代码
在IDLE中选择File -> New File,可以创建文本编辑窗口;
在文本编辑窗口中,选择Run -> Python Shell可以返回python shell;
文本编辑窗口可以用来编写完整的 Python程序;保存程序后,按下F5可运行程序
一些python shell使用技巧:
- 缩进整个代码组:选中多行代码后,在文本编辑窗口选择format -> Indent Region
- 回缩整个代码组:选中多行代码后,在文本编辑窗口选择format -> Dedent Region
- 混用tab和空格导致代码无法运行,要修复缩进格式:全选代码后,在文本编辑窗口选择format -> Untabify Region
注意区别:
- python shell一次只能运行一条语句(或几行for代码组,这需要按两次回车才能运行),不能运行整个程序;
因此有多行代码时,一般先在编辑窗口写好再运行,而不在shell中运行- python shell中,输入变量、表达式、函数,都能直接显示它的值或结果,而在文本编辑窗口中,同样的语句可能需要加上print()才会显示
另外,除了用IDLE,还可以直接在系统命令行运行Python,也能访问>>>提示窗口
IDLE适合实验小的代码段,运行pip、Flask等应用,应该在操作系统的命令行上直接通过解释器运行代码:在目标.py
程序所在文件夹中长按shift
键,同时单击鼠标右键,在菜单中选择Open Command window here(在这里打开命令PowerShell窗口)在这个命令提示窗口中键入下面的命令:
py -3 xx.py
从而让python解释器运行xx.py中的代码
python的代码运行机制
Python的运行方式与C语言不同,python没有main()函数,也没有编辑→编译→链接→运行过程。Python中没有将源代码编译为“可执行代码”的概念
使用 Python时,只需要编辑和保存代码,然后立即运行。Python解释器直接对文件从上到下开始运行代码,一次执行一行
IDLE代替程序员与 Python解释器交互,解释器会为你自动完成编译→链接→运行过程。这使你能够集中精力编写你的代码。
“Python”是编程语言的名字,而“IDLE”是内置的集成开发环境Python IDE的名字。
安装 Python3时,还会安装一个Python解释器,解释器的名称也叫“Python”,正是这个解释器在运行你的 Python代码。
Python标准库与模块
Python标准库是一组丰富的软件模块,提供了大量预建、高质量的可重用代码。
标准库由许多不同的模块组成;而一个模块则是函数的一个集合
import方法一: 直接导入模块(或子模块)
import的第一种用法是导入模块
采用这种方式导入时,在使用函数时要用模块名加以限定
也就是说,必须使用点记法来访问模块的函数。如下面的os.getcwd()
>>> import os
>>> os.getcwd()
'C:\\Users\\13272\\Desktop'
从datetime模块导入datetime(同名)子模块
>>> from datetime import datetime
>>> datetime.today()
datetime.datetime(2021, 10, 17, 14, 19, 13, 294843)
import方法二: 将模块中的函数导入程序的命名空间
第二种用法把一个指定的函数导入到程序的命名空间(命名空间的概念在 Python中很重要,因为它定义了运行代码的上下文)
这允许我们直接调用这个函数,而不必将函数链接回所导入的模块(无需限定)
(直接写getcwd()
而不用写成os.getcwd()
)
从os模块导入getcwd函数
>>> from os import getcwd
>>> getcwd()
'C:\\Users\\13272\\Desktop'
注意,不要在函数内部放任何 Import语句
解释器在你的代码中遇到一个 import语句:
如果 import语句在函数之外,这个行为没有什么问题,因为所导入的模块(通常)只读一次,然后执行一次不过;
如果 import语句出现在一个函数内部,那么每一次调用这个函数时都会读入和执行。这是一种极为浪费的做法(尽管解释器不会阻止这样做)
import其他写法
>>> from os import * #相当于引入了所有模块
>>> getcwd()
'C:\\Users\\13272\\Desktop'
>>> import os as o #用自定义的名称来称呼一个库
>>> o.getcwd()
'C:\\Users\\13272\\Desktop'
更多实用的标准库
>>> import time
>>> time.sleep(3)#让程序暂停运行3秒
>>> import random
>>> random.randint(1,5)#获取随机数
3
- collections模块提供可导入的数据结构(基于内置的列表、元组、字典和集合)
OrderedDict
:这个类会维持插入顺序。
Counter
:这个类会让计数变得极其容易。
ChainMan
:组合一个或多个字典,使它们看上去就像一个字典 - itertools提供了一组丰富的工具,可以用来建立定制迭代
还应该考虑product, permutations和combinations,这些模块会让你很轻松,而不再需要编写那些循环代码 - functools提供了一组更高阶函数(取函数对象作为参数的函数)
例如partial函数能让你“冻住”一个已有函数的参数值,然后用你选择的一个新名字调用这个函数(调用时固定部分参数,只需传入另一部分参数)
Python文档关于标准库的内容:https://docs.python.org/3/library/index.html
另外,并不是只有标准库才能提供可以在代码中使用的可导入模块。 Pythona社区还支持一个超级棒的第三方模块集合,可以查看 Python社区管理的存储库:http://pypi.python.org
测试和调试
自动测试非常重要,可以花些时间了解如何利用Python的标准库来更容易地测试代码。
- doctest:这个模块允许你把测试嵌入在模块的 docstrings中,用过 doctest模块的人都很喜欢这个模块
- unittest:类似其他编程语言的unittest库, Python提供了它自己的版本
unittest模块的工作与其他语言中的大多数其他“ unittest”库很相似,很多Pyhon程序员抱怨说这个库没有太多 Python特点。因此,又创建了非常流行的py.test - py.test测试框架被大多数人所喜爱
pdb是一个功能非常完备的 Python内置提供的调试器
可以从命令行运行pdb:py -3 -m pdb xxx.py
也可以在>>>
提示窗口与pdb交互,可以设置断点、跳过、运行等
另外,PyLint代码分析工具会分析你的代码,在你第一次运行代码之前会告诉你代码可能存在什么问题
虚拟编程环境
一份代码需要安装第三方模块的某个版本,而另一份代码需要安装同一个第三方模块的另一版本。想要在同一台计算机上,同时运行这两份代码,会遇到问题:Python解释器不支持安装不同版本的第三方模块。
- 利用虚拟环境,你可以创建一个全新的“干净”的 Python环境
- 可以把第三方模块安装到一个虚拟环境,而不影响另个虚拟环境
- 且一台计算机上可以有多个虚拟环境,只需激活想要使用的虚拟环境就可以完成切换
两种实现虚拟环境的方案:
- 使用这是 Python3标准库提供的虚拟环境技术
venv
venv的更多信息:https://docs.python.org/3/library/venv.html - 也可以从PyPI安装
virtualenv
(它与venv完成的工作相同,不过有更多的特性)
virtualeny的更多信息:https://pypi.org/project/virtualenv/