第一次作业

用你的理解解释一下什么是可迭代对象,什么是迭代器。

可迭代对象:
可以进行更新的一个 实实在在的值
内部含有"iter"方法的对象

迭代器:可更新迭代的工具
'__iter__'方法并且含有'__next__'方法的对象就是迭代器

如何判断该对象是否是可迭代对象或者迭代器?

dir(对象) 判断 "iter"and "next" 是否为真
iter

例如:

a=dir("sadas")
if "__iter__" and "__next__" in a:
    print("迭代器")
else:
    print("不是迭代器")
	

写代码:用while循环模拟for内部的循环机制(面试题)。

实际上是 将可迭代对象转换为迭代器

l1=[1,23,4,6,5,6,56]
obj=iter(l1)

while 1:
	try:
		print(next(obj))
	except StopIteration:
        break
		
		

写函数,传入n个数,返回字典

def (*args):
	

	return {"max":max(*args),’min’:min(*args)}


​	
def a(*args):

    return {"max": max(*args),"min":min(*args)}

print(a(12,23,12,23,56,89,78,45))


写函数,传入一个参数n,返回n的阶乘

例如: cal(7)

计算7654321

# def func(num):

#     count = 1

#     for i in range(num, 0, -1):

#         count = count * i

# func(10)

写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组(选做题)

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

l1=["A"]+[i for i in range(2,11)]+["J","Q","K"]
l2=["红心","草方","黑桃","梅花"]

def a():
    l=[]
    for i in l1:
        for j in l2:
            l.append((j,i))
    return l
print(a())

写代码完成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

for i in range(1,10):
    for j in range(1,10):
        if i<j:
            break
        else:
            s=int(j*i)
            print (f'{i} * {j}={s}')
    print("")
posted @ 2020-03-04 23:33  小丁变优秀  阅读(68)  评论(0)    收藏  举报