Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python行而不是列_Python_Loops_For Loop_While Loop_Rows - Fatal编程技术网

python行而不是列

python行而不是列,python,loops,for-loop,while-loop,rows,Python,Loops,For Loop,While Loop,Rows,我正在学习使用python,我被这段代码困住了 0 200 25 175 50 150 75 125 100 100 125 75 150 50 175 25 200 0 我想显示行,但我得到的是列。 我尝试了不同的变体,在那里,我得到了一行while循环,但是 我最终还是得到了for循环的一列 Start_num = 0 Max_num = 200 while Start_num < 201: for Number in range (Max_num, -1, -25):

我正在学习使用python,我被这段代码困住了

0 200
25 175
50 150
75 125
100 100
125 75
150 50
175 25
200 0
我想显示行,但我得到的是列。 我尝试了不同的变体,在那里,我得到了一行while循环,但是 我最终还是得到了for循环的一列

Start_num = 0
Max_num = 200

while Start_num < 201:
    for Number in range (Max_num, -1, -25):
       print(Start_num, end=' ')
       Start_num += 25
       print(Number)
必须有一种方法可以获得两行而不是两列,请提供帮助。

尝试以下方法:

Start_num = 0
Max_num = 200

row1 = []
row2 = []
while Start_num < 201:
    for Number in range (Max_num, -1, -25):
       row1.append(str(Start_num))
       Start_num += 25
       row2.append(str(Number))
print(" ".join(row1))
print(" ".join(row2))
Start\u num=0
最大数量=200
第1行=[]
第2行=[]
当启动数量<201时:
对于范围内的数字(最大值,-1,-25):
行1.追加(str(Start_num))
开始数+=25
第2行追加(str(Number))
打印(“.join(第1行))
打印(“.join(第2行))

您需要提前构建行,然后在最后打印它们。终端只输出文本,它没有行或列的概念。

一般来说,您可以使用成语
zip(*rows)
交换行和列。您的代码并不是以这种方式构造的,但是更改这种方式很简单

# Your code, re-factored

results = zip(range(0, 201, 25), range(200, -1, -25))
# gives you a zip object that looks something like:
# # [ (0, 200), (25, 175), (50, 150), ..., (200, 0) ]
#
# you could duplicate your output with:
# # for pair in results:
# #    print(*pair)
#
# N.B. this would exhaust the zip object so you couldn't
# use it below without re-calculating results = zip(range(...

swapped_results = zip(*results)
# gives you a zip object that looks something like:
# # [ (0, 25, 50, ..., 200), (200, 175, 150, ..., 0) ]
for row in swapped_results:
    print(*row)
# 0 25 50 75 100 125 150 175 200
# 200 175 150 125 100 75 50 25 0

有趣的是,您可以使用两个
range
对象和
zip
来重构代码,从而跳过手动递增的奇怪之处<编码>对于邮政编码中的a、b(范围(0、201、25)、范围(200、-1、-25)):打印(a、b)。但是,这并没有说明如何按行而不是按列格式化。非常感谢!