+ 2
Застряла на практике Генераторы
Помогите понять, что там в 4 тесте
21 Respuestas
+ 7
Share your attempt
+ 2
Знать бы ещё задание... 🤔
+ 2
Что должно произойти если первое число будет больше второго?
+ 2
if a > b:
a, b = b, a
+ 1
Не могу понять что там в 4 тесте проверки. Перебрала уже, вроде все условия. Никак
0
def isPrime(x):
if x < 2:
return False
elif x == 2:
return True
for n in range(2, x):
if x % n ==0:
return False
return True
def primeGenerator(a, b):
if a < 0 and b < 0:
return False
if a < 0:
for i in range(2, b + 1):
if isPrime(i):
yield i
for i in range(a, b + 1):
if isPrime(i):
yield i
if a == b:
return False
f = int(input())
t = int(input())
print(list(primeGenerator(f, t)))
0
Вывести простые числа между 2 аргументами а и в
0
Используя фуккции
0
Все равно 4 тест ошибку выдаёт (
0
Ну и где в вашем коде это условие:
if a > b:
a, b = b, a
?????!
0
Я добавила это условие- все равно ошибка есть в 4 тесте
0
Покажите Ваш исправленный код
0
def isPrime(x):
if x < 2:
return False
elif x == 2:
return True
for n in range(2, x):
if x % n ==0:
return False
return True
def primeGenerator(a, b):
if a > b:
a, b = b, a
if a < 0 and b < 0:
return False
if a < 0:
for i in range(2, b + 1):
if isPrime(i):
yield i
for i in range(a, b + 1):
if isPrime(i):
yield i
if a == b:
return False
f = int(input())
t = int(input())
print(list(primeGenerator(f, t)))
0
Ну незнаю, хоть у Вас и много ненужных на мой взгляд условий, но и в таком виде он должен работать правильно.
Может попробовать поработать скульптором и отсечь всё лишнее? 🤔
0
زنتهت
0
Я просто уже не знаю, что запихать туда, чтобы предусмотреть все варианты
0
Нужно знать дословное задание со всеми объяснениями и исходным кодом, если он есть.
Я просто не знаю где он находится... 🤔
0
Поиск простых чисел — обычная задача на собеседовании по программированию.
Данный код определяет функцию isPrime(x) , которая возвращает True, если x является простым числом.
Вам нужно создать функцию-генератор primeGenerator() , которая будет принимать два числа в качестве аргументов, и использовать функцию isPrime() для вывода простых чисел в заданном диапазоне (между двумя аргументами).
0
Если Вы ничего не изменяли в функции isPrime(), то данного кода вполне достаточно, единственный вопрос в выводе простых чисел в виде списка, об этом ничего не сказано в задании, возможно нужно его распаковать.
def isPrime(x):
if x < 2:
return False
elif x == 2:
return True
for n in range(2, x):
if x % n ==0:
return False
return True
def primeGenerator(a, b):
if a > b:
a, b = b, a
for i in range(a, b+1):
if isPrime(i):
yield i
f = int(input())
t = int(input())
print(list(primeGenerator(f, t)))
Какие ещё там написаны пояснения к заданию?
Надо внимательно читать всё что написано и точно выполнять все требования, (никакой "отсебятины").
0
Данный код принимает два аргумента в качестве входных данных и передает их функции-генератору, выводя результат в виде списка.