Проблема вызова функции для тестирования в Python? - PullRequest
0 голосов
/ 24 сентября 2018

Я возвращаюсь в Python через некоторое время в Javascript.В настоящее время я пытаюсь написать функцию, которая проверяет набор чисел, чтобы увидеть, просты ли они.

Я знаю, как сделать простую функцию, которая делает это, но в настоящее время у меня возникают некоторые проблемы с пониманиемкак реализовать это в тесте.Любая помощь будет высоко ценится.

def first_100_prime_numbers():
    for prime in primes:
        if (prime > 2) & (prime % 2 != 0):
            return primes

def test():
    primes = set([2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541])

    if set(first_100_prime_numbers()) == primes:
        print("Correct.")
    else:
        print("Answer is wrong. Keep trying!")

test()

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Перво-наперво

a & b выполняет побитовый оператор "и" между a и b.Вы уверены, что хотите использовать там побитовый оператор?Чтобы применить логический оператор «и» между a и b, необходимо использовать a and b.Взгляните на эту ссылку .

Проверьте идентификацию

Я попытался запустить ваш код с исправлениями, предложенными @SuperStew, и он заработал, как и ожидалось, напечатав «Correct».на консоли.Я также отметил, что ваши коды не верны, и отредактировал их.Возможно, в этом была проблема.

Последнее, но не менее важное

Вы знаете, что ваша функция не выполняет то, что вы предлагаете, верно?Вам следует проверить, не делится ли число на все предыдущие простые числа.Это тоже другие ошибки, но, насколько я понимаю, это не главное.

0 голосов
/ 24 сентября 2018

Что ж, в этой строке вам нужно дать аргумент

def first_100_prime_numbers():

должен быть похож на

def first_100_prime_numbers(primes):

и не забывать фактически передавать что-то, когда вы его вызываете

if set(first_100_prime_numbers(primes)) == primes:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...