Я только начал изучать питон и системное программирование. Для задания домашней работы мне нужно найти и напечатать n-е простое число. Я написал код ниже - я могу найти список простых чисел, которые меньше или равны n, однако я не знаю, как я могу напечатать nth prime из списка, который я создал. Я продолжаю получать индексную ошибку: индекс индекса за пределами диапазона.Как распечатать из списка?
Я верю, что чего-то не хватает. Может ли кто-нибудь взглянуть на мой код и дать мне некоторое руководство по его устранению? Ваша помощь очень ценится. Спасибо.
import sys
import math
def s_prime(n):
is_prime=list(range(n+1))
for i in range(2, int(n**0.5)+1):
if is_prime[i]:
for j in range(i**2,n+1,i):
is_prime[j]=False
print 'Prime Value in Decimal: ', [x for x in is_prime[2:] if x]
x_list = [x for x in is_prime[2:] if x]
print x_list[n-1]
def main(argv):
input = int(sys.argv[1])
if input == 1:
print 2
elif input == 2:
print 3
else:
n = int(round(input*(math.log(input,2))))
s_prime(n)
if __name__ == "__main__":
main(sys.argv[1:])
Если вы только начинаете с Python, я бы рекомендовал использовать Python 3.x, если ваш класс не требует Python 2.x. (Ваши заявления о печати здесь не являются функциями.) Кроме того, с ошибками индекса я настоятельно рекомендую сначала распечатать индексы и длину любого списка, который вы используете в качестве этапа отладки. – TakeS