python - 使用 for 循环将标题添加到乘法表
问题描述
我正在制作一个产品表,用户提供输入以确定其大小。
列标记为 AZ 行由带有“|”的数字标记 在它的旁边。
该程序正确打印所有标题。唯一的问题是,产品表的打印次数与沿行的输入相同。
请参阅附件图像,了解我输入“3”的尝试。图像上输入“4”的黑色产品表是答案的格式。
def get_pro_tab():
n = int(input('Please enter a positive integer: '))
print("(Don't go too crazy)")
print()
#letters
print(' ',end='')
for letter in range(n):
print('{0:4}'.format(chr(65 + letter)),end=' ')
print()
#margins
marigin = 0
for number in range(1, n+1):
print(str(number)+ "|", end='')
#numbers
prod = 0
for y in range(1, n+1):
for z in range(1, n+1):
prod = y * z
print('{0:4}'.format(str(prod)), end=' ')
print('\n')
解决方案
我认为您的代码中只有一个额外的循环。我刚刚评论了它,现在我认为它有效:
def get_pro_tab():
n = int(input('Please enter a positive integer: '))
print("(Don't go too crazy)")
print()
#letters
print(' ',end='')
for letter in range(n):
print('{0:4}'.format(chr(65 + letter)),end=' ')
print()
#margins
marigin = 0
for number in range(1, n+1):
print(str(number)+ "|", end='')
#numbers
prod = 0
#for y in range(1, n+1):
for z in range(1, n+1):
prod = number * z
print('{0:4}'.format(str(prod)), end=' ')
print()
对于输入 5,将打印:
A B C D E
1|1 2 3 4 5
2|2 4 6 8 10
3|3 6 9 12 15
4|4 8 12 16 20
5|5 10 15 20 25
如果您愿意,可以使用以下格式字符串让您的生活更轻松:
def get_pro_tab():
n = int(input('Please enter a positive integer: '))
print("(Don't go too crazy)")
print()
#letters
print(' ',end='')
for letter in range(n):
print('{0:>4s}'.format(chr(65 + letter)),end=' ')
print()
#margins
marigin = 0
for number in range(1, n+1):
print(str(number)+ "|", end='')
#numbers
prod = 0
#for y in range(1, n+1):
for z in range(1, n+1):
prod = number * z
print('{0:4d}'.format(prod), end=' ')
print()
如果您使用相同的输入运行此程序,您将获得:
A B C D E
1| 1 2 3 4 5
2| 2 4 6 8 10
3| 3 6 9 12 15
4| 4 8 12 16 20
5| 5 10 15 20 25
好吧,我知道,美丽在于旁观者的眼中,但对我来说,如果数字向右对齐,它看起来更有吸引力。但同样,这只是对您的代码的一个非常小的修改。
推荐阅读
- javascript - Vue 插槽函数有什么用?(Vuetify 组件)
- vue.js - Vuetify 从中获取选定的索引
- sockets - HTTP/1.1 如何解决 TCP 重置问题?
- java - Eclipse JavaFX css 未知属性 -fx-background-color
- javascript - 有没有办法遍历按钮列表并在单击特定按钮时切换它?
- javascript - 从文本文件 javascript 中调用数据
- java - HikariCP 池溢出 Spring Boot
- oauth-2.0 - 如何在 AAD 中设置系统分配身份的范围?
- reactjs - React:嵌套数组形式 - 输入字段 onChange 处理程序
- c - 无法到达c中的第一位字符