我是编程的初学者,我正在练习如何使用嵌套for循环在python 2.7.5中创建乘法表。 这是我的代码
x=range(1,11)
y=range(1,11)
for i in x:
for j in y:
print i*j
pass
好吧,结果是正确的,但它没有像我希望的那样以方形矩阵形式出现。请帮我改进代码
答案 0 :(得分:8)
你应该打印没有换行符。
x = range(1,11)
y = range(1,11)
for i in x:
for j in y:
print i*j, # will not break the line
print # will break the line
答案 1 :(得分:2)
您可以添加格式以保持单元格宽度
x = range(1,11)
y = range(1,11)
for i in x:
for j in y:
# substitute value for brackets
# force 4 characters, n stands for number
print '{:4n}'.format(i*j), # comma prevents line break
print # print empty line
答案 2 :(得分:1)
Python的print语句默认情况下会将新行字符添加到您希望输出的数字中。我想你想在内循环的末尾有一个尾随空格,在外循环的末尾有一个换行符。
您可以使用
来实现这一目标print i * j, # note the comma at the end (!)
并在外部循环块的末尾添加一个新行:
print ''
要详细了解尾随昏迷及其工作原理,请查看此处:"How to print in Python without newline or space?"。请注意,它在Python 3中的工作方式不同。
最终代码应如下所示:
x=range(1,11)
y=range(1,11)
for i in x:
for j in y:
print i*j,
print ''
您还可以查找'\ t'特殊字符,这样可以让您获得更好的格式(即使这个旧资源足够好:https://docs.python.org/2.0/ref/strings.html)
答案 3 :(得分:0)
使用此代码。它工作得更好。我上学时必须这样做,我可以告诉你,经过大约4个小时的学习,它可以正常工作。
def returnValue(int1, int2):
return int1*int2
startingPoint = input("Hello! Please enter an integer: ")
endingPoint = input("Hello! Please enter a second integer: ")
int1 = int(startingPoint)
int2 = int(endingPoint)
spacing = "\t"
print("\n\n\n")
if int1 == int2:
print("Your integers cannot be the same number. Try again. ")
if int1 > int2:
print("The second number you entered has to be greater than the first. Try again. ")
for column in range(int1, int2+1, 1): #list through the rows(top to bottom)
if column == int1:
for y in range(int1-1,int2+1):
if y == int1-1:
print("", end=" \t")
else:
individualSpacing = len(str(returnValue(column, y)))
print(y, " ", end=" \t")
print()
print(column, end=spacing)
for row in range(int1, int2+1, 1): #list through each row's value. (Go through the columns)
#print("second range val: {:}".format(row))
individualMultiple = returnValue(row, column)
print(individualMultiple, " ", end = "\t")
print("")
祝你有美好的一天。