如何为加法方程式正确设置我的数字格式
How do I format my numbers correctly for an addition equation
好的,所以我正在尝试制作一个实现 main() 函数的程序,以便在调用时生成一个随机加法方程,使用最多 3 位数字。这是我目前所拥有的:
def main():
import random
# Generating random 3 digit number
num1 = random.randint(1,1000)
num2 = random.randint(1,1000)
#Displying the three digit numbers
print(" ",num1)
print("+",num2)
answer = num1 + num2
user_answer = int(input("Enter sum of numbers: "))
if user_answer == answer:
print("Correct answer - Good Work!")
else:
print("Incorrect... The Correct answer is:", + answer)
main()
我遇到的问题是生成的数字的格式。由于它们是随机的,您可以生成类似 375 + 67 的结果,这将使输出如下所示:
375
+ 67
Enter sum of numbers:
这里的直接问题是没有对齐到正确的地方,所以很难做加法。我希望它像这样在正确的位置对齐:
375
+ 67
Enter sum of numbers:
格式函数中是否有一个参数可以让我使用空白 space(如“ ”)正确对齐它?
尝试 right-aligning 使用字符串格式的输出。一般语法为 f"{yourValue:>width}"
.
print(f"{num1:>2}")
print(f"+ {num2:>2}")
如果您希望方程式的总宽度基于“最宽”数字动态变化:
a, b = random.sample(range(1, 1001), k=2)
ans = a + b
a, b = map(str, (a, b))
w = max(map(len, (a, b)))
print("{}\n+ {}".format(a.rjust(w + 2), b.rjust(w)))
在上面的代码片段中,w + 2
说明了加号产生的额外 space 和它右边的一个白色 space,它将始终出现在底部行:'+ '
.
一些示例输出:
196
+ 301
7
+ 9
1000
+ 598
1000
+ 1000
487
+ 76
7
+ 676
如果您想要固定宽度,那么无论“最宽”数字中有多少位,所有方程式的宽度都相同:
a, b = random.sample(range(1, 1001), k=2)
ans = a + b
a, b = map(str, (a, b))
w = 4 # 4 digits in 1000, the max
print("{}\n+ {}".format(a.rjust(w + 2), b.rjust(w)))
输出:
196
+ 301
4
+ 8
1000
+ 598
1000
+ 1000
478
+ 76
7
+ 682
好的,所以我正在尝试制作一个实现 main() 函数的程序,以便在调用时生成一个随机加法方程,使用最多 3 位数字。这是我目前所拥有的:
def main():
import random
# Generating random 3 digit number
num1 = random.randint(1,1000)
num2 = random.randint(1,1000)
#Displying the three digit numbers
print(" ",num1)
print("+",num2)
answer = num1 + num2
user_answer = int(input("Enter sum of numbers: "))
if user_answer == answer:
print("Correct answer - Good Work!")
else:
print("Incorrect... The Correct answer is:", + answer)
main()
我遇到的问题是生成的数字的格式。由于它们是随机的,您可以生成类似 375 + 67 的结果,这将使输出如下所示:
375
+ 67
Enter sum of numbers:
这里的直接问题是没有对齐到正确的地方,所以很难做加法。我希望它像这样在正确的位置对齐:
375
+ 67
Enter sum of numbers:
格式函数中是否有一个参数可以让我使用空白 space(如“ ”)正确对齐它?
尝试 right-aligning 使用字符串格式的输出。一般语法为 f"{yourValue:>width}"
.
print(f"{num1:>2}")
print(f"+ {num2:>2}")
如果您希望方程式的总宽度基于“最宽”数字动态变化:
a, b = random.sample(range(1, 1001), k=2)
ans = a + b
a, b = map(str, (a, b))
w = max(map(len, (a, b)))
print("{}\n+ {}".format(a.rjust(w + 2), b.rjust(w)))
在上面的代码片段中,w + 2
说明了加号产生的额外 space 和它右边的一个白色 space,它将始终出现在底部行:'+ '
.
一些示例输出:
196
+ 301
7
+ 9
1000
+ 598
1000
+ 1000
487
+ 76
7
+ 676
如果您想要固定宽度,那么无论“最宽”数字中有多少位,所有方程式的宽度都相同:
a, b = random.sample(range(1, 1001), k=2)
ans = a + b
a, b = map(str, (a, b))
w = 4 # 4 digits in 1000, the max
print("{}\n+ {}".format(a.rjust(w + 2), b.rjust(w)))
输出:
196
+ 301
4
+ 8
1000
+ 598
1000
+ 1000
478
+ 76
7
+ 682