写程序的终极原则:高内聚,低耦合 ---> high cohesion low coupling
设计函数最为重要的原则:单一职责原则(一个函数只做好一件事情) ---> 高度内聚
模块调取隐藏判定:if name == 'main':
# __name__是一个隐藏变量,它代表了当前模块(文件)的名字
# 如果直接通过Python解释器运行example16.py文件,__name__的值是__main__
# 如果是在其他的模块(文件)中导入了example16,那么此时__name__的值就是example16
if __name__ == '__main__':
print('当前文件执行会输出的内容,调取文件则不会输出')
# 输出内容为__main__
print(__name__)
如果要使用其他文件(模块)中定义的函数,
方法一:可以通过import导入模块,然后通过“模块名.函数名”的方式调用函数;
方法二:直接从模块中导入函数 ---> “from 模块 import 函数” ---> 直接通过函数名调用函数
实际上就和调用Python标准库是一样的,只不过库名换成了文件名
import导入函数、模块时,可以使用as(alias)关键字进行别名
import random
import example16
data = [random.randrange(1, 101) for _ in range(10)]
print(f'平均分{example16.average(data)}')
print(f'中位数{example16.median(data)}')
import random
from example16 import average as avg, median
data = [random.randrange(1, 101) for _ in range(10)]
print(f'平均分{avg(data)}')
print(f'中位数{median(data)}')
example16
样本数据描述性统计信息的一些函数
import math
def ptp(data):
"""求极差(全距)
:param data: 一组数据
:return: 极差
"""
return max(data) - min(data)
def average(data):
"""求均值"""
return sum(data) / len(data)
def variance(data):
"""求方差"""
temp = average(data)
list_temp = [(val - temp) ** 2 for val in data]
# 整除的话,返回的就是int。用除法的话,返回是float
return sum(list_temp) / (len(data) - 1)
def standard_deviation(data):
"""求标准差"""
return math.sqrt(variance(data))
def median(data):
"""求中位数"""
# 得到一个新列表,不可以直接在原先列表上进行排序
temp, size = sorted(data), len(data)
if size % 2 == 0:
# 切片
return average(temp[size // 2 - 1: size // 2 + 1])
else:
return temp[size // 2]
标签:__,example16,调用,return,函数,temp,import,data,隐藏
From: https://www.cnblogs.com/danlis/p/17682333.html