Я написал очень простую функцию в Python, которая печатает все простые числа в определенной последовательности.Python: Удаление ненужных скобок?
Он отлично работает, но результаты, которые он дает мне, имеют слишком много скобок/скобок в них. Я хотел бы получить результат как один вывод с одним списком, включая все числа, а не с множеством выходов, каждый из которых содержит один номер.
Вот код:
def prime_list(X, Y):
Z = 0
while X <= Y:
if is_prime(X):
Z = Z, X
X = X + 1
print (Z)
Функция is_prime()
используется в коде просто возвращает True
, если число является простым числом, и False
, если это не так.
В принципе, для каждого цикла он проверяет, является ли X
простым числом. Если это так, то X
будет добавлен в список под названием Z
. Хотя, когда он делает это, он также добавляет ненужные скобки/скобки в список. Вот результат, используя последовательность 1-100:
>>> prime_list(1,100)
(((((((((((((((((((((((((0, 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)
Как вы можете видеть, есть слишком много скобки/круглые скобки.
Как я могу переписать код, чтобы он не делал их?
Как примечание, говорящее о ненужных скобках: вы не хотите 'print (Z)'. Если это Python 2.x, просто сделайте 'print Z'. Если это 3.x, 'print' - вызов функции, как' is_prime', так что 'print (Z)'. – abarnert
Что еще более важно, вы, вероятно, хотите «вернуть Z» в любом случае, а не 'print Z'. Это означает, что вы можете написать код, который вызывает 'prime_list' и что-то делает с результирующим списком, кроме того, что он просто распечатывает его и отбрасывает. – abarnert
@abarnert Спасибо, хорошие моменты. Я не привык работать со списками, поэтому, полагаю, поэтому я сделал это 'print', а не' return' – kongehund