2

python 函数习题

© laowang/ 2012-1-10 / 19:27

上次分享到了python 函数的用法,今天给大家出2道python 函数习题,让大家对知识点有个很好的巩固的作用。

1 举出2种python 函数中保存状态信息的方法。

2

ainfo = 'b'

def firstinfo():
    ainfo = 'ccc'


def secinfo():
    global ainfo
    ainfo = 'dd'


def info(a):
    a[0] = 3
    return a


sinfo= [1,2]
print info(sinfo)


print 'first ainfo'
firstinfo()
print ainfo


print 'second ainfo'
secinfo()
print ainfo

 

最好上面的第2题能够直接看代码就能知道结果,而不是要复制代码到文件里去运行才能得到,感兴趣的朋友可以把答案写到留言里。方便大家一起交流学习。

文章内容皆为人工编辑,如有错误,敬请指正。谢谢你关注

本文有 2 篇评论

  1. 1 tengteng 说 :
    2012-1-11 18:06:41
    avatar

    结果
    3 2
    first ainfo
    b
    second ainfo
    dd
    第一次是打印返回值 会被修改
    第二句话赋值的时候 没有声明为全局变量 所以global ainfo保持初始值

    BlackGlory 于 2012-1-12 18:25:22 回复
    即使打印的不是返回值,sinfo也会被修改成[3,2]
    因为传递参数为列表时,列表是作为实参传递,修改列表的内容会影响列表本身
    >>> def info(a):
    ... a[0]=3
    ... return a
    ...
    >>> s=[0,1,2,3,4]
    >>> info(s)
    [3, 1, 2, 3, 4]
    >>> s
    [3, 1, 2, 3, 4]
    BlackGlory 于 2012-1-12 18:33:33 回复
    在函数中保存状态信息是这个意思吗?
    >>> def a(b):
    ... c=b
    ... def print_b():
    ... return c
    ... return print_b
    ...
    >>> a('Hello Python!')
    <function print_b at 0x01B950F0>
    >>> pb=a('Hello Python!')
    >>> pb
    <function print_b at 0x01B95130>
    >>> pb()
    'Hello Python!'
    laowang 于 2012-1-28 11:12:34 回复
    回答的不错,加油哦

  2. 2 wz 说 :
    2012-1-12 12:04:10
    avatar

    同意楼上

发表你的见解