• web前端学习python之第一章_基础语法(二)


    web前端学习python之第一章_基础语法(二)

    前言:最近新做了一个管理系统,前端已经基本完成,

    但是后端人手不足没人给我写接口,自力更生丰衣足食,

    所以决定自学python自己给自己写接口哈哈哈哈~

    上一章内容:web前端学习python之第一章_基础语法(一)

    函数的定义和使用

    内置函数

    python有很多内置的有用的函数,可以直接调用,参考网址:https://docs.python.org/3/library/functions.html#abs

    数据类型转换

    其他数据类型转为整数int()

    >>> int('123')
    123
    >>> int(12.34)
    12
    >>> float('12.34')
    12.34
    >>> str(1.23)
    '1.23'
    >>> str(100)
    '100'
    >>> bool(1)
    True
    >>> bool('')
    False

    函数名

    函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”

    >>> a = abs # 变量a指向abs函数
    >>> a(-1) # 所以也可以通过a调用abs函数
    1

    定义函数

    在python中,定义一个函数需要使用def语句

    def my_abs(x):
        if x >= 0:
            return x
        else:
            return -x
    
    //内容不细讲,js函数是function,这里的关键字改成了def,不知道python有没有类似于箭头函数那种的写法

    return意义与js一致,代码执行到return是,函数就执行完毕,并将结果返回,如果没有return函数执行完毕后也会返回结果,只是结果为none,return none可简写为return

    引入函数

    如果你已经把my_abs()的函数定义保存为abstest.py文件了,

    那么,可以在该文件的当前目录下启动Python解释器,

    from abstest import my_abs来导入my_abs()函数,注意abstest是文件名(不含.py扩展名):

    │>>> from abstest import my_abs                         
    │>>> my_abs(-9)                                          
    │9

    空函数

    如果想定义一个什么事也不做的空函数,可以用pass语句:

    def nop():
        pass

    定义一个空函数有什么意义呢?

    pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来

    pass也可以用在其他语句中

    if age >= 18:
        pass

    传参的数据类型检查

    有时候我们会传一些不恰当的参数导致代码报错,我们可以进行数据类型检查,数据类型检查用内置函数isinstance()实现

    def my_abs(x):
        if not isinstance(x, (int, float)):
            raise TypeError('bad operand type')
        if x >= 0:
            return x
        else:
            return -x

    默认参数(默认参数必须指向不变对象!)

    我们传递参数的时候如果参数传的不全就会报错,我们可以给一些参数设置默认参数

    def power(x, n=2):
        s = 1
        while n > 0:
            n = n - 1
            s = s * x
        return s

    小坑坑

    def add_end(L=[]):
        L.append('END')
        return L
    
    //调用第二次和第三次时
    >>> add_end()
    ['END', 'END']
    >>> add_end()
    ['END', 'END', 'END']
    
    //Python函数在定义的时候,默认参数L的值就被计算出来了,即[],因为默认参数L也是一个变量,它指向对象[],
    //每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了。


    //可以使用none这个不变对象来实现
    def add_end(L=None): if L is None: L = [] L.append('END') return L

    可变参数

    由于参数个数不确定,我们首先想到可以把a,b,c……作为一个list或tuple传进来,

    def calc(*numbers):
        sum = 0
        for n in numbers:
            sum = sum + n * n
        return sum
    
    
    //*是重点

    如果已有一个list或者tuple,要调用一个可变参数怎么办

    >>> nums = [1, 2, 3]
    >>> calc(*nums)
    14

    这样有点类似与apply,是把参数一个个传的或者类似于[...nums]

    关键字函数(**可传可不传,可传任意个)

    调用函数时可以只传入必须参数和任意个数的关键字参数

    def person(name, age, **kw):
        print('name:', name, 'age:', age, 'other:', kw)

    >>> person('Bob', 35, city='Beijing')
    name: Bob age: 35 other: {'city': 'Beijing'}
    >>> person('Adam', 45, gender='M', job='Engineer')
    name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
  • 相关阅读:
    回答提出的问题1-17章
    《构建之法》第13-17章读书笔记
    读《一个程序员的生命周期》有感
    构建之法的第十、十一、十二章读书笔记
    阅读《构建之法》第8,9,10章
    5.2-5.3
    作业5.1测试与封装
    读《构建之法》5.6.7 思考
    读《构建之法》的思考
    作业2 结对思则运算
  • 原文地址:https://www.cnblogs.com/yangyangxxb/p/10413183.html
Copyright © 2020-2023  润新知