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']

 

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