精华内容
下载资源
问答
  • Python中函数作用域

    2020-12-25 05:15:36
    python中,一个函数就是一个作用域 name = 'xiaoyafei' def change_name(): name = '肖亚飞' print('在change_name里的name:',name) change_name() # 调用函数 print("在外面的name:",name) 运行结果如下: 在...
  • python中函数-基础

    2016-09-19 15:50:00
    /usr/bin/python # -*- coding:UTF-8 -*- #定义函数 def changeStr(str): str=str+"abc"; print ("函数内取str:",str); return def changeint(i): i=i+1; print ("函数内取i:",i); retu...
    #!/usr/bin/python
    # -*- coding:UTF-8 -*-
    
    #定义函数
    def changeStr(str):
        str=str+"abc";
        print ("函数内取str:",str);
        return
    def changeint(i):
        i=i+1;
        print ("函数内取i:",i);
        return
    def changeme(mylist):
        mylist.append([1,2,3,4]),
        print ("函数内取值:",mylist)
        return
    mylist=[10,20,30];
    print ("函数前取值:",mylist);
    changeme(mylist);
    print ("函数后取值:",mylist);
    
    i=4;
    print (i)
    changeint(i);
    print (i)
    
    str="hallll";
    print (str);
    changeStr(str);
    print (str);

    执行以上代码:可以看到一下结果。

    可以看得出:

    在python中和别的语法中一样

    1.列表是按引用类型传递的。

    2.数字和字符串是按值类型传递的。

     

    转载于:https://www.cnblogs.com/zhangqi0924/p/5885461.html

    展开全文
  • Python中函数(1)

    2017-05-26 00:24:34
    1、自定义函数格式: def 函数名(元素):>>>def n_change(L,s): for element in L: if element in s: s.remove(element) else: s.extend(element) 以上函数,若element

    1、自定义函数

    格式: def 函数名(元素):

    >>>def n_change(L,s):
            for element in L:
                if element in s:
                    s.remove(element)
                else:
                    s.extend(element)
    

    以上函数,若element属于L,并且element属于s,则在s中移除这些元素;若s中没有这些元素,则在s中加入这些元素。定义后可以直接使用函数。

    >>>X1 = ['a','b','c','d']
    >>>X2 = ['a','b','e','f']
    >>>n_change(X1,X2)
    >>>print X2
    ['e','f','c','d']

    2、调用python自带函数

    2.1一些常见的函数

    (1)abs()——返回一个数的绝对值。(复数,返回复数的绝对值)

    >>>c = complex(1,1)
    >>>print c
    (1+1j)
    >>>abs(c)
    1.41421356

    (2)cmp(x,y)——比较x,y的大小.
    若x < y, 则返回-1;若x = y, 则返回0;若x > y, 则返回1.
    (3)int(),float(),str()——将输入值转化为整数,浮点数,字符串。
    (4)sum()——接受一个list作参数,并返回list所有元素的和。
    例:计算1 * 1+ 2 * 2+ 3 * 3+……..+100 * 100

    >>>L = []
    >>>x = 1
    >>>while(x<=100):
        L.append(x*x)
        x = x + 1
    >>>print sum(L)
    338350
    展开全文
  • Python中函数(二)

    2018-09-27 21:43:00
    在子程序定义的变量为局部变量,在程序一开始定义的变量为全局变量。 全局变量作用域为整个程序,局部变量作用域为定义该变量的子程序。 当局部变量与全局变量同名时,在定义局部变量的子程序内是局部变量起作用...

    一 局部变量与全局变量

    在子程序中定义的变量为局部变量,在程序一开始定义的变量为全局变量。

    全局变量作用域为整个程序,局部变量作用域为定义该变量的子程序。

    当局部变量与全局变量同名时,在定义局部变量的子程序内是局部变量起作用,在其他地方全局变量起作用。

    函数内无声明变量时,用的是全局变量:

     1 name = "abc"
     2 def change_name1():
     3     print(name)
     4 
     5 def change_name2():
     6     name = "123"
     7     print(name)
     8 
     9 change_name1()
    10 change_name2()
    输出:
    abc
    123

     

    如果函数内容无global关键字,优先读取局部变量,无法对全局变量赋值。

    当要子程序调用全局变量,并修改全局变量时在子程序变量前加 global :

     1 name = "abc"
     2 
     3 def change_name():
     4     global name
     5     name = "123"
     6     print(name)
     7 
     8 print(name)
     9 change_name()
    10 print(name)
    输出:
    abc
    123
    123

     nonlocal的用法:

    在嵌套函数中使用,想调用上一级函数的变量并修改时,要在本函数开头用nonlocal声明想要调用的变量

     1 def change_name1():
     2     name = "abc"
     3     print(name)
     4     def chang_name2():
     5         nonlocal name
     6         name = "123"
     7         print(name)
     8     chang_name2()
     9     print(name)
    10 
    11 
    12 change_name1()
    输出:
    abc
    123
    123

    前向引用----->>>>"函数即变量":在调用这个函数前如果没有定义该函数则会报错。

    函数内部的嵌套函数只能该函数直接调用,其他函数无法直接调用该函数。

    二 函数的递归

     

    在函数内部,可以调用其它函数。如果一个函数在其内部调用它自己,这个函数就是递归函数。

    1 def count(n):
    2     print(n)
    3     if n > 0:
    4         count(n-1)
    5     return 0
    6 
    7 count(5)
    输出:
    5
    4
    3
    2
    1
    0

    递归特性:

    • 必须要有一个明确的结束条件,否则就成了死循环
    • 每次进入更深一层递归时,问题规模都应该相比于上一次要少
    • 递归的执行效率不高,递归层次过多会导致栈溢出。

    引用网上找的图片

     

     

     三 匿名函数

    匿名函数就是不需要显示的指定函数。

    1 #一般函数
    2 def count(n):
    3     return n+1
    4 print(count(10))
    5 
    6 #换成的匿名函数
    7 count = lambda x:x+1
    8 print(count(10))

    匿名函数主要和其他函数一起用。

    四 函数式编程

    高阶函数,满足下面条件至一:

    1. 函数的传入参数是一个函数名
    2. 函数的返回值是一个函数

    map:

    #map函数 map(fun,num)  fun:函数;num:可迭代对象
    1
    num = [1,2,3,5,6,9,8] 2 def map_test(fun,num_l): 3 res = [] 4 for i in num_l: 5 re = fun(i) 6 res.append(re) 7 return res 8 9 print(map_test(lambda x:x-1,num)) 10 #map生成的是一个可迭代对象 11 print("内置map函数",list(map(lambda x:x-1,num)))
    输出:
    [0, 1, 2, 4, 5, 8, 7]
    [0, 1, 2, 4, 5, 8, 7]

    filter:

     1 n_people = ["1sb","2","3sb","4"]
     2 
     3 def filter_test(fun,str_l):
     4     res = []
     5     for i in str_l:
     6         if fun(i):
     7             res.append(i)
     8     return res
     9 
    10 print(filter_test(lambda n:n.endswith("sb"),n_people))
    11 #filter 函数,生成的是一个可迭代对象
    12 print("filter生成的是:",filter(lambda n:n.endswith("sb"),n_people))
    13 print(list(filter(lambda n:n.endswith("sb"),n_people)))
    输出:
    ['1sb', '3sb']
    filter生成的是: <filter object at 0x0000020FFB28C2E8>
    ['1sb', '3sb']

    reduce:

     1 num_l = [1, 2, 3, 4, 5, 6]
     2 
     3 def reduce_test(func, num , init=None):
     4     if init == None:
     5         str_l = num.copy()
     6         res = str_l.pop(0)
     7     else:
     8         res = init
     9     for i in str_l:
    10         res = func(res, i)
    11     return res
    12 
    13 print(reduce_test(lambda x,y:x+y,num_l))
    14 print(reduce_test(lambda x,y:x*y,num_l))
    15 
    16 from functools import reduce
    17 print("reduce生成的是:",reduce(lambda x,y:x+y,num_l))
    18 print("reduce生成的是:",reduce(lambda x,y:x*y,num_l))
    输出:
    21
    720
    reduce生成的是: 21
    reduce生成的是: 720

     

    转载于:https://www.cnblogs.com/kaixindexiaocao/p/9696534.html

    展开全文
  • python中函数作用域

    2021-01-21 16:17:11
    python中,一个函数就是一个作用域 name = 'xiaoming' def change_name(): name = 'sthu' print('在change_name里的name:',name) change_name() # 调用函数 print("在外面的name:",name) 运行结果如下: 在...

    在python中,一个函数就是一个作用域

    name = 'xiaoming'
    
    def change_name():
        name = 'sthu'
        print('在change_name里的name:',name)
    
    change_name()  # 调用函数
    print("在外面的name:",name)
    

    运行结果如下:

    在change_name里的name: sthu
    在外面的name: xiaoming
    

    我们再试一下在嵌套函数中是如何的寻找的?

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    age = 15
    def func():
        print('第一层age:',age)  # 第一层age: 15
    
        def func2():
            age = 73
            print("func2中的age:",age)  # func2中的age: 73
    
            def func3():
                age = 84
                print("func3中的age:",age)  # func3中的age: 84
    
            func3()  # 调用func3函数
    
        func2()  # 调用func2函数
    
    func()
    

    在以上嵌套函数中,就能够很好的说明一个函数就是一个作用域,那么我们现在稍微改一下代码看看情况?

    age = 15
    def func():
        print('第一层age:',age)  # 第一层age: 15
    
        def func2():
            print("func2中的age:",age)  # func2中的age: 15  # 看到没有,如果当前作用域里没有age变量,那么它就会往上找
    
            def func3():
                age = 84
                print("func3中的age:",age)  # func3中的age: 84
    
            func3()  # 调用func3函数
    
        func2()  # 调用func2函数
    
    func()
    

    那么,这时候有人就说了,屁话一大堆讲的原来是局部变量和全局变量,那么我想问:在上面这个嵌套函数中,func2中并没有age变量,那么它是如何找到全局变量age = 15的?

    此时我们就需要来看一下作用域的查找顺序了:

    变量作用域LEGB

    • L:locals 函数内的名称空间,包括局部变量和实参
    • E:enclosing 外部嵌套函数的名称空间,即相邻的上一层,打个比方说:func2中没有age变量则会去func里找这个
    • G:globals 全局变量
    • B:builtins 内置模块的名称空间

    咳咳,还是先了解下什么是名称空间把?

    名称空间,又名name space,顾名思义就是存放名字的地方,存什么名字呢?举例说明,x = 1 ,1存放在内存当中,那么变量名x存放在哪里呢?名称空间就是存放名字x与1绑定关系的地方

    >>> x = 1
    >>> id(1)
    1576430608
    

    名称空间分为以下3种:

    • locals: 是函数内的名称空间,包括局部变量和形参
    • globals: 全局变量,函数定义所在模块的名字空间
    • builtins: 内置模块的名字空间

    不同变量的作用域不同就是有这个变量所在的命名空间决定的.

    作用域即范围

    • 全局范围:全局存活,全局有效
    • 局部范围:临时存货,局部有效

    让我们来举例看一下

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    level = 'L0'
    n = 22
    
    def func():
        level = 'L1'
        n = 33
        print(locals())  # {'n': 33, 'level': 'L1'}  在之前说过在python中,一个函数就是一个作用域,这就很完美的体现了
    
        def outer():
            n = 44
            level = 'L2'
            print(locals(),n)  # {'level': 'L2', 'n': 44} 44
    
            def inner():
                level = 'L3'
                print(locals(),n) # {'level': 'L3', 'n': 44} 44
            inner()
        outer()
    
    func()
    

    以 L --> E --> G -->B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内置函数中找。

    展开全文
  • 在java,除了object,其实还有8种基本数据类型,才有了参数传递的区分。 def ChangeInt( a ): a = 10 b = 2 ChangeInt(b) # 这里应该考虑b是被改变了,还是被丢弃了。对于常见的python内...
  • python嵌套函数使用外部函数变量的方法,Python2和Python3均可使用 python3 def b(): b = 1 def bchange(): ... 您可能感兴趣的文章:python编程嵌套函数实例代码python中嵌套函数的实操步骤从局部变
  • python函数

    2020-07-08 15:16:42
    可变对象与不可变对象:在python中,string,number,tuple是不可改变对象。list,dict是可改变对象。 a = 1 #不可变类型 def change(a): # 相当于重新创建这里的参数传递是值传递 a=3 # 这个a和上面的a不一样 这里...
  • 在子程序定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。 当全局变量与局部变量同名时: 在定义局部变量的子程序内,局部...
  • 调用函数前,a = 9,调用函数后,a=9,change中的a =90,a为创建的局部变量,函数调用完即销毁 a =9 def change(): print(a) a =9 ,为全局变量 a =9 def change(): print(a) a =100 调用函数时报错,...
  • Python函数

    2019-09-19 19:56:56
    使用 global 关键字,对函数中的 a 标志为全局变量,让函数内部使用全局变量的 a,那么整个程序出现的 a 都将是这个: #!/usr/bin/env python3 a = 9 def change(): global a print(a) a = 100 print("Before ...
  • python函数作用域

    2018-05-06 17:39:00
    python中函数作用域 在python中,一个函数就是一个作用域 name = 'xiaoyafei' def change_name(): name = '肖亚飞' print('在change_name里的name:',name) change_name() # 调用函数 print("在外面的name:",name)...
  • 在代码定义了一个全局变量,使用函数无法修改,这一点C++可以直接修改 实例1 # coding: UTF-8 Gtmp = None def change(): Gtmp = 10 print(Gtmp) 输出 None 实例2: # coding: UTF-8 def func(): tmp=10 ...
  • python 函数传递方式

    2019-09-26 17:02:06
    python中方法传递的参数到底是值传递还是引用传递? 1. 首先需要知道python中变量的类型:Python的变量分为可变变量和不可变变量。 针对于不可变的类型比如string int 1 def change(str): 2 print('str {...
  • 因为python自带库没有修改文件内容的方法,自己写了两个修改文件内容的函数 import os def change_file(address,line,content): #修改文件指定行 f=open(address,"r",encoding="utf-8") f2=open(...
  • Date and time is an important part of application ... We generally need to set, get, and change some data time information to our records. In this tutorial, we will examine the python date ti...
  • 入门•功能•示例•支持•报告错误•贡献•Changelog立即将您的Python函数转变为可用于生产的微服务。 通过HTTP API或交互式UI部署和访问您的服务。 将服务无缝导出到可移植,可共享和可执行文件或Docker映像。 ...
  • python函数参数传递

    2018-07-02 19:43:17
    首先看下面两个例子#example 1 a=1 def change(a): a=2 change(a) print a #a=1123456#example 2 ...print a #a=[2]123456所有的变量都可以理解为是内存的对象的一个‘引用’, 或者可以看做是c...
  • python 函数参数传递

    千次阅读 2017-10-12 19:08:58
    首先看下面两个例子#example 1 a=1 def change(a): ...print a #a=[2]所有的变量都可以理解为是内存的对象的一个‘引用’, 或者可以看做是cvoid *的感觉。这里记住的是类型是属于对象的而不是变量
  • 这一问题O' Reilly出版的"Learning Python" 2nd Edition的 13.4 节有专门论述,对于不可变(immutabe)对象,函数参数(这里是x和y)只是函数(这里是change)名字空间里对象(这里是0和[3,4])的一个新名字,当x=1时...
  • python函数特点NO.1

    2015-10-12 23:03:24
    python中函数的参数的个数可以是不限制的: >>>def mylist(*L): for x in L: print(x) >>>a=[1,2] >>> b=[3] >>>mylist(a,b)a,b参数会被作为元组的元素,L是一个元组; 在python中当参数是可变对象的时候,参数...
  • def change1(a): tmp=a[0] a[0]=a[1] a[1]=tmp array=[1,2] ...输出值为[1,2] #函数未被调用,运行array=[1,2]之后直接print return的作用 def change1(a): tmp=a[0] a[0]=a[1] a[1]=tmp re...
  • 如果要收集不定数量的关键字参数,可以在自定义函数时的参数前面加两个星号即**valuename,这样一来,多余的关键字参数就可以以字典的方式被收集到变量valuename之 def change_para_dct(a,b=0,**adct):  print...
  • 1.5 python函数,(方法)

    2019-03-13 16:36:32
    一:函数 1.定义 def xx(p1,p2): print("xxx") 2.不可变对象在函数中的体现 a=10 def change(a): a=5 pri...
  • 函数中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。 全局变量作用域是整个程序,局部变量作用域是定义该变量的函数。 当全局变量与局部变量同名时,在定义局部变量的函数内,局部变量起作用...
  • 了解python中函数使用,首先需要认识函数中几种参数的用法。 (1) 看以下代码段: def change(val): #change the value in the function val = 'a'  交互环境中运行: >>> value = 'b' >>> change(value) >>> ...
  • python函数全局变量与局部变量

    千次阅读 2018-04-12 23:29:49
    局部变量:在函数中定义的变量一般只能在该函数内部使用,这些只能在程序的特定部分使用 全局变量:在一个文件顶部定义的变量可以供该文件任意函数调用 1优先读取局部变量,能读取全局变量,无法对全局变量...
  • Python 的lower()、upper()函数和str\chr

    万次阅读 2015-04-17 16:20:48
    今天遇到一点小问题,需要编写一个程序将List 的无规则英文名按【首字母大写其余部分小写】的方式转换 一开始的思路是编写一个函数将每个名字字符串【str】进行处理,如何用map进行批处理 不得不说,大方向的...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 155
精华内容 62
关键字:

python中change函数

python 订阅