def pressure(v, t, n):
"""Compute the pressure in pascals of an ideal gas.
Applies the ideal gas law: http://en.wikipedia.org/wiki/Ideal_gas_law
v -- volume of gas, in cubic meters
t -- absolute temperature in degrees kelvin
n -- particles of gas
"""
k = 1.38e-23 # Boltzmann's constant
return n * k * t / v
有点 man 的概念,但更像 jupyter notebook 的用法,将代码和说明放在一起,可惜不是 markdown,通过 print(pressure.__doc__) 就可以查看帮助信息
Python 有一个特殊的语法糖,断言 assert,要知道 Python 是解释性语言,逐行运行,那么通过断言就可以决定是否运行它下面的代码,不需要额外用一个 if 增加大缩进。而且可以直接在错误的时候推出程序并报告问题,方便检查。这在验证用户输入是否合法中非常有用,防御性编程了属于是。
def unique_digits(n):
"""Return the number of unique digits in positive integer n.
>>> unique_digits(8675309) # All are unique
7
>>> unique_digits(13173131) # 1, 3, and 7
3
>>> unique_digits(101) # 0 and 1
2
"""
digits = set()
while n > 0:
digits.add(n % 10)
n //= 10
return len(digits)