学习Python第二天整

img

img


关于第一题,倘若直接在Python编写应该是直接import.math
math.sqrt(5)
叭,但倘若放到IDLE当中我不知道应该如何编写
第四题我完全就GG嘞😭

import math
import numpy

help(math)
help(numpy)

print(math.sqrt(5))
print(numpy.sqrt(5))

img

在py文件中经常看到图中这句代码,初学者,特别是学习过其他语言,非系统的学习python基础语法的,看到它都会有些懵,它是做啥的?为什么要这样做?

edbc537c4321

"name" 示例

一、__name__的作用:

__name__是python的一个内置类属性,它存储模块的名称。

python的模块既可以被调用,也可以独立运行。而被调用时__name__存储的是py文件名(模块名称),独立运行时存储的是"main"。

那么它的作用主要就是用来区分,当前模块是独立运行还是被调用。

二、代码中的具体的应用

具体情境:

1、项目经理给你安排一个任务,做一个创建一个组合列表的模块

2、我们编写过程,一般会在结尾,写上一些测试信息来检测效果、调试。

BuildComb.py

from itertools import combinations

def build_combination(n,k):

result = combinations(range(n),k)

return result

#以下为针对模块的测试信息

a = build_combination(4, 3)

for i in a:

print(i)

3、这样问题就产生了,经理调用你的模块时,会运行你的测试内容,如图:

edbc537c4321

调用该模块的效果

***当然你可能会想,没关系的,我只要给经理之前删除测试相关内容,问题就解决了。

是的确实可行,只是通常经理可能会发现模块的问题,或者是实现的效果需要调整,那么我们再次修改模块,又需要添加这些测试信息,交付的时候还需要删除它。显然它不是最佳方案。

4、这时只要在测试内容前面添加这句代码 (完整代码见:图1("name" 示例))

if name == 'main':

那么,在调用该模块时 name 返回模块名称 BuildComb,也就是!= 'main', 自然测试内容就不会被运行。反之,自己编写调试时,单独运行模块则会运行测试内容。

你是直接双击py文件的吗?

import os
import math
print(math.sqrt(5))
os.system("pause")
import math
print(math.sqrt(5))
a=input("请按任意键继续...")

属性分析的话一般,help一下就能看出它里面有什么东西,另外还有查看两个数据类型一致不一致isinstance() ,查看它属于什么类type()
对于__name__,你定义几个变量然后help查看一下(name)是否有什么变化,或者你也可以将当前py文件作为一个包用,然后用另外一个py文件加载看看会有什么情况。
文件一:test.py

help(__name__)
a='a'
help(__name__)

文件二:

import test