其实与 Java、php 基本类似,不过 python 设计得更简洁、灵活度更高。
[hermit auto="0" loop="0" unexpand="1" fullheight="0"]netease_songs#:541687281[/hermit]
以下为 python 中函数书写实例:
# -*- coding: utf-8 -*- def my_abs(x): #定义一个函数要使用
def
语句,依次写出函数名、括号、括号中的参数和冒号if x >= 0:
return x
else: return -x
可变参数
可变参数就是传入的参数个数是可变的
其实与定义一个list或tuple参数差不多,只不过在参数前面加了一个*号,在函数调用时自动组装为一个tuple,def calc(*numbers):
关键字参数
关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
命名关键字参数
作用:限制关键字参数的名字。命名关键字参数需要一个特殊分隔符*
,*
后面的参数被视为命名关键字参数。
def person(name, age, *, city, job):
print(name, age, city, job)
调用方式如下:
>>> person('Jack', 24, city='Beijing', job='Engineer')
Jack 24 Beijing Engineer
参数组合定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
递归函数
经典递归:
def fact(n):
if n==1:
return 1
return n * fact(n - 1)
尾递归:
def fact(n):
return fact_iter(n, 1)
def fact_iter(num, product):
if num == 1:
return product
return fact_iter(num - 1, num * product)
Python 标准的解释器没有针对尾递归做优化,任何递归函数都存在栈溢出的问题。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于