day11作业

  1. 请写出下列代码的执行结果:

    例一:
def func1():
print(**'in func1'**) def func2():
print(**'in func2'**) ret = func1 ret() #执行1 # func1() # 结果 in func1 ret1 = func2 ret1() #执行2 # func2() # 结果 in func2 ret2 = ret ret3 = ret2 ret2() # 执行3 # func1() # 结果 in func1 ret3() # 执行4 # func1() # 结果 in func1 执行结果:

答案

in func1
in func2
in func1
in func1

例二:

def func1():
print(**'in func1'**) def func2():
print(**'in func2'**) def func3(x,y): # x = func2, y = func1 x() #3 相当于func2()# in func2 print(**'in func3'**) #4 #in func3 y() #5 相当于func1() # in func1 print(111) # 第1步 # 111 func3(func2,func1) # 2 # print(222) #6 # 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
  1. 看代码写结果:
def func(arg):
return arg.replace('苍老师', '***') def run():
msg = "Alex的女朋友苍老师和大家都是好朋友"
result = func(msg)
print(result) run()

答案

Alex的女朋友***和大家都是好朋友
def func(arg):
return arg.replace('苍老师', '***') def run():
msg = "Alex的女朋友苍老师和大家都是好朋友"
result = func(msg)
print(result) data = run()
print(data)

答案

Alex的女朋友***和大家都是好朋友
None
  1. 看代码写结果:
DATA_LIST = [] 

def func(arg):
return DATA_LIST.insert(0, arg) data = func('绕不死你')
print(data)
print(DATA_LIST)

答案

None
['绕不死你']
  1. 看代码写结果:
def func():
print('你好呀')
return '好你妹呀' func_list = [func, func, func] for item in func_list:
val = item()
print(val)

答案

你好呀
好你妹呀
你好呀
好你妹呀
你好呀
好你妹呀
  1. 看代码写结果:
def func():
print('你好呀')
return '好你妹呀' func_list = [func, func, func] for i in range(len(func_list)):
val = func_list[i]()
print(val)

答案

你好呀
好你妹呀
你好呀
好你妹呀
你好呀
好你妹呀
  1. 看代码写结果:
def func():
return '烧饼' def bar():
return '豆饼' def base(a1, a2):
return a1() + a2() result = base(func, bar)
print(result)

答案

烧饼豆饼

  1. 看代码写结果:
for item in range(10):
print(item) print(item)

答案

0
1
2
3
4
5
6
7
8
9
9
  1. 看代码写结果:
def func():
for item in range(10):
pass
print(item)
func()

答案

9

  1. 看代码写结果:
item = '老男孩'
def func():
item = 'alex'
def inner():
print(item)
for item in range(10):
pass
inner()
func()

答案

9

  1. 看代码写结果:
l1 = []
def func(args):
l1.append(args)
return l1
print(func(1))
print(func(2))
print(func(3))

答案

[1]
[1,2]
[1,2,3]
  1. 看代码写结果:
name = '太白'
def func():
global name
name = '男神'
print(name)
func()
print(name)

答案

太白
男神
  1. 看代码写结果:
name = '太白'
def func():
print(name)
func()

答案

太白

  1. 看代码写结果:
name = '太白'
def func():
print(name)
name = 'alex'
func()

答案

报错,上面引用了一个name = 太白的变量,下面又定义了一个,出错

  1. 看代码写结果:
def func():
count = 1
def inner():
nonlocal count
count += 1
print(count)
print(count)
inner()
print(count)
func()

答案

1
2
2
  1. 看代码写结果:
def extendList(val,list=[]):
list.append(val)
return list list1 = extendList(10)
list2 = extendList(123,[])
list3 = extendList('a') print('list1=%s'%list1)
print('list2=%s'%list2)
print('list3=%s'%list3)

答案

list1=[10]
list2=[123]
list3=[10,'a'] # 不太懂
  1. 看代码写结果:
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']
  1. 用你的理解解释一下什么是可迭代对象,什么是迭代器。

答案

dir内部含有__iter__的方法就是可迭代对象
dir内部含有__iter__和__next__的方法就是迭代器
  1. 如何判断该对象是否是可迭代对象或者迭代器?

答案

li = [1,2,3,4]
print('__iter__' in dir(li)) 如果是Ture就是迭代对象
print('__iter__' in dir(li) and '__next__' in dir(li)) 如果返回值是True就是迭代器
  1. 写代码:用while循环模拟for内部的循环机制(面试题)。

答案

li = [1,2,3,4,5]
obj = iter(li) # 将可迭代对象转换成一个迭代器
while 1:
try:
print(next(obj))
except StopIteration:
break
# 结果
1
2
3
4
5
  1. 写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}

    例如:min_max(2,5,7,8,4) 返回:{‘max’:8,’min’:2}(此题用到max(),min()内置函数)

答案

def min_max(*args):
print({'max':max(args),'min':min(args)})
min_max(2,5,7,8,4)
# 结果
{'max': 8, 'min': 2}
  1. 写函数,传入一个参数n,返回n的阶乘

    例如:cal(7) 计算7654321

答案

def func(a):
for i in range(a,0,-1):
for j in range(a-1,0,-1):
i = i * j
return i
print(func(7))
# 输出结果
5054
  1. 写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组(选做题)

    例如:[(‘红心’,2),(‘草花’,2), …(‘黑桃’,‘A’)]

答案

l1 = ['A',2,3,4,5,6,7,8,9,10,'J','Q','K']
l2 = ['红桃','方块','黑桃','梅花']
l3 = []
def func(*args):
l3.append(args)
return l3
for j in l1:
for i in l2:
func(i,j)
print(l3)
# 输出结果
[('红桃', 'A'), ('方块', 'A'), ('黑桃', 'A'), ('梅花', 'A'), ('红桃', 2), ('方块', 2), ('黑桃', 2), ('梅花', 2), ('红桃', 3), ('方块', 3), ('黑桃', 3), ('梅花', 3), ('红桃', 4), ('方块', 4), ('黑桃', 4), ('梅花', 4), ('红桃', 5), ('方块', 5), ('黑桃', 5), ('梅花', 5), ('红桃', 6), ('方块', 6), ('黑桃', 6), ('梅花', 6), ('红桃', 7), ('方块', 7), ('黑桃', 7), ('梅花', 7), ('红桃', 8), ('方块', 8), ('黑桃', 8), ('梅花', 8), ('红桃', 9), ('方块', 9), ('黑桃', 9), ('梅花', 9), ('红桃', 10), ('方块', 10), ('黑桃', 10), ('梅花', 10), ('红桃', 'J'), ('方块', 'J'), ('黑桃', 'J'), ('梅花', 'J'), ('红桃', 'Q'), ('方块', 'Q'), ('黑桃', 'Q'), ('梅花', 'Q'), ('红桃', 'K'), ('方块', 'K'), ('黑桃', 'K'), ('梅花', 'K')]
  1. 写代码完成99乘法表.(选做题,面试题)

1 * 1 = 1

2 * 1 = 2 2 * 2 = 4

3 * 1 = 3 3 * 2 = 6 3 * 3 = 9

......

9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81

答案

def func(a,b):
for i in range(a,b):
for j in range(1,i+1):
print(f"{i}*{j}={i*j}",end=' ')
print(' ')
func(1,10)
# 结果 1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

最新文章

  1. JDBC数据库1
  2. 项目之solr全文搜索工具之创建项目索引库
  3. windows & mac 安装lua
  4. ZOJ 3805 (树形DP)
  5. Linux 进程间通信
  6. HDU 2870 Largest Submatrix
  7. [Linked List]Palindrome Linked List
  8. JQ工具函数运用
  9. v$session & v$session_wait
  10. JSONP不支持循环调用
  11. 这是一款借助chrome 插件的微信机器人
  12. C#数据类型和SQL数据类型对照
  13. SQL增删改语句
  14. WebApi系列~不支持put和delete请求的解决方法
  15. ios 在工程中使用字体
  16. UVA11922 Permutation Transformer
  17. FORWARD转发链的功能
  18. 向量体系结构(2)----SIMD指令集扩展和GPU
  19. 3I工作室的成员在2013年(第6届)中国大学生计算机设计大赛总决赛中荣获全国二等奖
  20. GET和POST请求区别

热门文章

  1. Python机器学习笔记:朴素贝叶斯算法
  2. Luogu P3065 [USACO12DEC]第一!First!【字典树/拓扑排序】By cellur925
  3. 解决sublime text无法安装插件问题
  4. Linux 添加硬盘并分区
  5. HTTP/2之旅 (翻译)
  6. Web自动化测试—PO设计模式(一)
  7. atom通过remote ftp同步本地文件到远程主机的方法
  8. Net Core 分布式微服务框架
  9. STM32开关总中断
  10. HDU 1069 Monkey and Banana DP LIS变形题