如何写一个返回多个值的函数
函数的return 语句只能返回一个值,可以是任何类型。
因此,我们可以“返回一个 tuple类型,来间接达到返回多个值
”。
例: x 除以 y 的余数与商的函数
def F1 ( x, y ):
a = x % y
b = (x-a) / y
return ( a,b ) # 也可以写作
return a, b
(c, d )= F1( 9, 4) # 也可以写作 c , d
= F1 ( 9, 4 )
print c ,d
结果显示: 1, 2
Python
与大多数其它语言一样有局部变量和全局变量之分, 但是它没有明显的变量声明。变量通过首次赋值产生, 当超出作用范围时自动消亡。
例 3.17. 定义 myParams
变量
if
__name__ == "__main__"
:
myParams = {"server"
:"mpilgrim"
, \
"database"
:"master"
, \
"uid"
:"sa"
, \
"pwd"
:"secret"
\
}
首先注意缩进。 if
语句是代码块, 需要像函数一样缩进。
其次, 变量的赋值是一条被分成了多行的命令, 用反斜线 (“\
”)
作为续行符。
当一条命令用续行符 (“\
”) 分割成多行时,
后续的行可以以任何方式缩近, 此时 Python
通常的严格的缩近规则无需遵守。如果您的 Python
IDE
自由对后续行进行了缩近, 您应该把它当成是缺省处理, 除非您有特别的原因不这么做。
严格地讲, 在小括号, 方括号或大括号中的表达式 (如 定义一个 dictionary
) 可以用或者不用续行符 (“\
”) 分割成多行。甚至在不是必需的时候,
我也喜欢使用续行符, 因为我认为这样会让代码读起来更容易, 但那只是风格的问题。
第三, 您从未声明过变量 myParams
, 您只是给它赋了一个值。这点就象是 VBScript
没有设置 option
explicit
选项一样。幸运的是, 与 VBScript
不同的是, Python
不允许您引用一个未被赋值的变量,
试图这样做会引发一个异常。
3.4.1. 变量引用
例 3.18. 引用未赋值
的变量
>>>
x
Traceback (in