使用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/3/library/index.html
另外,并不是只有标准库才能提供可以在代码中使用的可导入模块。 Pythona社区还支持一个超级棒的第三方模块集合,可以查看 Python社区管理的存储库:http://pypi.python

测试和调试

自动测试非常重要,可以花些时间了解如何利用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环境
  • 可以把第三方模块安装到一个虚拟环境,而不影响另个虚拟环境
  • 且一台计算机上可以有多个虚拟环境,只需激活想要使用的虚拟环境就可以完成切换

两种实现虚拟环境的方案:

  1. 使用这是 Python3标准库提供的虚拟环境技术venv
    venv的更多信息:https://docs.python/3/library/venv.html
  2. 也可以从PyPI安装virtualenv(它与venv完成的工作相同,不过有更多的特性)
    virtualeny的更多信息:https://pypi/project/virtualenv/

更多推荐

Python学习笔记——入门(IDLE的使用、标准库和模块、测试和调试、虚拟编程环境)