zoukankan      html  css  js  c++  java
  • python基础之

    python编程的3种模式
    1:面向对象:对函数进行分类和封装,定义用class。
    2:面向过程:定义用def,简单讲(根据业务逻辑从上到下垒代码)。特性:代码重用,一致性,可扩展
    3:函数式编程:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可,定义用def。python不完全支持函数式编程。

      存函数式编程语言为:lisp,hashshell,erlang

    数据类型分为:

      1:不可变类型:数字,字符串,元组。

      2:可变类型:列表,字典,集合等


    函数定义:逻辑结构化和过程化的一种编程方法
      定义方法:
        def test(x):
          "注释"
          x += 1
          return x

    函数返回值总结:
    1:返回值数量=0,返回NONE
    2:返回值数量=1,返回object
    3:返回值数量>1,返回tuple(元组)

    函数的参数分为:形式参数,实际参数。
    形参:定义函数时指定的参数。
    举例:
    def fun(x,y) 其中的x,y叫做形参
    实参:调用函数时为函数实际赋与的值叫实参。
    举例: def fun(x,y): .....
    fun(1,y=2) 这里调用函数赋予真实的值叫实参

    函数形参的种类有:4种
    1:位置参数,按照形参对应实参的位置,为实参一一赋值。 如:def fun1(x,y); fun1(1,2)
    2:关键字参数:函数赋值时指定形参参数。如:def fun1(x,y); fun1(x=1,y=2)
    提示:当位置参数和关键字参数同时存在,位置参数必须在关键字参数的前面,并且参数要与形参对应。
    3:默认参数:调用函数的时候,默认参数非必须传值,赋值有2种方式(位置参数赋值和关键字赋值)
    默认参数的用途:一般为程序定义默认值,
    4:参数组(可变长):分2种参数。
    1:*args:将多个位置参数转为元组
    2:**kwargs:将多个关键字参数转为字典

    举例:*args:接收多个位置参数,转换为元祖
    def fun(*args): print(args)
    调用以上函数赋值方式:
    1:fun(1,2,3,4,5) 传入多个位置参数
    2:fun(*[1,2,3,4,5] 以*号标识传入一个列表

    同时带有位置参数和可变参数写法:
    def fun(x,*args):
    print(x)
    print(args)
    fun(1,2,3,4) 打印结果为:x结果是1,args结果是2,3,4

    举例:**kwargs:接收多个关键字参数,转换为字典
    def fun(**kvargs):
    print(kvargs)
    print(kvargs['k1'])
    赋值方式:
    1:fun(k1='v1',k2='v2',k3='v3')这里以关键字参数赋值
    2:fun(**{'k1'='v1','k2'='v2','k3'='v3'})

    混合写法举例
    def test4(name,age=18,*args,**kvargs):
    print(name)
    print(age)
    print(args)
    print(kvargs)
    赋值
    test4('jeck',20或者age=20,*[1,2,3],k1='v1',k2='v2')
    打印结果为:
    jeck
    20
    [1,2,3]
    {'k1':'v1','k2':'v2'}

    变量:局部变量,全局变量

    1:局部变量:在子程序(也叫函数)中定义的变量,它的作用域就是这个函数(子程序)。

    举例:def fun():

           name = 'jeck'  这个就是函数中定义的局部变量,只能在函数中使用,函数结束后此变量也就失效。

    注:可以通过在此变量的上方写入:global name 将此变量声明为全局变量。(一般不要使用此方法)

    2:全局变量:在程序一开始定义的变量,也就是顶格写的变量。作用域就是整个程序。

    另:当全局变量和局部变量同名时:在函数内局部变量起作用,其他地方全局变量起作用。

    局部变量影响全局变量的使用情况:
      1:当全局变量类型是:字符串,数字,元组,(都为不可变类型)时,局部变量无法修改全局变量。
      2:当全局变量类型是:列表,字典,集合等可变类型时,局部变量可以修改全局变量。

    函数 -- 递归:就是函数不断的对自身进行调用,最大递归次数:999次

    特性:
      1:必须要有一个明确的结束条件
      2:每次进入更深一层递归时,问题规模相比上次递归都应有所减少
      3:效率不高,层数过多会导致栈溢出

    简单举例:

    def fun(n):
        print(n)
        if n//2 > 0:
            return fun(n//2)
        print('---->',n)
    fun(10)
    View Code

     

  • 相关阅读:
    自闭的D7
    D2
    Codeforces Round #531 (Div. 3)
    hello 2019 D
    牛客练习赛36B
    cf954H
    gym102007 E
    Gym 101972
    Gym 101810
    试题 历届试题 青蛙跳杯子(bfs)
  • 原文地址:https://www.cnblogs.com/zy6103/p/6778325.html
Copyright © 2011-2022 走看看