python的高级循环问题

时间:2018-08-01 05:47:20

标签: python loops

我一直在通过一本名为《使用Python和Pygame的计算机科学概论》的书来学习python。本书中有一个叫做高级循环问题的部分,没有任何解释或概述,但我想无论如何我都会尝试。多亏了这里的一些帮助,我才把其中的前2个放下来了,剩下的就是这些了:

Probs 1-3 Probs 4-6

这是前两个问题的代码,也是我第三个问题的代码。其余的任何帮助将不胜感激!

#Problem 1:
for n in range(10):
    for i in range(10):
        print(i, end=" ")
    print()

#Problem 2:
for n in range(11):
    for i in range(n):
        print(i, end=" ")
    print()

#Problem 3:
for n in reversed(range(10)):
    for s in reversed(range(10)):
        print(" ", end="")
    for i in range(n+1):
        print(i, end=" ")
    print()

3 个答案:

答案 0 :(得分:0)

这是第三个问题。 进一步的问题也有类似的解决方案,只是有些棘手。 花足够的时间来完成它们,这值得您花一会儿,您会发现自己在python脚本编写方面更加高级:)祝您好运

num_list = [0,1,2,3,4,5,6,7,8,9]

for x in range(0,len(num_list)):
    print num_list

    for i in range(0,len(num_list)):
        if i <= x:
            num_list[i] = ' '
        else:
            num_list[i] = num_list[i] - 1

答案 1 :(得分:0)

对于问题3,您得到的提示是需要2个内部循环,一个用于空格,一个用于数字。

每行从0(看起来像行索引)开始需要多一个空格,从10(10-line_index)开始要少一位。代码可以是:

for i in range(10):
    for j in range(i):
        print(' ', end=' ')
    for j in range(10-i):
        print(j, end=' ')
    print()

对于问题4,提示是使用":2d".format(n)以确保对齐

答案 2 :(得分:0)

n= int(input("Enter a no"))
r= (n*2)-2
for i in range(1, n+1):
    print (" "*r, end=" ")
    r-=2
    k=i-1
    for j in range(1, i+1):
        print (j, end=" ")
    for j in range(k, 0, -1):
        print (j, end=" ")
    print (" ")

这是我对 5 的回答。