python - 有没有办法在 python 的单行中使用 for 打印范围
问题描述
所以,这是我计算一个数字是否为素数的代码。如果一个数字是否为素数,它也会打印出该数字的除数。当我尝试在单行的列表中打印非素数的除数时,我的问题就出现了。
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]
推荐阅读
- css - css 网格:网格间隙 1px 具有不同的列和行大小
- excel - 如果条件为真,则从工作簿中的其他工作表有条件地返回值
- ios - 如何使用模拟器在 XCUITest 中以编程方式清除 NSUserDefaults
- angular - 带有 Laravel 后端的 Angular 应用程序作为 API RESTful Auth 问题
- python - 传播计算结果
- big-o - 用大 o 表示法删除常数是什么意思?
- javascript - 从浏览器检索用户输入以在控制器中用于第三方查询字符串 rails
- mysql - 将所有 JSON 列转换为新表
- functional-programming - 如何与 acync 函数收敛?
- python - bisection_search 产生意外的 None 结果