一、前言
前面一章非常详细的介绍了python
中函数的用法,但考虑到只学不用可能会很快忘掉,所以本章继续讲解函数。
主要是介绍python已经写好的许多十分好用的函数!
二、print
这个函数应该是我们用到的最多的一个函数,几乎是从第一章我们就在用它。
原因也很简单,它非常的实用,可以将我们想要观察的变量内容给打印到控制台上。
最简单的用法就是打印一个任意类型的变量:
a=10
print(a)
但它其实是有很多更高级的用法的,这可以从它的函数说明中看出:
它一共有5个参数:
-
objects
:第一个参数,为各种对象,即你想要打印的常量、变量等等,多个对象用,
隔开即可,所有填入的对象,都传入的第一个参数。这在前一章提到过,一个星号开头的参数可接受多个值。 -
sep
:如果要打印多个对象,那肯定就需要用一个字符串将它们隔开,这个参数就是用来隔开各个对象的字符,默认为空格。
可以看到它的参数类型为:str | None = ""
,意思就是接受字符串或空,None
代表空,没有类型,如果不填则默认为None
,后面的= ""
,意思就是如果你不填这个参数、那么默认值就为None
,也就是空格。
后面其它参数类似。
-
end
:打印完这些对象后,需要用一个字符串结尾,默认的是换行字符\n
,如果你想要打印出字符串,但又不想换行,就可以将这个参数置为空。 -
file
:将字符串写到哪里?默认值为sys.stdout
,代表终端,即控制台,或者称为黑窗口,如果你想要把值打印到文件中去,只需要将打开后的文件句柄,赋值给这个参数就行了(文件操作的内容后面章节再提)。 -
flush
:这是一个bool
类型,意思是是否要强制刷新当前的缓存区到目标设备上去,默认为false
为了保证输出的效率,print
函数打印出的字符串并不会直接输出到控制台、或者文件中,而是先存放在内存缓存区上,等到缓存区满了、或者其它情况,再统一将内容输出到控制台或文件中,所以一般情况这个值都默认即可。
当了解了以上这些参数,其实你就可以做一些有意思的事情了,比如像下面这样:
for i in range(0, 5):
print(i,end='-')
结果为:
0-1-2-3-4-
或者:
print(0, 1, 2, 3, 4, sep='-')
结果为:
0-1-2-3-4
但以上操作在平时代码开发中,还是远远不够的,我们很多时候都想要自定义输出数据格式。
最简单的就是年月日:2023-7-30
。
如果你了解C语言,那就可以使用和C非常像的方式来格式化输出:
year = 2023
month = 7
day = 30
print("%04d-%02d-%02d" % (year, month, day))
即前面字符串写好你想要用的格式,后面紧跟%
,然后其后放置你想要填写在前面的变量,构造为一个元组。
字符串中的%04d
之类的称为占位符,这样的符号有很多:
占位符 | 含义 |
---|---|
%s | 字符串 |
%r | 字符串(repr())的显示 |
%c | 单个字符 |
%b | 二进制整数 |
%d | 十进制整数 |
%i | 十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数 |
%e | 指数(基底为e) |
%E | 指数(基底为E) |
%f,%F | 浮点数 |
%g | 指数(e)或浮点数(根据显示长度) |
%% | 字符% |
如果你了解C语言,那么你可以继续这样使用,毫无问题。
但如果你并不了解C语言的输出格式,那其实也没必要记住上面这样占位符的含义,因为python提供了更加方便的格式化方式。
比如str
类型,其自带了一个format
函数可以用来格式化操作:
year = 2023
month = 7
day = 30
s="{0:04}-{1:02}-{2:02}".format(year,month,day)
print(s)
上面我写的比较复杂,主要是让你看看它的用法,格式化字符串中使用{}
用来占位。
{}
中第一个数字,代表后面format
中的第几个参数,然后中间再用:
符号作为分割,后面写格式空格语句。
比如这里的{0:04}
就代表,这里要填后面format
函数的第一个参数year
,第一个数字0代表不足后面的4位,则用0进行填充,后面的4代表总长度为4。
实际上面的代码可以简写为:
year = 2023
month = 7
day = 30
print("{:04}-{:02}-{:02}".format(year, month, day))
因为我们本来就是按着顺序写的,所以前面表示位置的数字是可以直接省略的。
既然我们只是想要打印,那也没必要多用个中间变量s,直接放在print函数中就行了。
这是通过字符串的函数format
实现的。
为什么字符串可以拥有自己的函数呢?也就是可以用点
.
来调用?这就涉及类的相关知识点了,后面再提。
除了用函数外,在python 3.6版本以后,还有一个更加方便的格式化字符串方式:f-strings
year = 2023
month = 7
day = 30
s=f'{year:04d}-{month:02d}-{day:02d}'
print(s)
即:在字符串前面添加一个字母f
,然后直接在字符串中{}
内填写你想要格式化的变量即可。
如果想要格式化,就可以直接在变量后面添加一个:
,然后写上格式化语句,格式化逻辑和前面的c语言差不多的,04d
意思就是,不足位用0补全,全长4位,为整数:d
。
一般是直接写在print函数中的:
print(f'{year:04d}-{month:02d}-{day:02d}')
三、input
前面介绍的都是你将所有东西都提前写好放在代码中,然后运行。
但大部分给别人用的程序,怎么都得让用户选择输入一些内容,然后再根据具体情况执行代码。
那么这个时候就需要用到input
函数了,正如其名,就是用来接受用户输入的,用法也相当简单:
name = input()
print(f'name:{name}')
运行:
当程序运行到input函数时,程序就会卡住,等待用户输入。