5. 常见函数

一、前言

前面一章非常详细的介绍了python中函数的用法,但考虑到只学不用可能会很快忘掉,所以本章继续讲解函数。

主要是介绍python已经写好的许多十分好用的函数!

二、print

这个函数应该是我们用到的最多的一个函数,几乎是从第一章我们就在用它。

原因也很简单,它非常的实用,可以将我们想要观察的变量内容给打印到控制台上。

最简单的用法就是打印一个任意类型的变量:

a=10
print(a)

但它其实是有很多更高级的用法的,这可以从它的函数说明中看出:

image-20240309111655353

它一共有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}')

运行:

image-20240309112228346

当程序运行到input函数时,程序就会卡住,等待用户输入。

作者:余识
全部文章:0
会员文章:0
总阅读量:0
c/c++pythonrustJavaScriptwindowslinux