在python中,可以将函数存储在称为模块的独立文件中,再将模块导入到主程序之中,从而隐藏程序代码的细节,将重点放在高层逻辑上。
创建模块
将一个或多个函数放在一个独立的文件中,这个文件就成了一个模块。文件名就是模块名,后缀名是.py
。比如模块sum_up
的文件名就是sum_up.py
。
现在让我们创建三个模块:
第一个模块是say_something
,下面是say_something.py
文件的内容:
def say_hello ():
"""显示欢迎信息"""
print ("你好!我能计算几个数字之和!")
username = input ("你的名字是? ")
print ("欢迎, " + username + ". 现在开始吧!")
def say_result (sum_num):
"""输出计算结果"""
print ('它们的和是: ' + str(sum_num))
def say_bye ():
"""显示结束信息"""
print ('感谢您的参与,再见!')
第二个模块是get_list
,下面是get_list.py
文件的内容:
def get_numbers_str_list ():
"""得到用户输入的字符串列表"""
numbers_str = input ("请输入您的数字,用空格分割: ")
numbers_str = numbers_str.strip()
numbers_str_list = numbers_str.split()
return numbers_str_list
def get_numbers_list (numbers_str_list):
"""将字符串列表转化成数字列表"""
numbers_list = list()
for number in numbers_str_list:
try:
number = float (number)
except:
print ('您输入的不是数字, ' + number)
exit ()
numbers_list.append(number)
return numbers_list # 返回了列表
最后一个是sum_up
模块,下面是sum_up.py
文件的内容:
def sum_up (numbers):
"""求和"""
count = 0
count = sum (numbers)
return count # 返回了数字
导入模块
要在其他文件中使用模块,需要将其导入:
import say_something
这个例子导入了say_something
模块。
如果只导入某个模块中特定的函数,可以像下面这样:
from say_something import say_hello()
这个例子从say_something
模块中导入了say_hello()
函数(这意味着不能使用模块中其他函数)。
可以为模块或者函数起一个别名:
# get_list模块的别名为gl
import get_list as gl
# say_something模块中say_hello()函数的别名是sh
from say_something import say_hello as sh
使用模块
如果按模块导入,则需要使用模块名.函数名()
的格式调用函数:
import say_something as ss
ss.say_hello()
如果只导入了特定的函数,则可直接使用函数:
from say_something import say_hello as sh
sh()
下面我们实现程序的主体逻辑:
import get_list as gl
import say_something as ss
import sum_up as su
ss.say_hello()
numbers_str_list = gl.get_numbers_str_list()
numbers_list = gl.get_numbers_list (numbers_str_list)
sum_of_numbers = su.sum_up (numbers_list)
ss.say_result (sum_of_numbers)
ss.say_bye()
程序执行如下:
$ python sum_numbers.py
你好!我能计算几个数字之和!
你的名字是? mwang
欢迎, mwang. 现在开始吧!
请输入您的数字,用空格分割: 2.2 4.5 6.7
它们的和是: 13.4
感谢您的参与,再见!
网友评论