20181031作业
写函数,接收一个参数(此参数类型必须是可迭代对象),将可迭代对象的每个元素以’_’相连接,形成新的字符串,并返回.
例如 传入的可迭代对象为[1,'老男孩','武sir']返回的结果为’1_老男孩_武sir’
解.方法一.def func(lst):
ll = []
for i in lst:
ll.append(str(i))
return '_'.join(ll)
print(func([6,'念念不住','缘起']))
方法二.
def func(lst):
s = ''
for i in lst:
s = s+ str(i)+'_'
return s.strip('_')
print(func([6,'念念不住','缘起']))
(先从纸上写好答案,然后在运行):
1,有函数定义如下:
def calc(a,b,c,d=1,e=2):
return (a+b)*(c-d)+e
请分别写出下列标号代码的输出结果,如果出错请写出Error。
print(calc(1,2,3,4,5))__2___
print(calc(1,2))____
print(calc(e=4,c=5,a=2,b=3))_24__
print(calc(1,2,3))___8__
print(calc(1,2,3,e=4))__10__
print(calc(1,2,3,d=5,4))_____
2,(此题有坑)下面代码打印的结果分别是___None______,___None_____,____None____.
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)
- 打印图形
解.i = 1
while i <= 5:
#打印空格
j = 1
while j <= 5-i:
print(' ', end="")
j += 1
#打印"*"
a = 1
while a <= 2*i-1:
print('*', end="")
a += 1
print('')
i += 1
- 求1-100内所有的质数的和(升级题)
def shu(n):
if n==1:
return 1
if n==2:
return 2
for i in range(2,n):
if (n%i)==0:
return 0
else:
return n
list=[]
for i in range(2,100):
z=shu(i)
list.append(z)
s=sum(list)
print(s)
1,什么是闭包。
答.闭包就是内层函数, 对外层函数(非全局)的变量的引⽤. 叫闭包
2,迭代器的特点。
答.a. 节省内存. b. 惰性机制 c. 不能反复, 只能向下执⾏.
3,用while循环模拟for循环(写具体代码)。
答.s1 = 'ABCDEF'
it = s1.__iter__()
while 1:
try:
el = it.__next__()
print(el)
except StopIteration:
print('ok')
break