文章目录

  • 前言
  • 一、使用input()函数输入
  • 二、使用print()函数输出



前言

从我们接触第一个Python程序开始,就一直在使用 print() 函数向屏幕上输出一些字符,如下图代码所示:

python esc输入 python系统输入_input

print() 函数就是Python的基本输出函数。那既然有输出,肯定也有输入,Python还提供了一个用于进行输入的 input() 函数,用于接收用户从键盘上的输入内容,如下图代码所示:

python esc输入 python系统输入_print_02

这些在我们之前的代码里面都有所接触,但是多数小伙伴并不清楚这两个函数更多的作用和用法,甚至有的小伙伴用了还报错,所以今天跟大家详细聊聊这两个函数的门门道道。


一、使用input()函数输入

在Python中,使用内置函数 input() 可以接收用户的键盘输入。有的大白可能会好奇:为什么一定要接收用户的键盘输入呢?我们在代码里面都输入好,不就行了吗?

其实不然,我们生活当中很多很多情况下都是需要临时从外部输入数据的,不可能提前把所有数据都写入代码里面,比如我们登陆网站要输入用户名和密码,商场收银员要收钱结算商品需要录入系统等等,这些场景下的数据都是需要用户临时输入的,并且数据随时都可能在变化。这就要求我们在开发程序的时候都要预留好用户输入数据的接口,而这个接口在Python语言中就是 input() 函数。

python esc输入 python系统输入_python_03

input() 函数的语法(用法)格式如下:

变量名 = input("提示性的文字:")

其中,变量名是我们自己任意命名,这里变量的作用就是保存用户输入的结果,双引号内的文字用于提示用户要输入的内容。比如下图代码:

python esc输入 python系统输入_python_04

有的小伙伴可能会觉得这个提示性文字一定要加吗?感觉对代码没什么贡献值,又还占位置,这里我们看看如果不加会怎样:

python esc输入 python系统输入_python_05

如上界面显示,不论是对开发者自己还是其他用户都不友好,所以记得在使用input()函数时候,一定要在括号里面加上提示性用语。还有小伙伴可能会问博主:为什么我运行代码之后,只显示了提示性用语,没有输入文字的提示光标出现,文字输入不上去?

python esc输入 python系统输入_python_06

其实很简单,运行代码之后,在结果展示区域的任意位置,鼠标点击一下,即可出现输入光标,另外输入完成之后必须按回车键,代码才会继续往下执行,不然代码会一直停在这里。如下图所示:

python esc输入 python系统输入_python_07

python esc输入 python系统输入_python esc输入_08

说明:在Python3中,无论输入的内容是数字还是字符,都将被作为字符串类型读取。如下图所示:

python esc输入 python系统输入_python_09

如上图代码,我们使用了Python内置函数 type() 来查看输入内容的数据类型,可以看到本来输入的 99 是数字类型,但是打印输出数据类型结果的时候却是字符串。

python esc输入 python系统输入_python_10

注意:如果我们需要使用数字类型,就需要把接收到的字符串进行类型转换。如果将其他类型数据转为整数类型数据,可以用到Python内置函数 int() ,如下图所示:

python esc输入 python系统输入_python_11

二、使用print()函数输出

在 Python 中,使用内置的 print() 函数可以将结果输出到标准控制台上,其语法(用法)格式如下:

print(输出内容)

这里面的输出内容可以是 数字和字符串(字符串需要使用引号括起来),此类内容将直接输出;也可以是包含运算符的 表达式,此类内容则将计算结果输出。如下图代码所示:

python esc输入 python系统输入_print_12

默认情况下, print() 语句输出后会自动换行,这也是为什么我们会看到在控制台上打印输出完所有内容之后,下面往往都会多一行空行,如下图所示:

python esc输入 python系统输入_开发语言_13

python esc输入 python系统输入_python_14

多学一招:我们如果想要一次性输出多个内容,并且不换行显示,可以将要输出的多个内容中间使用英文输入法状态下的 逗号 分隔。比如下图代码所示:

python esc输入 python系统输入_input_15

如上图,我们可以看到三个输出内容都显示在一行,当然代码中 print() 函数里面的每个逗号后面都空了一格,是遵循 Python语言编码规范,为了代码美观好看。

那有执拗的大白可能会想:我就是想分多个 print() 打印输出结果,但是又想结果都显示在一行,也就是去掉 print() 函数默认换行输出的功能,这可行吗?其实是可以的。在讲方法之前,我们需要先看看print() 函数的源代码,也就是Python作者写的代码。

python esc输入 python系统输入_input_16

这里给大家说一下,我们是可以看到Python语言底层代码的,因为Python是开源的,也就是开放源代码。我们不仅可以看,也可以修改。那怎么看源代码呢?非常简单,比如我们要看 print() 函数的源码,首先需要按下键盘的【 Ctrl 】键,然后将鼠标移动到 print 这个单词上,就可以看到单词变颜色了,鼠标点击一下,就可以进去源码文件,记得全程不要松开 【 Ctrl 】键,直至打开源码文件之后再松开,源码打开之后如下图所示:

python esc输入 python系统输入_开发语言_17

上图红框框选的部分就是 print() 函数的底层写法,当然我们现在还没有学到 函数 部分,这个这暂时无法看懂,不过我们学过转义字符,红框里面的 “ \n ”,我们应该不陌生,这是换行的意思。看到这里大家应该也不难猜到,这就是为什么 print() 函数会默认输出之后换行。

简单给大家解释一下上图红框的print后面括号里面的内容,括号里面的内容都叫 参数,我们只看后面三个参数,其中 end=‘\n’ 这个参数的意思是让 print() 函数在打印输出完内容之后结尾自动换行,当然我们也可以修改源码,比如我们把 end=‘\n’ 改为 end=‘哈哈哈’,来看看效果:

python esc输入 python系统输入_input_18

如上图我们可以看到打印的数字结果后面还多了 “哈哈哈” 三个字,并且下面没有再空一行(也就是换行),因为我们用字符串 “哈哈哈” 代替了 换行符“\n”。当然细心的小伙伴可能注意到了,我上面代码中的哈哈哈是用双引号包裹的,而不是源码中的单引号。这没有关系,字符串用单双引号均可表示,如果这块还有不清楚的可以看看我之前的博客【Python中的基本数据类型】。

python esc输入 python系统输入_print_19

既然 print() 函数打印输出结尾的字符可以任意更改,那上面除了把三个结果打印在一行,让其不分行显示之外,我们又有了新的方法,如下图所示:

python esc输入 python系统输入_print_20

如上图代码,我们将end后面的换行符 替换成 空格,这样每个结果打印输出完了之后,结尾只会有一个空格,下个结果会接着这个空格后面继续显示,不再进行换行。当然我们可以看到这个方案会更复杂,还是推荐使用上面的方案:将多个结果一次性打印输出,中间以逗号隔开。只是作为开发人员,我们自己需要清楚,解决问题的方案可以多元化,所谓条条道路通罗马。

继续回到 print() 源码中,刚才我们讲了 end 这个参数,还有 sep=’ ',这个参数的作用是在多个结果一次性输出的时候,每个结果默认以空格间隔开,这也是为什么我们刚才第一种方案打印输出的结果每个中间都有一个空格:

python esc输入 python系统输入_开发语言_21

这里我们也可以继续更改参数,把 sep=’ ’ 改为 sep=’ | ',如下图所示:

python esc输入 python系统输入_python esc输入_22

这样的结果是不是更美观呢?

python esc输入 python系统输入_python esc输入_23

print() 源码当中最后一个参数 file=None 这个参数表示的是文件路径,此时里面的值默认是None,也就是没有文件路径,那 print() 打印的结果就是默认打印在控制台上,如果这里面加上文件路径,那结果就会打印在文件里面显示,如下图代码所示:

python esc输入 python系统输入_python_24

运行代码之后,我们发现控制台上没有显示任何内容,打开名字叫 小十一 的文本文件看看,此时字符串就完美的打印在我们指定的文件里面,如下图所示:

python esc输入 python系统输入_input_25

python esc输入 python系统输入_python_26

说明:在上面的代码中用到了打开文件,关闭文件等 文件操作 的内容,关于这部分内容在后续博客中会详细讲到,这里了解即可。