MATH.SQRT在一个中断语句中



我是Python的新手。目前在处理中断语句的实验室工作。我有这条代码

from math import sqrt 
for i in range(1001, 0, -1):     
    root = sqrt(i) 
    if root == int(root):      
        print i 
        break 

问题要求我更改第一行以导入数学(无导入SQRT),并保持其他行相同。这给我留下了:

import math
math.sqrt(i)
for i in range(1001, 0, 01):
    root = sqrt(i)
    if root == int(root):
        print i
        break

运行它时,我想出了一个名称" sqrt"的名称消息。如何在不更改第一行的情况下修复此代码?

谢谢。

import math
for i in range(1001, 0, -1):     
    root = math.sqrt(i) 
    if root == int(root):      
        print i 
        break 

这不是导入的工作方式。如果您只想提及数学模块而不提前提及平方根函数,请执行

import math
for i in range(1001, 0, -1):
    root = math.sqrt(i)
    if root == int(root):
        print i
        break

请注意如何工作。该语句import math告诉Python在不将所有名称添加到当前环境中的情况下注意数学模块中的所有功能。换句话说,Python可以快速使用数学模块,但是当前唯一的名称是math

当您需要使用数学模块中的函数时,只需将其与math.前缀,如math.sqrt中。Python知道math在哪里,因此它使用该模块查找sqrt功能并使用它。但是,每当您使用sqrt或其他功能时,请执行此操作。无需提前声明,只需对math

这将名称的数量保持在合理的大小(大程序中的问题),但仍然使Python可以使用许多模块。

最新更新