Как найти нечетное значение в питоне

Картинка к уроку "Определение четности числа в Python"

На чтение 2 мин Просмотров 91.5к. Опубликовано

Для того чтобы определить четное число введено или нет в Python необходимо воспользоваться оператором «Остаток деления» и написать условие.

Содержание

  1. Оператор вычисления остатка от деления
  2. Определения четности числа с помощью оператора остатка от деления
  3. Написание функции для определения четности числа

Оператор вычисления остатка от деления

В языке программирования Python, также как и в других языках программирования, есть команда — оператор (%), который вычисляет остаток от деления на число. Приведем примеры:

4 % 2
>>>0
5 % 2
>>>1
20 % 10
>>>0
25 % 10
>>>5

При делении числа 4 на 2 — остаток 0. При делении числа 5 на 2 — остаток 1. При делении числа 20 на 10 — остаток 0. При делении числа 25 на 10 — остаток 5.

Определения четности числа с помощью оператора остатка от деления

Мы знаем, что при делении четного числа на 2 у нас в остатке остается 0. Поэтому для определения четного и нечетного числа можем воспользоваться оператором остатка от деления. Напишем для этого условие:

a = 5
if a % 2 == 0:
    print('Четное число')
else:
    print('Нечентное число')
>>> Нечетное число

В начале присваиваем переменной a число, четность которого хотим проверить. Далее пишем условие: если остаток деления переменной a на 2 равно 0, то вывести на экран «Четное число», в противном случае вывести «Нечетное число».

При запуске написанного кода, мы увидим «Нечетное» число.

Написание функции для определения четности числа

Можем написать функцию, которая на входе будет получать число, а на выходе выводить на экран «Четное число» или «Нечетное число» в зависимости от четности полученного числа.

def even_or_odd(a):
    if a % 2 == 0:
        print('Четное число')
    else:
        print('Нечентное число')

even_or_odd(10)
>>> Четное число
even_or_odd(11)
>>> Нечетное число

Разберем написанный код. В первой строке мы объявляем новую функцию. Назовем её even_or_odd. Функция на входе будет получать одно число. Далее она проверяет это число на остаток от деления на 2 и выводит на печать «Четное число» или «Нечетное число». Условие, которое написано в функции мы рассмотрели уже ранее.

Как видим, определить четность числа — это довольно простая задача, которая быстро решается с помощью оператора остатка от деления (%).

( 23 оценки, среднее 3.96 из 5 )

nums = [1,2,3,4,5,6,7,8,9,10,11,12]
odds = [ n for n in nums if n%2 ]
print odds

Gives:

>>> 
[1, 3, 5, 7, 9, 11]

This can be put into a function like so:

def getOdds(aList):
    return [ n for n in aList if n%2 ]

Example usage:

myOdds = getOdds(nums)
print("{0} has {1} odd numbers which were {2}".format(nums,len(myOdds),myOdds))
print("The odd numbers sum to {0}".format(sum(myOdds)))

Produces:

>>> 
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] has 6 odd numbers which were [1, 3, 5, 7, 9, 11]
The odd numbers sum to 36

As to what you’re doing wrong, you’re iterating over an iterable containing the elements 0 to size this won’t always be the value of num (unless num is indeed range(size)). Once you make i represent a value in num which you’re iterating over, if i%2 == 0 will mean it’s even, if you want odds, the number musn’t be divisible by two. Hence this should be changed to either if i%2 != 0 or if i%2. You will also have to declare the odd list before the for i ... loop, so you can append the numbers in num which meet the condition in the if i%2 selection control structure. You should appened the number in num by doing odd.append(i), at the moment you’re reassigning odd a new value. You also should not be incrementing i. ‘i’ should represent a number in num not the index of the number in num.

Понимаю, что надо делить на 2 и смотреть на остаток. Вот что пытался делать.

if ( not line%2 ):
    print 'chek true'

Kromster's user avatar

Kromster

13.5k12 золотых знаков43 серебряных знака72 бронзовых знака

задан 7 сен 2011 в 1:41

hooko's user avatar

Возможен и такой вариант:


for x in (0, 1, 2, 3, 4):
    if not x & 1: 
        print "%d is even" % x

ответ дан 8 сен 2011 в 6:54

dude's user avatar

dudedude

5512 серебряных знака6 бронзовых знаков

for x in (0, 1, 2, 3, 4):
    if x % 2 == 0: 
        print "%d is even" % x

http://ideone.com/2WMaT

Если нужна не четность, а нечетность — соответственно, x % 2 != 0.

Nicolas Chabanovsky's user avatar

ответ дан 7 сен 2011 в 1:54

drdaeman's user avatar

drdaemandrdaeman

9,2231 золотой знак19 серебряных знаков37 бронзовых знаков

3

def checker(number):
    try:
        number = int(number)
        if number % 2 == 1:
            print('непарное')
        if number % 2 == 0:
            print('парное')
    except:
        print('этот символ не номер')

checker(8)

ответ дан 16 июл 2020 в 22:19

Chipnick's user avatar

for x in range(000000, 1000000000):
  if x % 2 == 0:
    print(Chet)
  else:
    print(Nechet)

aleksandr barakin's user avatar

ответ дан 30 мая 2018 в 17:28

Amir Banov's user avatar

1

number = int(input("Введите число: "))
if (number/2):
    print("Четное число")
else:
    print("Нечетное число")

0xdb's user avatar

0xdb

51.4k194 золотых знака56 серебряных знаков232 бронзовых знака

ответ дан 3 фев 2019 в 17:33

LIMONSTER's user avatar

number = int(input("Введите число: "))
if (number%2 == 0):
  print("Четное число")
else:
  print("Нечетное число")

ответ дан 22 июл 2018 в 9:27

Scanax's user avatar

1

number = int(input("Введите число: "))
if (number%2 > 0):
  print("Не чётное число =(")
else:
  print(number+2)

Regent's user avatar

Regent

19.1k6 золотых знаков29 серебряных знаков44 бронзовых знака

ответ дан 2 фев 2017 в 19:29

Николай's user avatar

2

Как определить четные и нечетные числа в Python?

Нечетные и четные числа:

Если вы делите число на 2, а в остатке получается 0, то оно называется четным числом, в противном случае — нечетным числом.

Примеры четных чисел: 2, 4, 6, 8, 10 и т. д.

Примеры нечетных чисел: 1, 3, 5, 7, 9 и т. д.

См. этот пример:

num = int(input("Enter a number: "))
if(num % 2) == 0:
   print("{0} is Even number".format(num))
else:
   print("{0} is Odd number".format(num))

Выход:

Четные или нечетные числа

Изучаю Python вместе с вами, читаю, собираю и записываю информацию опытных программистов.

Печать четных и нечетных чисел из списка Python — хорошее упражнение, если вы только начинаете работать с Python и хотите изучить его основы.

Чтобы извлечь четные и нечетные числа из списка Python, вы можете использовать цикл for и оператор Python по модулю. Второй вариант — заменить цикл for на понимание списка. Расширенный синтаксис оператора среза также позволяет нам делать это с помощью одной строки кода, но только тогда, когда у вас есть списки последовательных чисел.

В этом руководстве мы рассмотрим несколько примеров, и цель реализации нескольких способов решения одной и той же проблемы — развить творческий потенциал, необходимый вам как разработчику Python.

Давайте начнем!

Как вывести нечетные числа из списка в Python?

Чтобы вывести нечетные числа из списка чисел, вы можете использовать оператор Python по модулю, связанный с математической концепцией остатка.

При делении нечетного числа на 2 остаток от деления равен 1. При делении четного числа на 2 остаток от деления равен 0.

Давайте воспользуемся этой концепцией и циклом Python for для вывода нечетных чисел из списка.

def get_odd_numbers(numbers):
    odd_numbers = []
    for number in numbers:
        if number % 2 == 1:
            odd_numbers.append(number)
    return odd_numbers

Перед запуском цикла for мы определяем пустой список, затем на каждой итерации цикла for мы добавляем в список нечетные числа.

numbers = [2, 3, 6, 8, 13, 45, 67, 88, 99, 100]
print(get_odd_numbers(numbers))
[output]
[3, 13, 45, 67, 99]

Как вывести четные числа из списка в Python?

Это очень похоже на то, что мы видели в предыдущем разделе …

Чтобы вывести четные числа из списка чисел, мы можем извлечь числа, которые при делении на 2 возвращают остаток, равный 0.

Код идентичен тому, который мы создали для извлечения нечетных чисел с небольшой разницей в условии if внутри цикла for.

def get_even_numbers(numbers):
    even_numbers = []
    for number in numbers:
        if number % 2 == 0:
            even_numbers.append(number)
    return even_numbers

И результат функции …

numbers = [2, 3, 6, 8, 13, 45, 67, 88, 99, 100]
print(get_even_numbers(numbers))
[output]
[2, 6, 8, 88, 100]

Как создать функцию, разделяющую четные и нечетные числа в списке

Чтобы разделить нечетные и четные числа в списке, мы могли бы использовать тот же подход, основанный на цикле for, который использовался ранее, и сгенерировать два разных списка, один для нечетных и один для четных чисел.

Вместо этого я хочу сделать наш код более кратким, используя понимание списков.

Мы по-прежнему будем использовать понятие остатка …

Давайте создадим базовую функцию, которая принимает список в качестве аргумента и возвращает два списка, один из которых содержит нечетные числа, а другой — четные.

def split_list_even_odd(numbers):
    odd_numbers = [number for number in numbers if number % 2 == 1]
    even_numbers = [number for number in numbers if number % 2 == 0]
    return odd_numbers, even_numbers

Обратите внимание, что эта функция возвращает два списка Python.

Вы знаете, в каком формате эти списки получает вызывающий функцию?

Давайте разберемся…

numbers = [2, 3, 6, 8, 13, 45, 67, 88, 99, 100]
print(split_list_even_odd(numbers))
[output]
([3, 13, 45, 67, 99], [2, 6, 8, 88, 100])

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

print("The odd numbers are {}".format(split_list_even_odd(numbers)[0]))
print("The even numbers are {}".format(split_list_even_odd(numbers)[1]))
[output]
The odd numbers are [3, 13, 45, 67, 99]
The even numbers are [2, 6, 8, 88, 100]

Если вы хотите узнать больше о синтаксисе .format (), используемом в операторе печати, вы можете взглянуть на этот учебник по объединению строк Python.

Программа для печати четных и нечетных чисел от 1 до 100

Чтобы напечатать четные и нечетные числа от 1 до 100, мы могли бы сначала создать наш список чисел вручную, но это займет много времени!

Вместо этого мы будем использовать функцию Python range ().

Вот как вы можете генерировать числа от 1 до 100 с помощью функции Python range ().

>>> numbers = range(1,101)
>>> print(type(numbers))
<class 'range'>

Интересно, что тип объекта, возвращаемого функцией range (), не является списком.

Итак, что мы можем с этим сделать?

Мы все еще можем использовать цикл for или понимание списка, чтобы просмотреть все числа …

>>> [number for number in numbers]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]

Используйте созданную нами ранее функцию для печати четных и нечетных чисел.

def split_list_even_odd(numbers):
    odd_numbers = [number for number in numbers if number % 2 == 1]
    even_numbers = [number for number in numbers if number % 2 == 0]
    return odd_numbers, even_numbers

numbers = range(1,101)
print("The odd numbers are {}".format(split_list_even_odd(numbers)[0]))
print("The even numbers are {}".format(split_list_even_odd(numbers)[1]))
[output]
The odd numbers are [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]
The even numbers are [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]

Как вывести нечетные числа из списка последовательных чисел в Python?

Самый простой способ распечатать нечетные числа из списка последовательных чисел — использовать расширенный синтаксис оператора среза.

Оператор среза возвращает фрагмент списка с заданным начальным индексом (включенным) и конечным индексом (не включенным).

list[start_index:end_index]

Давайте создадим список, содержащий числа от 1 до 10:

>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Чтобы получить первые 4 элемента списка со стандартным синтаксисом оператора среза, мы можем использовать следующее выражение.

>>> numbers[0:4]
[1, 2, 3, 4]

Примечание: как упоминалось ранее, конечный индекс не включается в список, возвращаемый оператором среза.

Чтобы получить полный список с помощью оператора среза, вы можете использовать следующий синтаксис:

>>> numbers[:]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Хорошо, но как это помогает нам получать только нечетные числа?

Для этого мы должны кое-что добавить к базовому синтаксису оператора среза, поэтому он называется расширенным синтаксисом.

С расширенным синтаксисом вы можете передать третий аргумент оператору среза — этот аргумент определяет шаг между элементами, которые должны быть извлечены из списка.

list[start_index:end_index:step]

Например, если значение шага равно 2, оператор среза будет извлекать каждые 2 числа.

Теперь, когда мы это знаем, мы готовы извлечь нечетные числа из нашего списка …

>>> numbers[::2]
[1, 3, 5, 7, 9]

В основном мы получаем полный список, потому что мы не указали начальный и конечный индексы. Кроме того, мы получаем только нечетные числа, потому что мы указали шаг, равный 2.

Как вывести четные числа из списка последовательных чисел в Python?

Это очень похоже на то, что мы видели в предыдущем разделе …

Чтобы распечатать четные числа из списка последовательных чисел Python, вы можете использовать расширенный синтаксис среза с начальным индексом, равным 1, пустым конечным индексом и шагом, равным 2.

>>> numbers[1::2]
[2, 4, 6, 8, 10]

И вуаля!

Это довольно просто, если вы привыкнете к синтаксису оператора среза.

Программа Python для печати наибольшего четного и наибольшего нечетного числа в списке

Чтобы напечатать наибольшее четное и нечетное число в списке Python, мы можем начать с понятий, которые мы видели ранее, связанных с оператором среза.

Еще нам необходимо применить функцию max () к списку, возвращаемому оператором среза.

Наибольшее нечетное число

>>> max(numbers[::2])
9

Наибольшее четное число

>>> max(numbers[1::2])
10

Красиво и просто :)

Разработайте программу Python, которая считает четные и нечетные числа в списке, предоставленном пользователем

Прежде чем завершить это руководство, давайте посмотрим, как мы можем использовать функцию ввода Python для получения списка чисел из пользовательского ввода.

Прежде всего, я хочу увидеть, какой тип данных мы получаем от пользовательского ввода.

>>> numbers = input("Please provide a list of numbers (separated by space): ")
Please provide a list of numbers (separated by space): 1 3 6 37 56 23 89 103 346
>>> print(numbers)
1 3 6 37 56 23 89 103 346
>>> print(type(numbers))
<class 'str'>

Пользовательский ввод представляет собой одну строку, поэтому нам нужно немного манипулировать строкой, чтобы сначала преобразовать ее в список.

Метод Python string split () позволяет преобразовать строку в список.

>>> print(numbers.split())
['1', '3', '6', '37', '56', '23', '89', '103', '346']

Это шаг вперед, но у нас все еще есть список строк, а вместо него нужен список целых чисел.

Понимание списка и функция Python int () могут использоваться для преобразования списка строк в список целых чисел:

>>> numbers = ['1', '3', '6', '37', '56', '23', '89', '103', '346']
>>> [int(number) for number in numbers]
[1, 3, 6, 37, 56, 23, 89, 103, 346]

Отлично! :)

И теперь мы готовы создать нашу функцию, которая преобразует строку, предоставленную пользователем, в список целых чисел.

def get_integers(numbers):
    return [int(number) for number in numbers.split()]

После преобразования пользовательского ввода в список целых чисел мы можем вызвать созданную ранее функцию split_list_even_odd ().

Вот полная программа:

def get_integers(numbers):
    return [int(number) for number in numbers.split()]
def split_list_even_odd(numbers):
    odd_numbers = [number for number in numbers if number % 2 == 1]
    even_numbers = [number for number in numbers if number % 2 == 0]
    return odd_numbers, even_numbers
numbers = input("Please provide a list of numbers (separated by space): ")
numbers = get_integers(numbers)
print("The odd numbers are {}".format(split_list_even_odd(numbers)[0]))
print("The even numbers are {}".format(split_list_even_odd(numbers)[1]))

Выполняем нашу программу…

Please provide a list of numbers (separated by space): 1 3 6 34 56 43 67 88 101 102 134
The odd numbers are [1, 3, 43, 67, 101]
The even numbers are [6, 34, 56, 88, 102, 134]

Оно работает!!

Заключение

Если у вас были какие-либо сомнения по поводу извлечения четных и нечетных чисел из списка Python перед чтением этой статьи…

… Теперь у вас есть все необходимые для этого знания.

Если вы чувствуете, что некоторые вещи все еще неясны, вернитесь и самостоятельно перепишите примеры в этом руководстве с нуля.

Практика — лучший способ изучить и запомнить конструкции Python.

Удачного кодирования! : D

Первоначально опубликовано на https://codefather.tech 25 июля 2021 г.

Больше контента на plainenglish.io

Понравилась статья? Поделить с друзьями:
  • Общаякартинка избранное имя не уникально как исправить
  • Как найти своего друга в майнкрафте
  • Как найти длину дуги от параболы
  • Как составить воронку продаж таргетологу
  • Как найти код цвета автомобиля