Python编程缩进问题
我想知道是否有人能读懂这段代码并告诉我为什么会发生这种情况。我不可能是第一个遇到这个问题的人,但我环顾四周,在书中或其他地方都找不到答案 这一定是小事,但我看不出来Python编程缩进问题,python,Python,我想知道是否有人能读懂这段代码并告诉我为什么会发生这种情况。我不可能是第一个遇到这个问题的人,但我环顾四周,在书中或其他地方都找不到答案 这一定是小事,但我看不出来 # This program will find and calculte the radius # area and circumference of a circle. def main(): print('Radius\tArea\tCircumference') print('---------------
# This program will find and calculte the radius
# area and circumference of a circle.
def main():
print('Radius\tArea\tCircumference')
print('----------------------------')
print()
for radius in range(1, 11):
for area in range(1, 11):
for circumference in range(1, 11):
pi = 3.14
diameter = radius * 2
radius = diameter / 2
area = pi * radius**2
circumference = (2 * pi) * radius
print(radius, '\t', area, '\t',format(circumference, '.2f'))
main()
输出:
半径面积周长
----------------------------
1.0 3.14 6.28
2.0 12.56 12.56
3.0 28.26 18.84
4.0 50.24 25.12
5.0 78.5 31.40
6.0 113.04 37.68
7.0 153.86 43.96
8.0 200.96 50.24
9.0 254.34 56.52
10.0 314.0 62.80
>>>
out put在前两列中是对齐的,但第三列中的十个输出中有四个看起来是右键对齐的 为了确保对齐,您可以首先将每个数字设置为固定宽度的字符串
def main():
print('Radius\tArea\tCircumference')
print('----------------------------')
print()
for radius in range(1, 11):
for area in range(1, 11):
for circumference in range(1, 11):
pi = 3.14
diameter = radius * 2
radius = diameter / 2
area = pi * radius**2
circumference = (2 * pi) * radius
#print(radius, '\t', area, '\t' , format(circumference, ".2f"))
radius_str = "%0.2f" % radius
area_str = "%0.2f" % area
circumference_str = "%0.2f" % circumference
print("%6s\t%6s\t%6s" % (radius_str, area_str, circumference_str))
main()
输出:
Radius Area Circumference
----------------------------
1.00 3.14 6.28
2.00 12.56 12.56
3.00 28.26 18.84
4.00 50.24 25.12
5.00 78.50 31.40
6.00 113.04 37.68
7.00 153.86 43.96
8.00 200.96 50.24
9.00 254.34 56.52
10.00 314.00 62.80
为了确保对齐,可以首先将每个数字设置为固定宽度的字符串
def main():
print('Radius\tArea\tCircumference')
print('----------------------------')
print()
for radius in range(1, 11):
for area in range(1, 11):
for circumference in range(1, 11):
pi = 3.14
diameter = radius * 2
radius = diameter / 2
area = pi * radius**2
circumference = (2 * pi) * radius
#print(radius, '\t', area, '\t' , format(circumference, ".2f"))
radius_str = "%0.2f" % radius
area_str = "%0.2f" % area
circumference_str = "%0.2f" % circumference
print("%6s\t%6s\t%6s" % (radius_str, area_str, circumference_str))
main()
输出:
Radius Area Circumference
----------------------------
1.00 3.14 6.28
2.00 12.56 12.56
3.00 28.26 18.84
4.00 50.24 25.12
5.00 78.50 31.40
6.00 113.04 37.68
7.00 153.86 43.96
8.00 200.96 50.24
9.00 254.34 56.52
10.00 314.00 62.80
这是tab(
'\t'
)的工作方式和Python的工作方式的组合。默认情况下,print
在打印的每个项目之间插入一个空格,因此(例如)第6行实际打印的内容是:
6.0<SPACE><TAB><SPACE>113.04<SPACE><TAB><SPACE>37.68
这是tab(
'\t'
)的工作方式和Python的工作方式的组合。默认情况下,print
在打印的每个项目之间插入一个空格,因此(例如)第6行实际打印的内容是:
6.0<SPACE><TAB><SPACE>113.04<SPACE><TAB><SPACE>37.68
您需要使用字符串格式来确保列之间的间距一致:
line = '{:>12} {:>12} {:>12}'.format(radius, area, format(circumference, '.2f'))
print(line)
值12表示每个列(包括其中的文本)将有12个字符宽
以下是对的正式引用。您需要使用字符串格式来确保列之间的间距一致:
line = '{:>12} {:>12} {:>12}'.format(radius, area, format(circumference, '.2f'))
print(line)
值12表示每个列(包括其中的文本)将有12个字符宽
这里是对的正式引用,您需要调整输出
print(“{:您需要对输出进行对齐
print('{:我重新整理了你的代码,现在可以了
def main():
print('Radius\tArea\tCircumference')
print('----------------------------')
print()
for radius in range(1, 11):
for area in range(1, 11):
for circumference in range(1, 11):
pi = 3.14
diameter = radius * 2
radius = diameter / 2
area = pi * radius**2
circumference = (2 * pi) * radius
print(radius, '\t', format(area, '.2f')+'\t ' ,format(circumference, '.2f'))
我重新整理了你的代码,现在可以了
def main():
print('Radius\tArea\tCircumference')
print('----------------------------')
print()
for radius in range(1, 11):
for area in range(1, 11):
for circumference in range(1, 11):
pi = 3.14
diameter = radius * 2
radius = diameter / 2
area = pi * radius**2
circumference = (2 * pi) * radius
print(radius, '\t', format(area, '.2f')+'\t ' ,format(circumference, '.2f'))
你是如何运行它的,在什么操作系统上运行的?我在Windows 8.1上运行,我在使用Python解释器。你为什么使用。对于lop for Circonfrence?这是必需的吗?代码没有问题,这只是\t
的工作方式。你是如何运行它的,在什么操作系统上运行的?我在Windows 8.1上运行,我在使用Python解释器。为什么u使用。对于lop for Circonfrence?是否需要代码没有问题,这就是\t
的工作方式。或者可能只是指定sep='\t'
并去掉显式'\t'
项。或者可能只是指定sep='\t'
并去掉显式'\t'
项。这是有效的,但现在是只有周长是格式化的“.2f”。我能把它们都格式化成那样吗?我试过了,但它没有像我试过的那样工作,但确实有效。我个人喜欢这种格式,但请注意,这不是你在其他答案中看到的新样式python格式。你可以将这种样式称为“printf”格式化。这是可行的,但现在只有周长被格式化为“.2f”。我能把它们都格式化成那样吗?我试过了,但它没有像我试过的那样工作,但确实有效。我个人喜欢这种格式,但请注意,这不是你在其他答案中看到的新样式python格式。你可以参考这篇文章le作为“printf”格式。