zoukankan      html  css  js  c++  java
  • 【python】入门学习(四)

    函数:

    定义函数

    #area.py
    
    from math import pi
    def area(radius):
        """Return the area of a circle with the given radius."""
        return pi * radius ** 2
    >>> ================================ RESTART ================================
    >>> 
    >>> area(5.5)
    95.03317777109125
    >>> print(area.__doc__)
    Return the area of a circle with the given radius.
    >>> 

    doctest #可用于自动运行文档字符串中的python示例代码

    全局变量访问时一定要加上global

    #error
    name = 'Jack'
    def say_hello():
        print('Hello ' + name + '!')
    def change_name(new_name):
        name = new_name
    >>> say_hello()
    Hello Jack!
    >>> change_name('Mary')
    >>> say_hello()
    Hello Jack!
    #correct
    name = 'Jack'
    def say_hello():
        print('Hello ' + name + '!')
    def change_name(new_name):
        global name
        name = new_name
    >>> say_hello()
    Hello Jack!
    >>> change_name('Mary')
    >>> say_hello()
    Hello Mary!

    main():被认为是程序的起点,可选不一定要。运行时必须输入main()

    python中参数的传递都是按引用传参,python支持按值传参

    在引用传参中,无法修改参数的值。下面的函数起作用:

    #reference.py
    def set1(x):
        x = 1
    >>> ================================ RESTART ================================
    >>> 
    >>> y = 5
    >>> set1(y)
    >>> y
    5

    函数参数默认值:

    注意:包含默认参数的形参一定要放在无默认参数的形参后面

            只有第一次调用函数时给默认参数赋值! #还不理解,先记下来

    #greetings.py
    def greet(name, greeting = 'Hello'):
        print(greeting, name + '!')
    >>> greet('bob')
    Hello bob!
    >>> greet('bob', 'Good morning')
    Good morning bob!

    使用关键字传参,即在使用时也指明形参,可以不理会顺序,很好用:

    #greetings.py
    def greet(name = 'Bob', greeting = 'Hello'):
        print(greeting, name + '!')
    >>> greet(greeting = 'Good evening', name = 'Mary')
    Good evening Mary!
    >>> greet(greeting = 'Good evening')
    Good evening Bob!

    也可以用模块化的方式来调用,模块中不包括main函数

    >>> import greetings
    >>> greetings.greet()
    Hello Bob!
    >>> dir(greetings)
    ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'greet']
  • 相关阅读:
    树状数组和线段树
    N皇后问题(函数式编程与过程式)
    单例模式
    BitSet
    蓄水池抽样问题
    关于动态规划的一些感想
    53最大子序和
    5最长回文子串
    139单词拆分
    91.解码方法
  • 原文地址:https://www.cnblogs.com/dplearning/p/3951490.html
Copyright © 2011-2022 走看看