Python 从列表的所有索引中获取值(确定素数)

Python 从列表的所有索引中获取值(确定素数),python,python-3.x,while-loop,Python,Python 3.x,While Loop,首先也是最重要的是,我对Python还不熟悉。我试图通过使用模运算,%来确定一个数,比如说167是质数 例如:。, 让167%n=某个值i 当167%1和167%167时,它应该返回0,对于范围(2166)中的n,它应该给出167%n的剩余部分。我遇到的问题是,当167%n为n=1~167时,我试图打印余数,但不知道如何获取列表索引的值(应该是余数) 所以,这里是我所拥有的: L = [] #creates empty list i=0 #initialize i? for i in

首先也是最重要的是,我对Python还不熟悉。我试图通过使用模运算,
%
来确定一个数,比如说167是质数

例如:。, 让
167%n=某个值i

167%1
167%167
时,它应该返回0,对于
范围(2166)
中的n,它应该给出
167%n
的剩余部分。我遇到的问题是,当
167%n
n=1~167
时,我试图打印余数,但不知道如何获取列表索引的值(应该是余数)

所以,这里是我所拥有的:

L  = [] #creates empty list
i=0     #initialize i? 
for i in range(1, 168) :
if 167 % i == 0  :
    print ("There is no remainder")
else :
    167 % i == x   # x should be the value of the remainder 
    L[i].append(x) #attempting to add x ... to the indices of a list. 
    print(L[x])    #print values of x.
如果我可以使用while循环就更好了,这应该更清晰。因此,当
i
从1-167迭代时,它应该将结果
x
添加到列表的索引中,我想打印这些结果


有推荐人吗?谢谢你的帮助!!非常感谢。

这将创建一个不等于零的所有余数的列表:

L  = []
for i in range(1, 168) :
    remainder = 167 % i
    if remainder == 0  :
        print("There is no remainder")
    else:
        L.append(remainder)
        print(remainder)

>>> len(L)
165
您的代码中存在许多问题:

  • 你的缩进是错的
  • 在循环之前设置
    i=0
    没有意义,因为它不在循环之前使用,并且在循环中被重写
  • 这:
    167%i==x
    将剩余部分与不存在的
    x
    进行比较。您想将结果分配给
    x
    ,其中
    x=167%i
  • 您尝试使用
    L[i]在索引
    i
    处追加
    L
    的元素。追加(x)
    ,但您希望使用
    L.append(x)
    x
    追加到
    L
  • 最后,您尝试使用
    print(L[x])
    获得刚才添加的值,但您需要使用
    print(L[i])
    ,更简单,只需使用
    print(restinutes)
    打印
    余数即可

谢谢!我刚刚意识到这个列表是多余的!