[转载] Python——函数练习(包括简单递归)

参考链接: Python中的复数2(重要函数和常量)

Python——函数练习(包括简单递归,参数传递) 

python排序函数 

list.sort( key=None, reverse=False)

 

reverse – 排序规则, reverse = True 降序, reverse = False 升序(默认)。 

已知三边求三角形面积 海伦公式 : 

 p=(a+b+c)/2

 S=sqrt[p(p-a)(p-b)(p-c)]

 

输出逆序字符串 

s="axjnxk"

print(s[::-1])

 

忽略点 

s='abc'

for i in s:

    s[i]...

    pass

 

#i是字符串,不能当索引! 

 匿名函数 把一个表达式当成函数在用  求阶乘  

def df(n):

    if n<=1:

        n=1

    else:

        n*df(n-1)

 

-斐波那契数列(递归实现) 

def Fibonacci(n):

    if n==0:

        return 0

    elif n==1:

        return 1

    else:

        return Fibonacci(n-1)+Fibonacci(n-2)

 

n=int(input("输入整数:"))

print("前%d为斐波那契数列:"%n,end='')

for i in range(1,n+1):

    print('%d'%Fibonacci(i),end='')

print()

 

实现结果: 

输入整数:10

前10为斐波那契数列:11235813213455

 

 

参数传递 

不变参数 

在程序中只能使用,不可修改的参数。如:整数、实数、复数、字符串、逻辑值、元组(常量和元组)作用:传递结束后,互不影响 

可变参数 

在程序中可以修改的参数(列表,字典等)作用:将其u的id传给形参v后。两者建立了联系,同时引用一个对象(指向同一内存地址id)。后续函数内部修改v的值,会同时修改u的值特别:如果在函数内部重新修改整个可变参数v(如列表),则会给v重新分配一个id,不会影响u的值。 

 

def fu(x,y):

    x=[6,6,6]

    y['r']=6

    print('调用内部',x,y)

u=[1,3,4,45,6]

v={'a':1,'b':2,'e':5}

print("before:",u,v)

fu(u,v)

print(u,v)

 

result:(x全部修改了,y只是加了一个元素)) 

before: [1, 3, 4, 45, 6] {'a': 1, 'b': 2, 'e': 5}

调用内部 [6, 6, 6] {'a': 1, 'b': 2, 'e': 5, 'r': 6}

 [1, 3, 4, 45, 6] {'a': 1, 'b': 2, 'e': 5, 'r': 6}

 

默认值参数 

#没有赋值的放前面,赋值的放后面 

def Person_Iofo(like,name="j大",age=18):   

    print("name:", name)

    print("age", age)

    print("like", like)

 

#只有一个参数的话,默认赋值给没有赋值的参数,接下来的顺序按原顺序 

Person_Iofo("钱",18,age=10) 

 

不定参数 

args表示任何多个无名参数,它是一个 tuple ;* kwargs表示关键字参数,它是一个dict。并且同时使用*args和 ** kwargs时,args参数必须列在 ** kwargs前,像foo(a=1, b=‘2’, c=3, a’, 1, None, )这样调用的话,会提示语法错误“SyntaxError: non-keyword arg after keyword arg”。 

此段话转自https://www.cnblogs.com/fengmk2/archive/2008/04/21/1163766.htmllink 看这个就懂了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值