Как вывести только чётные/нечётные числа из списка?
Начал учить питон, нужно вывести все чётные/нечётные числа от 1 до введённого(input), на экран. Пытался "вырвать" числа через одно, но выдаёт ошибку "builtins.TypeError: 'int' object is not subscriptable". Искал в интернете, как выводить только чётные/нечётные числа, ничего в моей ситуации не подошло. Заранее спасибо добрым людям за помощь!
n = int(input())
k = int(input())
if k == 1:
for i in range(1, n + 1):
print(i[:1], end=' ')
Ответы (3 шт):
Вы, наверно, имели в виду
n = int(input())
for i in range(1, n + 1, 2):
print(i, end=' ')
Заметьте параметр 2 в функции range().
(Т.к. i целое число, а не список, невозможно к нему применить отрезок [:1], как вы сделали в своей программе и что вызвало ошибку.
Для версии с применением отрезка см. конец этого ответа.)
Объяснение:
Число 2 как 3-ий параметр в функции range(1, n + 1, 2) определяет шаг, т.е. она будет выдавать
- каждый
2-ойэлемент из диапазона1, 2, 3, ... n
т.е. числа 1, 3, 5, и т.д.
Когда бы вы хотели выводить наоборот четные числа, примените range(2, n + 1, 2).
Примечание:
Может быть, что вы хотели сначала из range(1, n + 1) сделать список, чтобы была возможность применить отрезки ([]):
n = int(input())
lst = list(range(1, n + 1))
print(lst[::2])
Отрезки подобны функции range() ([откуда:докуда:шаг]) - я пропустил «откуда» и «докуда», чтобы применить только «шаг» (на весь список).
(Для вывода четных чисел вместо range(1, n + 1) примените range(2, n + 1).)
Для четных чисел:
f = int(input())
for i in range(1, f)
if i % 2 == 0:
print(i, end = ' ')
Для нечетных чисел:
f = int(input())
for i in range(1, f)
if i % 2 != 0:
print(i, end = ' ')
for number in range(1, 21, 2):
print(number)
вывод:
1
3
5
7
9
11
13
15
17
19