这是一个while循环,我需要将log变量(最新变量)添加到列表中。我不知道该怎么做。
我将添加5和7的倍数的每个数字(即x % 7==0
和x % 5==0
)添加到我要在末尾声明的列表中。
但是如何?
-
“此程序是关于查找1500和2700之间的每个数字 (含),可被5和7整除。
x=1500
for x in range(1500,2701):
if x % 7==0 and x % 5==0:
print("\n", x,"IS DIVISIBLE\n")
x=x+1
#I THINK THE LIST STUFF GOES HERE
else:
print(x,"is not a common multiple")
x=x+1
input()
基本上,我只想将x
变量(可以被7和5整除)(每次循环运行)添加到列表中。例如。 1505、1540等
答案 0 :(得分:1)
如果您要提高效率,请先做一些数学运算:
5
和7
本身是素数 1 ,因此,当且仅当从其乘积中可将其整除时,该数字才能被两者整除。35
,直到达到范围的末尾。请注意,您知道您的范围内将有多少这样的数字!现在输入代码:
first = next(x for x in range(1500, 2701, 5) if x % 35 == 0)
res = [first + 35*i for i in range((2701-1-1500)//35 + 1)]
产生:
[1505, 1540, 1575, 1610, 1645, 1680, 1715, 1750, 1785, 1820, 1855, 1890, 1925, 1960, 1995, 2030,
2065, 2100, 2135, 2170, 2205, 2240, 2275, 2310, 2345, 2380, 2415, 2450, 2485, 2520, 2555, 2590,
2625, 2660, 2695]
这比任何基于 if 的方法都要快。
就您的代码问题而言,其他答案和注释已对它进行了全面讨论,因此我不再赘述。
1 ,一般来说,这与之无关
答案 1 :(得分:0)
创建列表变量:
foo_list = []
之后,您所要做的就是在循环的最后将值添加到列表中
foo_list.append(<your variable>)
所以在您的代码上看起来像这样:
my_list = []
x=1500
for x in range(1500,2701):
if x % 7==0 and x % 5==0:
print("\n", x,"IS DIVISIBLE\n")
my_list.append(x)
else:
print(x,"is not a common factor")
如您所见,x+=1
已删除,循环正在为您完成!
正如某些人指出的那样,如果您只是对获取列表感兴趣,而如果数字是一个公共因素,则不希望打印此列表,则可以使用列表理解,如下所示:
my_list= [x for x in range(1500, 2701) if x%5==0 and x%7==0]
答案 2 :(得分:0)
满足条件后,您无需增加Authorized Customer Signature
,因为x
生成器会为您处理。
您很亲密:
range
您也可以在列表理解中执行此操作,以提高速度:
somelist = []
for x in range(1500, 2701):
if x%5==0 and x%7==0:
somelist.append(x)
# You don't need an else block as the loop will just continue
答案 3 :(得分:0)
result =[]
for x in range(1500,2701):
if x % 7==0 and x % 5==0:
result.append(x)
else:
print(x,"is not a common factor")
x=x+1
答案 4 :(得分:0)
my_list = []
for x in range(1500,2701):
if x % 7==0 and x % 5==0:
print("\n", x,"IS DIVISIBLE\n")
my_list.append(x)
#I THINK THE LIST STUFF GOES HERE
else:
print(x,"is not a common factor")
print(my_list)