"""
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,
并且0的阶乘为1。自然数n的阶乘写作n!。
即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n
"""deffactorial(num):
result = 1for i in range(1, num + 1):
result *= i
return result
m = int(input('m = '))
n = int(input('n = '))
print(factorial(m) // (factorial(n) * factorial(m - n)))
# factorial函数也是内置函数,事实上要计算阶乘可以直接使用这个# 现成的函数而不用自己定义# 通过导入的math模块,来调用factorial函数来求阶乘运算import math
m = int(input('m = '))
n = int(input('n = '))
print(math.factorial(m) // (math.factorial(n) *
math.factorial(m - n)))
函数的参数
"""
python函数与其他语言的函数,有很大的不同。其中一个显著的区别,
就是Python对函数参数的处理。
在Python语言中,函数的参数可以有默认值,也可以为可变参数。
因此python不需要对函数进行重载,因为在定义函数之时,就有了多种
不同的使用方式
"""# 1 摇色字游戏defroll_dice(n=2):# 如果没有指定的话,默认为2
total = 0#for _ in range(n):
total = total + random.randint(1, 6)
# total += random.randint(1, 6)return total
print(roll_dice()) # 为默认值2个
print(roll_dice(3)) # 为3个参数 摇3个色子defadd(a=0, b=0, c=0):# 给参数设定了3个默认值,0值return a + b + c
print(add(2))
print(add(2, 3))
print(add(3, 5, 7))
print(add(b=50, c=23, a=44))
# 传递参数的时候,可以不按照事先设定好的顺序进行传递# 还可以对函数的参数有更好的实现方法,有调用参数的人具体来决定,即可变参数# 在参数前使用*表示args是可变参数,即调用add()函数的时候,可以传入0个,# 或者多个defadd(*args):
total = 0for w in args:
total += w
return total
print(add())
print(add(1))
print(add(2, 3, 5))
print(add(3, 4, 6, 9))
# 下面的是需要在同一个模块下运行# __name__是Python中一个隐含的变量它代表了模块的名字, # 只有被Python解释器直接执行的模块的名字才是__main__deffoo():passdefbar():passif __name__ == '__main__':
print('call foo()')
# foo()
print('call bar()')
# bar()
三元条件运算符的使用
# 1 需要一个程序从输入的三个数中找出最大的那个数.
a = int(input('a = '))
b = int(input('b = '))
c = int(input('c = '))
if a > b:
the_max = a
else:
the_max = b
if the_max < c:
the_max = c
print('最大的数为%d' % the_max)
# 使用三元条件运算符来改写上面的代码
a = int(input('a = '))
b = int(input('b = '))
c = int(input('c = '))
the_max = a if a > b else b
the_max = c if c > the_max else the_max
print('最大的数为%d' % the_max)
使用辅助函数
defthe_max(x, y):# 定义一个the_max的函数,返回的值通过三元条件运算来判断,# 大的在if前,小的在else后return x if x > y else y
a = int(input('a = '))
b = int(input('b = '))
c = int(input('c = '))
print('最大的一个数是%d' % the_max(the_max(a, b), c)) # 两个嵌套# 使用Python的内置函数max来获取最大的数# Python内置的max函数利用了Python对可变参数的支持,# 允许一次性传入多个值或者一个迭代器并找出那个最大值
a = int(input('a = '))
b = int(input('b = '))
c = int(input('c = '))
print('最大的一个数是%d' % max(a, b, c))