zoukankan      html  css  js  c++  java
  • Python第一天

    ---恢复内容开始---

    (一)定义一个函数

    def 函数名(参数):

      函数体

      return 返回值

    例:

    def mySum(x , y):
      return int(x)+int(y)
    print(mySum(1,2))

    如果没有return语句,函数执行完毕后也会返回结果,只是结果为 None。也可以写成return

    (二)python函数可以返回“多个值”(其实是个集合)

    比如在游戏中经常需要从一个点移动到另一个点,给出坐标、位移和角度,就可以计算出新的坐标:# math包提供了sin()和 cos()函数,我们先用import引用它

    import math
    def move(x, y, step, angle):
        nx = x + step * math.cos(angle)
        ny = y - step * math.sin(angle)
        return nx, ny

    使用这个函数:

    x, y = move(100, 100, 60, math.pi / 6)
    print (x , y) ======> 151.961524227 70.0
    这只是一种假象,Python函数返回的仍然是单一值:
    r = move(100, 100, 60, math.pi / 6)
    print (r)=======>(151.96152422706632, 70.0)---只是一个tuple

    (三)递归函数:

    计算阶乘:

    def fact(n):
        if n==1:
            return 1
        return n * fact(n - 1)

    使用递归函数需要注意防止栈溢出。在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。可以试试计算 fact(10000)。

    (四)定义可变参数:

    def func(*params):

      ...

    函数定义成这样之后我们就可以传入任意数量的参数如:func(1,2)  func(1,2,3)

    例:

    def mySum(*params):
        sum = 0
        for value in params:
            sum += int(value)
        return sum
    print(mySum(1,2,3))

    打印出6

    
    

    ---恢复内容结束---

  • 相关阅读:
    在线添加磁盘,扩展LVM卷案例
    iOS 通过代码关闭应用程序
    hdu1443(约瑟夫环游戏的原理 用链表过的)
    Mapper映射语句高阶应用——ResultMap
    SeekBar和RatingBar
    Myeclipse中如何修改Tomcat的端口号
    新浪微博客户端开发之OAuth认证篇
    层层递进Struts1(六)自定义转换器
    CF 13E Holes 【块状链表】
    《mysql必知必会》学习_第13章
  • 原文地址:https://www.cnblogs.com/orlion/p/4750545.html
Copyright © 2011-2022 走看看