Discuss / Python / 作业——打卡

作业——打卡

Topic source

沐__秋

#1 Created at ... [Delete] [Delete and Lock User]
    def triangles():
        line = [1]
        while True:
            yield line
            newLine = [1]        #行首
            for i in range(1, len(line)):
                newLine.append(line[i - 1] + line[i])
            newLine.append(1)     #行末
            line = newLine[:]

大佬,能否留个联系方式讨论下。。。?

如何理解while True???求解答

如何理解while True???求解答

沐__秋

#5 Created at ... [Delete] [Delete and Lock User]

个人理解 while Ture: 对于这个函数,定义函数的人并不知道具体要输出几行,设置成死循环一方面是基于生成器的特性(需要调用next函数来获取下一个返回值)不必担心真的会死循环,一方面是将控制权交给调用函数的人,如测试代码:

n = 0
results = []
for t in triangles():
    print(t)
    results.append(t)
    n = n + 1    
    if n == 10:    #  <===
        break

while True就是无限循环呀~ 不过这里是generator,所以每次调用next()时遇到yield都会返回(也就是暂停执行),当然你也可以用for,不过要限定条件不然会无限循环的。 像示例的验证代码中:

for t in triangles():
    print(t)
    results.append(t)
    n = n + 1
    if n == 10:
        break

就给出了跳出循环的条件。

Matters_

#7 Created at ... [Delete] [Delete and Lock User]

学习了。谢谢。


  • 1

Reply