Python入门之模块——第2关:内置模块中的内置函数

任务描述

我们在安装好了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 **********#

 

  • 10
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
函数是一段封装了特定功能的代码块,可以重复调用。无论是编写程序还是解决问题,函数都是非常重要的工具。了解并熟练使用函数对于精通Python的基础篇来说十分重要。 在Python函数的定义以键字"def"开头,后面是函数的名称和参数列表。参数列表用于接收调用函数时传递的参数。在函数体内部,通过缩进来组织函数代码,并使用return语句返回函数的结果。 函数的优势体现在以下几个方面: 1. 代码的重用性:可以将一段常用的代码封装成函数,以便在其他地方重复使用,提高了代码的可读性和可维护性。 2. 简化程序结构:函数可以将复杂的问题分解为多个简单的小问题,使程序结构更加清晰,易于理解和修改。 3. 提高代码的可测试性:函数模块化的单元,可以独立测试和验证,减少了程序出错的可能性。 在编写函数时,要注意以下几点: 1. 函数名称要有意义,能够表达函数的功能。 2. 参数列表可以根据需要进行定义,可以有多个参数,也可以没有参数。 3. 函数的代码要尽量简洁、清晰,避免冗余和重复的部分。 4. 在函数内部,可以使用局部变量来保存间结果,避免对全局变量的过多依赖。 总之,函数是编程不可或缺的组成部分,掌握了函数的使用,就掌握了解决问题的利器。在后续的学习,我们将进一步学习函数的高级应用,如函数的递归调用、函数的参数传递等。通过不断的实践和练习,相信不久的将来,我们就能够精通Python的基础篇。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值