python入门之模块——第2关:内置模块中的内置函数(代码片段)

YLeee YLeee     2023-04-04     293

关键词:

任务描述

我们在安装好了Python配置文件后,也将Python本身带有的库也安装好了,Python自带的库也叫做Python的内置模块。Python的内置模块是Python编程的重要组织形式,内置模块中的内置函数也极大方便了编程过程中对函数等功能的使用。

本关的目标是让读者了解并掌握Python内置模块和内置函数的相关知识。

相关知识

内置模块

Python中常见的内置模块如下:

  1. os模块:(文件和目录)用于提供系统级别的操作。
  2. sys模块:用于提供对解释器相关的操作。
  3. json模块:处理JSON字符串。
  4. logging: 用于便捷记录日志且线程安全的模块。
  5. time&datetime模块:时间相关的操作,时间有三种表示方式。
  6. hashlib模块:用于加密相关操作,代替了md5模块,主要是提供SHA1SHA224SHA256SHA384SHA512MD5算法。
  7. random模块:提供随机数。

内置模块中的内置函数

Python的内置模块中也有很多使用十分方便的内置函数。

dir()函数

dir()函数是一个排好序的字符串列表,包含的内容是一个模块里定义过的名字,包含在一个模块里定义的所有模块,变量和函数。例如:

# 导入内置math模块
import math

#调用math模块中的dir()函数
content = dir(math)

#输出math模块中所有模块、函数和变量的名字
print(content)

输出结果:
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs','factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin','sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

程序输出了math模块中所有模块、函数和变量的名字。特殊字符串变量__name__是指向模块的名字,变量__file__是指向该模块的导入文件名。

globals()locals()函数

globals()locals()函数可被用来返回全局和局部命名空间里的名字。如果在函数内部调用的是globals()函数,那么返回的是所有在该函数里能够访问的全局名字。如果在函数内部调用的locals()函数,返回的是能够在该函数里访问的局部命名。globals()函数和locals()函数的返回类型都是字典。所以名字们能用keys()函数摘取。

reload()函数

当一个模块被导入到一个脚本中后,程序只会将模块顶层部分的代码执行一次。因此,如果我们想再次执行模块顶层部分的代码,可以用reload()函数。该函数便会重新将之前导入过的模块导入。格式如下:

reload(module_name)

在这里,module_name要直接放模块名,而不能是一个字符串形式。例如我们想重载hello模块:

reload(hello)

小结:Python中的内置模块和内置函数可以帮助程序员快速完成编程功能,不必重复开发已存在的常用代码,极大提高了办事效率和代码质量。
Python中的内置模块和内置函数应用广泛,希望读者在接下来的学习生活中有更加深刻的体会。

编程要求

本关的编程任务是补全src/step2/built-module.py文件的代码,实现相应的功能。具体要求如下:

  • 输入两个正整数ab。要求判断是否存在两个整数,它们的和为a,积为b
  • 如果存在,则输出Yes,若不存在,则输出No

测试说明

本关的测试文件是src/step2/built-module.py,测试过程如下:

  1. 平台自动编译生成built-module.exe;
  2. 平台运行built-module.exe,并以标准输入方式提供测试输入;
  3. 平台获取built-module.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。

以下是平台对src/step2/built-module.py的样例测试集:

测试输入:
9
15
预期输出:
No

测试输入:
9
20
预期输出:
Yes

测试输入:
20
36
预期输出:
Yes

测试输入:
18
40
预期输出:
No

开始你的任务吧,祝你成功!

人类所有优点都要变成习惯才有价值,即使爱这样一个永恒的主题,你也必须通过不断的修炼,变成你的习惯,才真正会化为你的行动。

如果你觉得这一关的内容对你有帮助,请你在下面点赞。

 

参考答案

①方法1

#coding=utf-8

#导入math模块
import math

#输入两个整数a和b
a = int(input())
b = int(input())

# 请在此添加代码,要求判断是否存在两个整数,它们的和为a,积为b;
#********** Begin *********#
def isExist(x, y):    
    c1 = x + math.sqrt(pow(x, 2) - 4 * y) > 0 and (x + math.sqrt(pow(x, 2) - 4 * y)) % 2 == 0
    c2 = x - math.sqrt(pow(x, 2) - 4 * y) > 0 and (x - math.sqrt(pow(x, 2) - 4 * y)) % 2 == 0
    if c1 and c2:
        return "Yes"
    else:
        return "No"

print(isExist(a, b))  

#********** End **********#

②方法2

#coding=utf-8

#导入math模块
import math

#输入两个整数a和b
a = int(input())
b = int(input())

# 请在此添加代码,要求判断是否存在两个整数,它们的和为a,积为b;
#********** Begin *********#

x1 = int(float(a+math.sqrt(a**2-4*b))/2)
x2 = int(float(a-math.sqrt(a**2-4*b))/2)
if x1+x2 == a and x1*x2 == b:
    print('Yes')
else:
    print('No')

#********** End **********#

 

python入门之内置模块--序列化模块(json模块pickle模块)

Python入门之内置模块--序列化模块(json模块、pickle模块)1、序列化Python中这种序列化模块有三种:?json模块:?不同语言都遵循的一种数据转化格式,即不同语言都使用的特殊字符串。(比如Python的一个列表[1,2,3]利用json转化成特... 查看详情

python3入门(十三)——常用内置模块之时间日期模块datatime(代码片段)

1.日期时间模块——datatime  //其他模块例如time、calender等模块暂不展开(1)获取当前时间:datatime.now(): fromdatetimeimportdatetimenow=datetime.now()print(now) 结果:2019-06-0920:58:13.533006//如果仅仅使用import,则需要加全限 查看详情

python入门之函数调用——第1关:内置函数-让你偷懒的工具(代码片段)

...#xff0c;但我们不需要每个函数都需要自己去编写,因为Python内置了很多十分有用的函数,我们在编程过程中可以直接调用。本关目标是让读者了解并掌握一些常用的Python内置函数的用法。相关知识数学运算abs():返回数... 查看详情

python中difflib内置模块之文本对比

什么是difflib?用来做什么?difflib为python的标准库模块,无需安装。作用时对比文本之间的差异。并且支持输出可读性比较强的HTML文档,与Linux下的diff命令相似。在版本控制方面非常有用。符号理解符号含义‘-‘包含在第一个系列... 查看详情

第五周-第05章节-python3.5-内置模块详解之time与datetime模块

#pcjimporttime#print(time.localtime())#print(time.time())##print(help(time))#获取time的帮助##time.sleep(1)#睡几秒#print(time.gmtime(10000000000))#convertsecondssinceEpochtoUTCtuple标准时间utc时区#print(time.localti 查看详情

第五周-第06章节-python3.5-内置模块详解之range模块

如果你对在Python生成随机数与random模块中最常用的几个函数的关系与不懂之处,下面的文章就是对Python生成随机数与random模块中最常用的几个函数的关系,希望你会有所收获,以下就是这篇文章的介绍。random.random()用于生成用于... 查看详情

python入门之模块——第1关:模块的定义(代码片段)

任务描述在Python程序的开发过程中,为了代码维护的方便,我们可以把函数进行分组,分别放到不同的.py文件里,这样,每个文件包含的代码就相对较少,这个.py文件就称之为一个模块(Module)。... 查看详情

python基础2.2true+true

参考技术Apython的作用域规则:LEGB原则为什么Python会认为两个完全不同的对象拥有相等的值?在Python中布尔数据类型实际上是整数类型的子类。在python3中,False和True是真正的保留字,而不是被定义在内置模块的名字空间(builtins)... 查看详情

python之模块(代码片段)

模块即一推代码的集合来实现某个功能,使用时直接调用,甚是方便。模块又分为三种自定义模块内置模块第三方模块下面就来介绍介绍什么是内置模块及如何去使用它和内置模块的好处。使用模块模块前首先导入该模块,才能... 查看详情

阅读内置的python模块[重复]

】阅读内置的python模块[重复]【英文标题】:Readingthebuiltinpythonmodules[duplicate]【发布时间】:2012-12-0223:50:54【问题描述】:可能重复:HowdoIfindthelocationofPythonmodulesources?我不明白如何阅读内置python模块中的代码。例如,我知道如何... 查看详情

重修课程day25(面向对象6之模块与包)

...:内置模块,第三方模块和自定义模块  内置模块:在python产生是就有的模块叫做内置模块,我们只管拿来调用即可  第三方模块:别人已经定义好了的模块,我们只管下载安装一下就可以调用  自定义模块:自己定义的... 查看详情

python中常用的内置模块(代码片段)

文章目录1.time模块(1)功能汇总(2)程序解释2.datetime模块(1)功能汇总(2)程序解释3.calendar模块(1)功能汇总(2)程序解释4.sys模块(1)功能汇总(2& 查看详情

python零基础入门篇·41:内置模块的使用二:pyinstaller模块(打包py文件以及更换图标)hashlib模块(加密)(代码片段)

pyinstaller模块pyinstaller是第三方模块,需要在Terminal输入命令安装:pipinstallpyinstaller步骤演示在Day18.py文件下写入代码在cmd或Terminal找到文件进行打包。在Terminal下输入打包命令:pyinstaller-FDay18.py(-F——产生单个可执行文件)运行... 查看详情

走入计算机的第二十五天(内置模块3之正则表达式)

...式(或RE)是一种小型的、高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过re模块实现。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。正则表达式的功能:字符串的模糊匹配查询。二&... 查看详情

python的内置模块详解(代码片段)

一、什么是模块  模块就是封装了一些列功能的py文件,我们使用的时候直接导入这个文件,通过传入参数的方式使用其他文件的功能函数二、模块有哪些内置模块自定义模块第三方模块三、如何导入模块  导入模块分为4种... 查看详情

python入门之函数结构——第3关:函数的使用范围:python作用域(代码片段)

...,有的函数和变量仅仅可以在模块内部使用。这就是Python作用域的相关问题。本关的目标就是让读者了解并掌握函数的使用范围,即Python作用域的相关知识。相关知识在Python中,正常的函数和变量名是公开的&# 查看详情

python中的模块(代码片段)

...写程序时,经常会引入别人写好的模块。有的模块是Python自带的(内置模块),你无需安装就能直接引用,而有的模块则是由Python生态系统里的第三方工程师提供的,你需要通过pip安装之后,才能进行... 查看详情

内置模块之configparser

configparser模块  configparser模块用来操作配置文件(.ini格式),这种格式的配置文件,包含多个组section,每个组可以包含多个键值对option,目前.ini这种格式的配置文件已经逐渐的不流行了。  ##############################################... 查看详情