簡體   English   中英

使用嵌套 For 循環的 Python 打印乘法表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM