Python从菜鸟到高手(2):清空Python控制台

执行python命令会进入Python控制台。在Python控制台中可以用交互的方式执行Python语句。也就是执行一行Python语句,会立刻返回执行结果。

??当Python控制台输入过多的Python语句时,有时需要将这些已经输入的语句和执行结果清空,并重新开始输入Python语句。例如,下图就是一个输入了多条Python语句,并输出相应结果的Python控制台。

??当然,如果不想看到这些Python语句和输出结果,可以一直按“回车” 键,直到Python控制台中所有的内容都移到窗口上面为止。不过这样以来,光标还是在Python控制台的最下面,而且上面都是Python控制台的命令提示符,非常难看,如下图所示。

??如果读者用的是Mac OS X系统,在Python控制台中直接按Ctrl+L键就可以直接清空Python控制台。而在Windows中,是没有快捷键用来清空Python控制台的,所以需要我们编写Python代码来实现清空Python控制台的功能。因此,本节的目的到现在已经很清楚了,本节主要并不是教大家如何清空Python控制台,而是借用清空Python控制台这一操作,利用前面两节介绍的导入模块和声明变量的知识,编写一段Python程序,用来清空Python for Windows控制台。

??在Windows下,如果要清空Windows控制台,执行cls命令即可。由于Python控制台是利用Windows控制台实现的,所以cls命令也同样可以清空Python控制台。不过在Python控制台不能直接执行cls命令。在Python控制台要想执行外部命令,需要调用os模块中的system函数。读者可以一行一行在Python控制台输入下面的代码。

import os               # 导入os模块
os.system('cls')        # 执行cls命令清空Python控制台

??执行这两行代码,是把以前在Python控制台中输入的内容都清空了,但在Python控制台的第1行会输出一个“0”,如下图所示。

??其实这个“0”是os.system函数的返回值。Python控制台会输出每一条执行语句的返回值。os.system函数如果成功执行命令,返回“0”,如果执行命令失败,返回“1”。不过为了最求完美,现在就把这个“0”去掉。

??之所以会输出这个“0”,是因为Python语言的标准输出默认指向的是Python控制台,所以所有的Python语句执行的结果都输出到了Python控制台。现在只要改变Python语言的标准输出,让其指向一个文件,那么os.system函数的执行结果就会直接写到这个文件中,而不是Python控制台了。

??下面的例子会编写一个Python程序,用于清空Python控制台。
清空Python控制台不输出“0”的步骤如下:

(1)导入os模块和sys模块。

(2)使用open函数以可写的方式打开一个文件,本例是out.log。

(3)为了不影响在Python控制台输出其他语句的执行结果,应先将Python默认的标准输出保存到一个变量中,以便以后恢复默认的Python标准输出。使用sys.stdout可以获取Python标准输出的句柄(Handler)。

(4)将Python标准输出指向第2步打开的文件。

(5)使用os.system函数执行cls命令。

(6)恢复Python默认的标准输出。

??完整的实现代码如下。读者可以在Python控制台一行行输入这些代码,当执行到os.system(‘cls’)语句时,Python控制台被清空,不会再显示“0”。

import os                           # 导入os模块
import sys                          # 导入sys模块
f_handler=open('out.log', 'w')      # 打开out.log文件
oldstdout = sys.stdout              # 保存默认的Python标准输出
sys.stdout=f_handler                # 将Python标准输出指向out.log
os.system('cls')                    # 清空Python控制台
sys.stdout = oldstdout              # 恢复Python默认的标准输出

《Python从菜鸟到高手》已经出版,购买送视频课程

《Python从菜鸟到高手》知识结构图。

扫描二维码关注“极客起源”公众号,技术文章、视频课程应有尽有

欢迎关注“Python开发者基地”公众号

原文地址:https://www.cnblogs.com/nokiaguy/p/9576368.html

时间: 2024-08-29 04:27:53

Python从菜鸟到高手(2):清空Python控制台的相关文章

《Python从菜鸟到高手》已经出版,购买送视频课程

好消息,<Python从菜鸟到高手>已经出版!!! ??JetBrains官方推荐图书!JetBrains官大中华区市场部经理赵磊作序!送2400分钟同步视频课程!500个案例,400道Python练习题,电子书,10万行源代码,6个实战项目! 本书完整目录 购买地址: 当当 京东 ??在2018-10-15之前在以上地址购买本书,并5分好评以及20字以上评论.除了赠送40小时Python同步视频课程外,还赠送李宁老师任意200元以内的课程或套餐,如果课程或套餐超过200元,直接不差价即可.

Python从菜鸟到高手(4):导入Python模块

在Python代码中导入模块需要使用import语句,语法结构如下: import module_name ??引用模块中函数的语法如下: module_name.function_name ??如果在Python程序中大量使用模块中的某些函数,那么每次在调用函数时都要加上"模块名"显得有些麻烦,所以在这种情况下,可以使用from-import-语句将模块中的函数直接暴露出来.该语句的语法结构如下: from module_name import function_name ??如果要

Python从菜鸟到高手(5):数字

1 基础知识 ??Python语言与其他编程语言一样,也支持四则运算(加.减.乘.除),以及圆括号运算符.在Python语言中,数字分为整数和浮点数.整数就是无小数部分的数,浮点数就是有小数部分的数.例如,下面的代码是标准的四则运算表达式. 2 + 4 4 * 5 + 20 5.3 / 7 (30 + 2) * 12 ??如果要计算两个数的除法,不管分子和分母是整数还是浮点数,使用除法运算符(/)的计算结果都是浮点数.例如1/2的计算结果是0.5,2/2的计算结果是1.0.要想让Python解释

Python从菜鸟到高手(7):字符串

1. 单引号字符串和转义符   字符串与数字一样,都是值,可以直接使用,在Python控制台中直接输入字符串,如"Hello World",会按原样输出该字符串,只不过用单引号括了起来. >>> "Hello World" 'Hello World'   那么用双引号和单引号括起来的字符串有什么区别呢?其实没有任何区别.只不过在输出单引号或双引号时方便而已.例如,在Python控制台输入'Let's go!',会抛出如下的错误. >>&

Python从菜鸟到高手(6):获取用户输入、函数与注释

1. 获取用户输入   要编写一个有实际价值的程序,就需要与用户交互.当然,与用户交互有很多方法,例如,GUI(图形用户接口)就是一种非常好的与用户交互的方式,不过我们先不讨论GUI的交互方式,本节会采用一种原始,但很有效的方式与用户交互,这就是命令行交互方式,也就是说,用户通过命令行方式输入数据,程序会读取这些数据,并做进一步的处理.   从命令行接收用户的输入数据,需要使用input函数.input函数接收一个字符串类型的参数,用于作为输入的提示.input函数的返回值就是用户在命令行中录入

Python从菜鸟到高手(8):print函数、赋值与代码块

1.神奇的print函数 ??print函数相信读者一定对它不陌生,因为在前面的章节,几乎每个例子都使用了print函数,这个函数的功能就是在控制台输出文本.不过print在输出文本时还可以进行一些设置,以及输出多参数字符串. ??如果为print函数传入多个参数值,那么print函数会将所有的参数值首尾相接输出. # 输出结果:a b c d e print("a","b","c","d","e"); ?

Python从菜鸟到高手(9):条件和条件语句

1.布尔(Boolean)值和布尔变量 ??在讲条件语句之前,首先应该了解一下布尔类型.条件语句(if)需要为其指定布尔值或布尔类型的变量,才能根据条件判断是否要指定代码块中的语句.布尔值只有两个值:True和False,可以将这两个值翻译成"真"和"假". ??现在我们已经了解了布尔值是用来做什么的,但Python语言会将哪些值看做布尔值呢?其实在Python语言中,每一种类型的值都可以被解释成布尔类型的值.例如,下面的值都会被解释成布尔值中的False. Non

Python从菜鸟到高手(10):循环

  我们现在已经知道了如何使用if语句让程序沿着不同的路径执行,不过程序最大的用处就是利用CPU和GPU强大的执行能力不断重复执行某段代码,想想Google的AlphaGo与柯洁的那场人机大战,尽管表面上是人工智能的胜利,其实人工智能只是算法,人工只能算法之所以会快速完成海量的数据分享,循环在其中的作用功不可没.   对于初次接触程序设计的读者,可能还不太理解循环到底什么东西.下面先看一下循环的伪代码. 查看银行卡余额 没有发工资,等待1分钟,继续执行1 Oh,yeah,已经发工资了,继续执行4

Python从菜鸟到高手(11):列表的基础操作

  列表可以使用所有适用于序列的标准操作,例如索引.分片.连接和乘法.但列表还有一些属于自己的操作,如修改列表本身的操作,这些操作包括元素赋值.元素删除.分片赋值以及下一节要将的列表方法. 1. 列表元素赋值   如果要修改列表中的某一个元素,可以像使用数组一样对列表中的特定元素赋值,也就是使用一对中括号指定元素在列表中的索引,然后使用赋值运算符(=)进行赋值.   本例修改了列表s中的前两个元素值. s = ["Bill", "Mike", "John&