[英]Printing a Multiplication Table Using Python Nested For Loops
for i in range(3,33,3):
for j in range(1,11,1):
print("3 *", j, '=', i)
if j == 10:
break
這是我得到的 output:
3 * 1 = 3
3 * 2 = 3
3 * 3 = 3
3 * 4 = 3
3 * 5 = 3
3 * 6 = 3
3 * 7 = 3
3 * 8 = 3
3 * 9 = 3
3 * 10 = 3
誰能為我指出錯誤?
將i
更改為i * j
:
for i in range(3,33,3):
for j in range(1,11,1):
print("3 *", j, '=', i * j)
if j == 10:
break
這是一個簡化版本:
for i in range(1, 11):
print(f"3 * {i} = {3 * i}")
Output:
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
3 * 10 = 30
如果您只想打印3
的倍數,則不需要兩個循環。 從 1 到 10 只需一個循環,然后將其乘以 3。
for i in range(1, 11):
j = i * 3
print('3 *', i, '=', j)
我相信您想要乘積和乘數,您可以為此使用枚舉。 代碼將如下所示:
for i,j in enumerate(range(3,33,3)):
print("3 *", i, '=', j)
您正在執行嵌套循環*,但您打算並行循環。 你可以用zip()
做到這一點:
for i, j in zip(range(3, 33, 3), range(1, 11)):
print("3 *", j, '=', i)
Output:
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
3 * 10 = 30
典型問題:如何並行遍歷兩個列表?
* 這將創建一個笛卡爾積,但它被break
縮短了。
但是,在這種情況下,只做數學就更簡單了,就像Barmar 的回答一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.