1、编写一个函数,判断传入的字符参数是否为“回文联”
def ishw(str1): if str1==str1[::-1]: print('是回文联') else: print('不是回文联')
用[::-1]或者reversed实现字符串反转操作。sorted方法是按照字符串的as码进行排序。
2、如果希望在函数中修改全局变量的值,应该用什么方法?
global
3、在嵌套的函数中,如果希望在内部函数修改外部函数的局部变量,应该使用什么关键字?
nonlocal
4、代码B为何报错?应如何修改?
>>> def outside(): var=5 def inside(): print(var) var=3 inside() >>> outside()
内部函数调用外部变量时,python为了保护外部变量,会对外部变量进行屏蔽,所以此时无法访问外部变量,变量没有定义直接打印所以报错。可以用nonlocal。
扫描二维码关注公众号,回复:
2464242 查看本文章
>>> def outside(): var=5 def inside(): nonlocal var print(var) var=3 inside() print(var) >>> outside()
5、请问如何访问funIn()呢?
>>> def funOut(): def funIn(): print('可以访问') return funIn
>>> a=funOut() >>> a() 可以访问
6、以下是“闭包”的一个例子,请你目测下回打印什么内容?
>>> def funX(): x=5 def funY(): nonlocal x x+=1 return x return funY >>> a=funX() >>> print(a()) >>> print(a()) >>> print(a()) >>> print(a())
6 7 8 9
当a=funX()的时候,只要a变量没有被重新赋值,funX()就没有被释放,也就是说局部变量x就没有被初始化。
7、请使用lambda表达式将下边函数转变为匿名函数
def fun_A(x,y=3): return x*y
lambda x,y=3:x*y >>> a <function <lambda> at 0x02060348> >>> a(1) 3