Перейти к содержанию
На чтение 2 мин Просмотров 1.6к. Опубликовано 27.01.2023
Содержание
- Введение
- Написание кода программы для подсчёта чётных и нечётных цифр числа
- Заключение
Введение
В ходе статьи напишем программу для подсчёта чётных и нечётных цифр в числе на языке программирования Python.
Написание кода программы для подсчёта чётных и нечётных цифр числа
Для начала дадим пользователю возможность ввода числа и создадим две переменные, одна для чётных цифр, вторая для нечётных:
number = int(input('Введите число: '))
# Для чётных цифр
even = 0
# Для нечётных цифр
odd = 0
Создадим цикл while, который не закончится пока number > 0:
number = int(input('Введите число: '))
even = 0
odd = 0
while number > 0:
Внутри цикла зададим условие, если number делится на 2 без остатка, то цифра чётная и прибавляем к even единицу, если условие не сработало, то цифра нечётная и прибавляем единицу к odd:
number = int(input('Введите число: '))
even = 0
odd = 0
while number > 0:
if number % 2 == 0:
even += 1
else:
odd += 1
После условия делим number целочисленно на 10, чтобы избавиться от цифры, которая уже была проверена:
number = int(input('Введите число: '))
even = 0
odd = 0
while number > 0:
if number % 2 == 0:
even += 1
else:
odd += 1
number = number // 10
Выведем результат используя форматирование f-string:
number = int(input('Введите число: '))
even = 0
odd = 0
while number > 0:
if number % 2 == 0:
even += 1
else:
odd += 1
number = number // 10
print(f'Количество чётных цифр: {even}')
print(f'Количество нечётных цифр: {odd}')
Проверка программы:
Введите число: 9876124
Количество чётных цифр: 4
Количество нечётных цифр: 3
Заключение
В ходе статьи мы с Вами написали программу для подсчёта чётных и нечётных цифр в числе на языке программирования Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂
Посчитать четные и нечетные цифры числа
Определить, сколько в числе четных цифр, а сколько нечетных. Число вводится с клавиатуры.
Решение задачи на языке программирования Python
Если число делится без остатка на 2, его последняя цифра четная. Увеличиваем на 1 счетчик четных цифр even. Иначе последняя цифра числа нечетная, увеличиваем счетчик нечетных цифр odd.
В Python операцию нахождения остатка от деления выполняет знак %
.
Чтобы избавиться от младшего уже учтенного разряда, число следует разделить нацело на 10. Деление нацело обозначается двумя слэшами //
.
a = int(input()) even = 0 odd = 0 while a > 0: if a % 2 == 0: even += 1 else: odd += 1 a = a // 10 print(f'Even: {even}, odd: {odd}')
Пример выполнения:
Кроме чисто математического подхода в Python можно решить задачу “через строку”. Мы не будем переводить введенное строковое представление числа к целочисленному типу, вместо этого переберем символы строки в цикле for
. Каждый символ преобразуем к числу и проверим на четность.
a = input() even = 0 odd = 0 for i in a: if int(i) % 2 == 0: even += 1 else: odd += 1 print("Even: %d, odd: %d" % (even, odd))
Поскольку количество четных (как и нечетных) цифр ограничено, в программу можно включить что-то типа “базы данных” и проверять каждый символ на вхождение в нее.
a = input() digits = "02468" even = 0 odd = 0 for i in a: if i in digits: even += 1 else: odd += 1 print("Even: %d, odd: %d" % (even, odd))
Обратим внимание, что оператор in
языка Python в заголовке цикла for
обозначает иное, чем в заголовке условного оператора. Логическое выражение i in digits
возвращает истину если i входит в состав digits. В иных случаях – ложь.
Больше задач в PDF
you are comparing the whole number every time. you need to convert it to a string and then loop over every number in that string of numbers, cast it back to an integer and see if its remainder is 0
def num_even_digits(numbers):
count = 0
numbers = str(numbers)
for number in numbers:
try:
number = int(number)
except ValueError:
continue
if number % 2 == 0:
count += 1
return count
print(num_even_digits(123456))
if you want to actually loop through every possible number in the range of 0 to your large number you can do this.
def num_even_digits(numbers):
count = 0
for number in range(0, numbers):
if number % 2 == 0:
count += 1
return count
print(num_even_digits(10))
problems with your current function:
def num_even_digits(n): # n is not descriptive, try to make your variable names understandable
i=0
count = 0
while i < n: # looping over every number from 0 to one hundred twenty three thousand four hundred and fifty six.
i+=1
if n%2==0: # n hasn't changed so this is always going to be true
count += 1
return count
print(num_even_digits(123456))
1 / 0 / 0 Регистрация: 13.11.2019 Сообщений: 22 |
|
1 |
|
Вывести количество четных цифр числа23.06.2020, 10:25. Показов 19378. Ответов 5
Написать программу, которая выводит на экран количество четных цифр числа
0 |
Catstail Модератор 35198 / 19414 / 4063 Регистрация: 12.02.2012 Сообщений: 32,431 Записей в блоге: 13 |
||||
23.06.2020, 10:33 |
2 |
|||
0 |
zhurban 289 / 191 / 104 Регистрация: 14.11.2017 Сообщений: 489 |
||||
23.06.2020, 10:34 |
3 |
|||
Сообщение было отмечено Jojo14 как решение Решение
1 |
Модератор 35198 / 19414 / 4063 Регистрация: 12.02.2012 Сообщений: 32,431 Записей в блоге: 13 |
|
23.06.2020, 10:36 |
4 |
zhurban, а если задать нуль?
1 |
289 / 191 / 104 Регистрация: 14.11.2017 Сообщений: 489 |
|
23.06.2020, 10:40 |
5 |
Catstail, упс
0 |
Catstail Модератор 35198 / 19414 / 4063 Регистрация: 12.02.2012 Сообщений: 32,431 Записей в блоге: 13 |
||||
23.06.2020, 10:44 |
6 |
|||
Еще вариант:
0 |
Суть кода в том что – ‘Пользователь вводит число (a). Найти количество всех нечетных чисел, на диапазоне
Я настрогал пару строчек кода, но все равно не выходит в ответе. Когда ввожу даже 1 число просто ничего не выводиться, и даже причину не могу понять.
a= input('Введите первое число:')
def sum():
if a / 2 == 0:
print ('четное число')
else:
print ('Нечетное число')
GrAnd
13.4k1 золотой знак8 серебряных знаков23 бронзовых знака
задан 15 янв 2022 в 10:37
1
Я так понимаю, тебе нужно найти количество чётных чисел в определенном вводимом диапазоне.
num1 = int(input('Введи первое число: ')) // Пользователь вводит первое число
num2 = int(input ('Введите второе число: ')) // Пользователь вводит второе число
k = 0 // Добавляем переменную куда будем плюсовать количество чётных чисел
for i in range(num1,num2+1): // Создаём цикл в диапазоне введённых цифр (+1 во втором аргументе, потому что в range доходит ДО числа, а не ДО ВКЛЮЧИТЕЛЬНО этого числа)
if i % 2 == 0: // Проверяем на чётность (если чётное делаем:)
k +=1 // Если число чётное +1
print (k)
ответ дан 15 янв 2022 в 11:18
BnLvTBnLvT
285 бронзовых знаков
- Введённое значение преобразовать в число при помощи функции
int()
. - Проверять остаток от деления
a % 2 == 0
. - Ну и функцию таки следует вызвать
sum()
.
a = int(input('Введите первое число: '))
def sum():
if a % 2 == 0:
print ('четное число')
else:
print ('Нечетное число')
sum()
P.S. Вообще-то есть встроенная функция с таким именем, так что называя свою так же вы лишаетесь доступа к ней. Так что лучше не называть что-либо стандартными именами.
ответ дан 15 янв 2022 в 10:48
GrAndGrAnd
13.4k1 золотой знак8 серебряных знаков23 бронзовых знака