18、书写执行结果(禁止运行代码)
第一个:
a = 'oldboy %'
print(a)
输出:
oldboy%
View Code
第二个:
a = 'oldboy %d %%' %(12,)
print(a)
输出:
oldboy12 %
View Code
19、简述对象和类的关系
如果值是某类型,那这个值就是这个类的对象
View Code
20、书写执行结果(禁止运行代码)
def func(a1):
return a1 + 100
func = lambda a1:a1+200
ret = func(10)
print(ret)
输出:210
View Code
匿名函数那一句把func变量覆盖了
21、内置函数all和any的区别
all:如果是空的,返回True,如果非空,返回False,全真为真否则为假
any:有一个真就为真
View Code
22、简述文件打开模式“r”和“rb”的区别
r是只读模式打开,默认utf-8格式
rb是以二进制格式打开
View Code
23、将字符串“老男人”转换成utf-8编码的字节类型
内存里只有一种编码(unicode),字节是在磁盘和传输的过程才有意义
方法一:
s= '老男人'
print(bytes(s,'utf-8'))
输出:
b'\xe8\x80\x81\xe7\x94\xb7\xe4\xba\xba'方法二:
s= '老男人'
print(s.encode('utf-8'))
输出:
b'\xe8\x80\x81\xe7\x94\xb7\xe4\xba\xba'
View Code
24、略
25、简述内置函数globals(),locals()作用
globals() 获取所有的全局变量
locals() 获取所有局部变量
View Code
26、利用内置函数zip(),实现功能
l1 = ['alex',22,33,44,55]
l2 = ['is',22,33,44,55]
l3 = ['good',22,33,44,55]
l4 = ['guy',22,33,44,55]
请获取字符串s = 'alex_is_good_guy'
l1= ['alex',22,33,44,55]
l2= ['is',22,33,44,55]
l3= ['good',22,33,44,55]
l4= ['guy',22,33,44,55]print('_'.join(list(zip(l1,l2,l3,l4))[0]))
输出:
alex_is_good_guy
View Code
27、略
28、书写执行结果(禁止运行代码)
namelist = ['alex','eric']
def func():
namelist = 123
global namelist
func()
print(namelist)
输出:
SyntaxError: name'namelist' is assigned to before globaldeclaration
(global声明要写在前面才行)
View Code
29、书写执行结果(禁止运行代码)
第一个:
name = 'root'
def func():
name = 'seven'
def outer():
name = 'eric'
def inner():
global name
name = '懵逼了吧'
print(name)
print(name)
ret =func()
print(ret)
print(name)
root
root
None
root
View Code
第二个:
name = 'root'
def func():
name = 'seven'
def outer():
name = 'eric'
def inner():
global name
name = '懵逼了吧'
print(name)
o = outer()
print(o)
print(name)
ret =func()
print(ret)
print(name)
输出:
root
None
root
None
root
View Code
第三个:
name = 'root'
def func():
name = 'seven'
def outer():
name = 'eric'
def inner():
global name
name = '懵逼了吧'
print(name)
inner()
o = outer()
print(o)
print(name)
ret =func()
print(ret)
print(name)
输出:
root
None
懵逼了吧
None
懵逼了吧
View Code
第四个:略
30、书写执行结果并解释每一步操作
第一个:
name = 'canglaoshi'
def outer(func):
name = 'alex'
func() #函数名字可以作为参数传递
def show():
print(name)
outer(show)
输出:
canglaoshi
把show传入outer函数之后,func()和show()指向同一块函数体,也就是print(name)
第二个:
View Codename = 'canglaoshi'
def outer():
name = 'boduo'
def inner():
print(name)
return inner() #在这里执行没有意义
ret = outer()
print(ret)
输出:
boduo
None
View Code
第三个:
name = 'canglaoshi'
def outer():
name = 'boduo'
def inner():
print(name)
return inner
ret = outer()
ret() #boduo
print(ret) #.inner at 0x000001719D9F3620>
result = ret()
print(result)
输出:
boduo.inner at 0x000001719D9F3620>boduo
None
inner被复制给了变量ret
View Code
第四个:
name = 'canglaoshi'
def outer():
name = 'boduo'
def inner():
print(name)
return inner #返回内存地址
ret = outer()
print(ret)
result = ret() #执行inner函数,打印boduo
print(result) #inner无返回值,打印的是None
输出:
.inner at 0x0000025F44221620>boduo
None
View Code
33、利用递归实现1*2*3*4*5*6*7=5040
第一种:
#利用递归实现1*2*3*4*5*6*7=5040(我自己写的代码)
def func(end,s=1,begin=1):
if begin>end:
return s
s *=begin
begin +=1
return func(end,s,begin)
print(func(7))
输出:
5040
View Code
第二种:(上一种方法写的不好,因为传一个参数其实就够了)
deff(n):if n == 1:return 1
return n * f(n - 1)print(f(7))
View Code
(reduce+lambda写法)
from functools import reduce
print(reduce(lambda x,y:x*y,[x for x in range(1,8)]))
输出:
5040
View Code
35、写程序
a.文件操作时with的作用?
with 打开文件执行完毕后自动关闭
View Code
b.写程序:利用with实现同时打开两个文件(一读,一写,并将读取的内容写入到写入模式的文件中)
原文件内容:
文件a:
123
abc
文件b:
456
efg
运行代码:
with open('a','r') as x,open('b','w') as y:
y.write(x.read())
运行后的文件:
文件a:
123
abc
文件b:
123
abc
37、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个,第二天早上又将剩下的桃子吃了一半,还是不过瘾又多吃了一个。以后每天都吃前一天剩下的一半再加一个,到第十天刚好剩下一个。
问猴子第一天摘了多少个桃子?
s=1
for i in range(9):
s = (s+1)*2
print(s)
输出:
1534
View Code
或者用匿名函数:
s=1
func = lambda x:(x+1)*2
for i in range(9):
s = func(s)
print(s)
输出:
1534
View Code