簡體   English   中英

有沒有辦法在 python 的單行中使用 for 打印范圍

[英]Is there a way to print ranges using for in a single line in python

所以,這是我計算一個數字是否為素數的代碼。 如果一個數字是否為素數,它也會打印出該數字的除數。 當我嘗試在單行的列表中打印非素數的除數時,我的問題就出現了。

x=int(input())
if x<0:
    print("you did not enter a natural nubmer")
else:
    if x > 1:
        for i in range(2, x//2):
            if (x % i) == 0:
                print(x, "is not a prime number")
                for n in range (2, x-1):
                    if x%n==0:
                        print[n]
                break
        else:
            print(x, "is a prime nubmer")
            print([1,x])
    else:
        print(x, "is not a prime number")
        for n in range (2, x-1):
                    if x%n==0:
                        print[n]

例如 8,它會打印它不是素數,然后它會打印 [2] 和 [4],但我希望它打印 [2,4]。 請幫忙,謝謝。

這就是list comprehension的內容:

divs = [n for n in range(2, x - 1) if x % n == 0]
print(divs) # [2, 4]

要打印多次而不進入下一行,您可以使用這部分代碼:print(n,end="")。 所以你的代碼變成了這樣:

x=int(input())
if x<0:
    print("you did not enter a natural nubmer")
else:
    if x > 1:
        for i in range(2, x//2):
            if (x % i) == 0:
                print(x, "is not a prime number")
                for n in range (2, x-1):
                    if x%n==0:
                        print(n,end=" ")
                break
        else:
            print(x, "is a prime nubmer")
            print([1,x])
    else:
        print(x, "is not a prime number")
        for n in range (2, x-1):
                    if x%n==0:
                        print[n]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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