zoukankan      html  css  js  c++  java
  • python之函数的使用

    备注:本篇文章主要讲一讲函数及集合的一些常用用法:

    一、首先先看下,集合(set):

         集合的特点:无序、不重复(这点跟字典有点像)

         <1>,在需要访问集合的时候,由于集合本身是无序的,所以不能为集合创建索引或切片操作,只能循环遍历或使用in、not in来访问或判断集合元素,比如下面的操作

    1 set_test = {'a','b','c'}
    2 print('a' in set_test) ==》返回结果true 3 for i in set_test: 4 print(i)

        <2>,集合中比较特殊的一个删除元素的方法是discard方法,它的不同之处在于如果集合中没有所要删除的元素,就返回None,其它添加以及移除的方法跟列表和字典差不多,这里就不做过多的介绍了。

        <3>,其它数据结构中没有的是,而且在集合中用的比较多的方法有,difference、update等。下面这两个方法做简单的介绍及对比:

               difference:不多说,看实例       

    1 set1 = {"a","b","c"}
    2 set2 = {'b','c','d'}
    3 print(set1.difference(set2))  
    #就会输出{'a'}
                #也就是说,会把set1中有的,set2中没有的打印出来

                update:再看实例(看实例,你能很快的理解和记住用法)

             

    1 a = set('boy')
    2 print(a)
    3 str1 = 'ma'
    4 a.update(str1)
    5 print(a)
    #下面市输出的结果
    {'y', 'o', 'b'}
    {'y', 'a', 'm', 'o', 'b'}
    #相信你一眼就看出来了,update是把str1字符串更新到a集合中,并去重!

    二、函数

          函数还是相当重要的,不管是从写简单的脚本开始,还是到面向对象,都离不开函数的使用,所以对它的掌握,要更深一点,下面列出我对函数的理解和做过的实例:

          <1>,定义函数是使用

                 def 函数名(传递的参数): 

                      statement

                      return [value]                //函数的定义是使用这个格式来定义的,return不是必须的,如果没有写return的话,默认返回的是None;如果写了return,那么return下面的任何语句都不会再执行了。

          <2>,变量:

                 在函数内部定义的变量属于局部变量,函数内调用变量的时候,会先优先选择局部变量,然后再是全局变量。(如果想在函数内使用全局变量的值,必须使用global),看下面的例子:

                

    1 #没使用global的情况
    2 name = 'ma'
    3 def uname():
    4     name = 'da'
    5     print(name)
    6 uname()
    7 
    8 输出==》da
    1 #使用global的情况
    2 name = 'ma'
    3 def uname():
    4     global name
    5     print(name)
    6 uname()
    #输出==》m

                还有一种调用方式,是把局部变量的值,用到全局变量中来:

    1 name = 'ma'
    2 def uname():
    3     global name
    4     name = 'da'
    5 uname()
    6 print(name)     #输出===》da

          <3>,参数的传递:(注意:函数传递参数的时候,传递的是参数的引用,而不是参数的值)

                 def  funcA(a,b):

                       print a

                       print b

                 funcA(1,2)

                 // 这是一个简单的参数调用,传递给a,b值1,2;而且这种传递必须是等量的,就是定义函数的时候,有几个参数接收,传递值的时候,就必须给几个值,多一个或者少一个都会报错。

                def funcB(a,b=2):

                     print a

                     print b

                // 像这种情况,调用函数的时候,只需要给a一个值,就可以了。这其中的b就叫作指定参数。

                下面这一段代码,是传递的动态参数,动态参数有个特点,就是带有*,看下面的实例来进一步了解:

    1 def funcA(*args):
    2     print(args)
    3 funcA(1,2)
    4 
    5 def ff(**kargs):
    6     print(kargs)
    7 ff(k1='v1',k2='v2')
    #输出为:
    (1, 2)
    {'k2': 'v2', 'k1': 'v1'}

              说明:可以看出带一个*或者带两个**的,传递的都是动态参数,只不过,带一个*的传递的是单个元素,或者是字符串;而带有两个**的,传递的是一对键值对,输出的是字典。两者相结合也被成为‘万能参数’。

             

  • 相关阅读:
    C++面向对象高级编程(下)第二周-Geekband
    C++面向对象高级编程(下)第一周-Geekband
    C++面向对象高级编程(下)-Geekband
    堆,栈,内存管理, 拓展补充-Geekband
    C++面向对象高级编程(上)-Geekband
    MFC 多屏显示
    Open CASCADE Technology: IGES Support
    JAVA反射
    HashMap
    Linux 系统编程
  • 原文地址:https://www.cnblogs.com/madq-py/p/5536125.html
Copyright © 2011-2022 走看看