python学习-day8_homework

学习视频: https://www.bilibili.com/video/BV1SE411N7Hi?p=55

作业:https://gitee.com/old_boy_education_python_28/teaching_plan/issues/I16FND

以下内容仅供个人学习使用,侵删

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 1.
# 请写出下列代码的执行结果:
# 例一:
#
def func1():
    print('in func1')


def func2():
    print('in func2')


ret = func1

ret()

ret1 = func2

ret1()

ret2 = ret

ret3 = ret2

ret2()

ret3()
# 执行结果:

# in func1
# in func2
# in func1
# in func1

# 例二:
#
def func1():
    print('in func1')
def func2():
    print('in func2')
def func3(x, y):
    x()
    print('in func3')
    y()
print(111)
func3(func2, func1)
print(222)
# 执行结果:

# 111
# in func2
# in func3
# in func1
# 222

def func1():
    print('in func1')
def func2(x):
    print('in func2')
    return x
def func3(y):
    print('in func3')
    return y
ret = func2(func1)
ret()
ret2 = func3(func2)
ret3 = ret2(func1)
ret3()
# 执行结果:

# in func2
# in func1
# in func3
# in func2
# in func1

# 看代码写结果:
# 例四:
#
#*******
def func(arg):
    return arg.replace('alex', '****')
def run():
    msg = "Alex和大家都是好朋友"
    result = func(msg)
    print(result)

run()#Alex和大家都是好朋友(alex与Alex不同,不进行替换操作)
data = run()#Alex和大家都是好朋友
print(data)#none

# 看代码写结果:
#
# 例五:
#
data_list = []
def func(arg):
    return data_list.insert(0, arg)
data = func('绕不死你')#data =data_list.insert(0, '绕不死你')
print(data)#none,列表中除了pop操作有返回值之外,其他操作都没有返回值,insert函数没有返回值
print(data_list)#['绕不死你']
# 看代码写结果:

# 例六:
#
#
def func():
    print('你好呀')
    return '好你妹呀'
func_list = [func, func, func]

for item in func_list:
    val = item()
    print(val)

# 看代码写结果:

# 你好呀
# 好你妹呀
# 你好呀
# 好你妹呀
# 你好呀
# 好你妹呀
print("------")
# 例七:
#
#
def func():
    print('你好呀')
    return '好你妹呀'
func_list = [func, func, func]
for i in range(len(func_list)):
    val = func_list[i]()
    print(val)
# 看代码写结果:
# 你好呀
# 好你妹呀
# 你好呀
# 好你妹呀
# 你好呀
# 好你妹呀
#
# 例八:
#
#
def func():
    return '大烧饼'
def bar():
    return '吃煎饼'
def base(a1, a2):
    return a1() + a2()
result = base(func, bar)
print(result)
# 看代码写结果:
#大烧饼吃煎饼

# 例九:
#
#
def func():
    for item in range(10):
        pass#pass下面的代码会正常执行
        print("1111")
        return item#return会结束代码,for循环执行一次后,return,结束func()函数


func()#空
# 看代码写结果:
#
# 例十:
#
#
def func():#生成器
    for item in range(10):
        yield item#yield会把当前的值扔出去,并且记录当前的位置
g=func()
print(next(g))
print(next(g))
print(next(g))

# 看代码写结果:
#
# 0
# 1
# 2

# 例十一:
#***********报错
# item = '老男孩'
# def func():
#     item = 'alex'
#
#     def inner():#此处inner指向函数体起始空间
#         print(item)
#
#     for inner in range(10):#此处inner分别依次指向数字空间0,1,2,3,4……,最后inner指向数字9开辟的空间
#         pass
      #同一块空间内,变量只能只想一个地方,func函数外item指向”老男孩“的是一个空间,func函数内item指向另一个空间
#     inner()#数字+()报错
#
#
# func()
# 看代码写结果:
#alex

# 例十二:
#
l1 = []#list可变
def func(args):
    l1.append(args)#在函数内的局部空间也能对list进行操作
    return l1
print(func(1))
print(func(2))
print(func(3))
# 看代码写结果:
#
# [1]
# [1, 2]
# [1, 2, 3]
# 例十三:
#
name = '宝元'
def func():
    global name
    name = '男神'
print(name)
func()
print(name)
# 看代码写结果:
# 宝元
# 男神
# 例十四:
#
name = '宝元'
def func():
    print(name)
func()
# 看代码写结果:
# 宝元

# 例十五: (选做题)
#
# name = '宝元'
# def func():
#     print(name)
#     name = 'alex'#报错,词法,语法,语义
# func()

# 看代码写结果:
# 例十六:
#
#
def func():
    count = 1
    def inner():
        nonlocal count
        count += 1
        print(count)
    print(count)
    inner()
    print(count)
func()
# 看代码写结果:
# 1
# 2
# 2

# 例十七: (选做题)
#**************************
#
def extendList(val, list=[]):#可变数据类型的陷阱,列表,字典,集合同。
    # 默认参数在定义的时候已经开辟了一片固定的空间,假设默认参数list=[] 的地址010
    list.append(val)
    return list


list1 = extendList(10)#010 [10]
list2 = extendList(123, [])#list指向新给的110空间 [123]
list3 = extendList('a')#010 [10,a],由于list1,list3指向同一片010空间,所以010

print('list1=%s' % list1)
print('list2=%s' % list2)
print('list3=%s' % list3)
# 看代码写结果:
# list1=[10, 'a']
# list2=[123]
# list3=[10, 'a']

# 例十八:
#
#
def extendList(val, list=[]):
    list.append(val)
    return list


print('list1=%s' % extendList(10))
print('list2=%s' % extendList(123, []))
print('list3=%s' % extendList('a'))

# list1=[10]
# list2=[123]
# list3=[10, 'a']

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章