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