5.1 再谈 print 和 import
随着你对Python的认识越来越深入,可能发现有些你自以为很熟悉的方面隐藏着让人惊喜的特性。下面就来看看print和import隐藏的几个特性。虽然print现在实际上是一个函数,但以前却是一种语句,因此在这里进行讨论。
提示 对很多应用程序来说,使用模块logging来写入日志比使用print更合适,详情请参阅第19章。
5.1.1 打印多个参数
你知道, print可用于打印一个表达式,这个表达式要么是字符串,要么将自动转换为字符串。但实际上,你可同时打印多个表达式,条件是用逗号分隔它们:
>>> print('Age:', 42)
Age: 42
如你所见,在参数之间插入了一个空格字符。在你要合并文本和变量值,而又不想使用字符串格式设置功能时,这种行为很有帮助。
>>> name = 'Gumby'
>>> salutation = 'Mr.'
>>> greeting = 'Hello,'
>>> print(greeting, salutation, name)
Hello, Mr. Gumby
如果字符串变量greeting不包含逗号,如何在结果中添加呢?你不能像下面这样做:
print(greeting, ',', salutation, name)
因为这将在逗号前添加一个空格。下面是一种可行的解决方案:
print(greeting + ',', salutation, name)
它将逗号和变量greeting相加。如果需要,可自定义分隔符:
>>> print("I", "wish", "to", "register", "a", "complaint", sep="_")
I_wish_to_register_a_complaint
你还可自定义结束字符串,以替换默认的换行符。例如,如果将结束字符串指定为空字符串,以后就可继续打印到当前行。
print('Hello,', end='')
print('world!')
上述代码打印Hello, world!①。
5.1.2 导入时重命名
从模块导入时,通常使用
import somemodule
或使用
from somemodule import somefunction
或
from somemodule import somefunction, anotherfunction, yetanotherfunction
或
from somemodule import *
仅当你确定要导入模块中的一切时,采用使用最后一种方式。但如果有两个模块,它们都包含函数open,该如何办呢?你可使用第一种方式导入这两个模块,并像下面这样调用函数:
module1.open(...)
module2.open(...)
但还有一种办法:在语句末尾添加as子句并指定别名。下面是一个导入整个模块并给它指定别名的例子:
>>> import math as foobar
>>> foobar.sqrt(4)
2.0
下面是一个导入特定函数并给它指定别名的例子:
>>> from math import sqrt as foobar
>>> foobar(4)
2.0
对于前面的函数open,可像下面这样导入它们:
from module1 import open as open1
from module2 import open as open2
领取专属 10元无门槛券
私享最新 技术干货