python之道11
day11作业
- 请写出下列代码的执行结果:
例一:
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
- 看代码写结果:
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
- 看代码写结果:
DATA_LIST = []
def func(arg):
return DATA_LIST.insert(0, arg)
data = func('绕不死你')
print(data)
print(DATA_LIST)
答案
None
['绕不死你']
- 看代码写结果:
def func():
print('你好呀')
return '好你妹呀'
func_list = [func, func, func]
for item in func_list:
val = item()
print(val)
答案
你好呀
好你妹呀
你好呀
好你妹呀
你好呀
好你妹呀
- 看代码写结果:
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)
答案
烧饼豆饼
- 看代码写结果:
for item in range(10):
print(item)
print(item)
答案
0
1
2
3
4
5
6
7
8
9
9
- 看代码写结果:
def func():
for item in range(10):
pass
print(item)
func()
答案
9
- 看代码写结果:
item = '老男孩'
def func():
item = 'alex'
def inner():
print(item)
for item in range(10):
pass
inner()
func()
答案
9
- 看代码写结果:
l1 = []
def func(args):
l1.append(args)
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()
答案
报错,上面引用了一个name = 太白的变量,下面又定义了一个,出错
- 看代码写结果:
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.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'] # 不太懂
- 看代码写结果:
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']
- 用你的理解解释一下什么是可迭代对象,什么是迭代器。
答案
dir内部含有__iter__的方法就是可迭代对象
dir内部含有__iter__和__next__的方法就是迭代器
- 如何判断该对象是否是可迭代对象或者迭代器?
答案
li = [1,2,3,4]
print('__iter__' in dir(li)) 如果是Ture就是迭代对象
print('__iter__' in dir(li) and '__next__' in dir(li)) 如果返回值是True就是迭代器
- 写代码:用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
写函数,传入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}
- 写函数,传入一个参数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
- 写函数,返回一个扑克牌列表,里面有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')]
- 写代码完成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
python之道11的更多相关文章
- Python补充06 Python之道
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python有一个彩蛋,用下面语句调出: import this 该彩蛋的文档记录 ...
- CentOS 6.7 final编译安装Python 2.7.11
CentOS 6.7默认的Python版本为2.6.6,现升级为Python 2.7.11 1.安装编译环境 yum groupinstall "Development tools" ...
- 彩蛋 Python之道
彩蛋 Python之道 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 使用下面的语句可以调出Python中的一个彩蛋, impo ...
- python入门(11)条件判断和循环
python入门(11)条件判断和循环 条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: ag ...
- 【转】Python之道
作者:Vamei 出处:http://www.cnblogs.com/vamei Python有一个彩蛋,用下面语句调出: import this 该彩蛋的文档记录于PEP 20. 语句执行之后,终端 ...
- python 全栈开发,Day43(python全栈11期月考题)
python全栈11期月考题 1.常用字符串格式化有哪些?并说明他们的区别 2.请手写一个单例模式(面试题) 3.利用 python 打印前一天的本地时间,格式为‘2018-01-30’(面试题) 4 ...
- Python之道(一)之安装Python
"Python之道"首先介绍一下在windows系统下怎样安装Python开发环境. (1)下载MSI安装文件 进入网址www.python.org,点击Downloads进入下载 ...
- python列表的11种方法
python列表的11种方法2017年11月24日 03:26:43 Milton-Long 阅读数:254版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.n ...
- Python web前端 11 form 和 ajax
Python web前端 11 form 和 ajax 一.打开服务器 将handlers.py.httpd.py和libs.py三个文件放入新文件夹中,双击打开httpd.py文件即可 二.ajax ...
随机推荐
- Django中ORM外键和表的关系(Django编程-4)
外键 在MySQL中,表有两种引擎,一种是InnoDB,另外一种是myisam.如果使用的是InnoDB引擎,是支持外键约束的.外键的存在使得ORM框架在处理表关系的时候异常的强大.因此这里我们首先来 ...
- Animation Starter Pack中动画蓝图事件添加的位置
可以直接在动画状态机的详情页添加简单事件,跟在动画里添加的通知事件效果一致
- AGC001 F - Wide Swap【线段树+堆+拓扑排序】
给出的模型很难搞,所以转换一下,记p[i]为i这个数的位置,然后相邻两个p值差>k的能交换,发现使原问题字典序最小也需要使这里的字典序最小 注意到p值差<=k的前后顺序一定不変,那么可以n ...
- jzoj6004. 【PKUWC2019模拟2019.1.17】集合 (组合数学)
题面 题解 这种题目就是要好好推倒 我们枚举最小的数是哪一个,那么答案就是\[Ans=\sum_{i=1}^nT^i{n-i\choose k-1}\] 因为有\[\sum_{i=p}^n{n-i\c ...
- Request a certificate from a certificate vendor
Request a certificate from a certificate vendor Now, with your CSR in hand, visit the Web site of yo ...
- Spring Cloud与Duddo比较(非原创)
文章大纲 一.Spring Cloud与Duddo背景介绍二.Spring Cloud与Duddo比较三.参考文章 一.Spring Cloud与Duddo背景介绍 国内技术人员喜欢拿 Dub ...
- python进阶02 特殊方法与特殊属性
python进阶02 特殊方法与特殊属性 一.初始化.析构 1.初始化 # python中有很多双下划线开头且以下划线结尾的固定方法,它们会在特定的时机被触发执行,这便是特殊方法 # 在实例化的时候就 ...
- Linux —— GDB调试程序
调试实现 在可执行文件中加入源代码的信息,比如可执行文件中第几条机器指令对应源代码的第几行,但并不是把整个源文件嵌入到可执行文件中,所以在调试时必须保证gdb能找到源文件. 生成可执行文件命令: g+ ...
- 线程池(4)Executors.newScheduledThreadPool-只执行1次
例子1:延迟3秒后,只执行1次 ScheduledExecutorService es = Executors.newScheduledThreadPool(5); log.info("开始 ...
- (转载)23种设计模式的uml图表示及通俗介绍
转载自: https://www.cnblogs.com/ningskyer/articles/3615312.html 0.分类 创建型模式 1.FACTORY2.BUILDER3.FACTORY ...