def find_prime():
finding_prime=2
prime_arr = [0 for i in range(150)]
for i in range(1,100):
if i ==2 :
prime_arr[0] = 2
if i ==3 :
prime_arr[1] =3
while finding_prime < (i//2+1):
if i % finding_prime ==0: break
else: prime_arr[i] = i
finding_prime+=1
--------------------------------------------------
for i in range (0, len(prime_arr)):
prime_arr.remove(0) ///
ValueError: list.remove(x): x not in list 라고 에러가 떠요
인터넷보고 del, pop()도 써봤는데 안되요 ㅠ
------------------------------------------------------
print (prime_arr, end=" ")
def main():
print(find_prime())
main()
for loop가 prime_arr의 사이즈만큼 돌아가는데 실제 prime_arr의 아이템들 중 0의 개수는 그것보다 작잖아
그러니 이미 없는 아이템을 지우라니 에러가 나지
이런 식으로 지우려면 for를 무한 루프로 변경하고, 루프 안에서 지우려는 값의 아이템이 있는지 검사한 다음, 있으면 지우고 없으면 break해야지
글고 그냥 prime_arr = [x for x in prime_arr if x != 0] 0이 아닌 것들을 뽑아서 새로 만드는게 나을지도.. 파이썬 리스트 배열 기반 리스트라 아이템 하나 삭제될 때마다 계속 복사가 일어날걸
난 remove쓸때만 try except로 잡아주는게 편하더라