Написать программу которая считает сумму всех нечетных чисел от 0 до 10 python

Код програми на Python:

someArray = [3, 1, 4, 2, 10, 36, 8, 11, 28, 999]

for number in someArray:

if number % 2 == 1:

Пояснення:

С помощью цикла мы пересматриваем все елементы ( числа ) в массиве, и проверяем остачу от деления на 2, если она равна 1, то число нечетное, добавляем его к переменной sum. После выполнения алгоритма выводим на екран эту переменную.

Например:

33 % 2 //Вывод 1

20 % 2 //Вывод 0

15 % 2 //Вывод 1

100 % 2 //Вывод 0

Источник: megaznanija.com

Найдите сумму нечетных чисел из строки чисел в Python

Вопрос просит найти сумму нечетных чисел, когда дана строка чисел. так, например, если нам дано «123», мы должны получить сумму 4.

Это моя попытка, и она возвращает «4», что неверно.

def sumoddnum(s): total= 0 for i in range(len(s)): if i % 2 == 1: total += i return total print(sumoddnum(‘12345’))

Я также пробовал преобразовать s в целые числа, но он продолжает давать мне ошибку «int is not iterable»

Как получить список четных чисел. А также, список нечетных чисел. Уроки Python. Александр Килинкаров


def sumoddnum(s): total= 0 s= int(s) for i in s: if i % 2 == 1: total += i return total print(sumoddnum(‘12345’))
user12462930 01 дек ’19 в 10:07 2019-12-01 10:07
2019-12-01 10:07

6 ответов

Мне нравится использовать здесь подход регулярных выражений. Мы можем применить шаблон регулярного выражения [13579] во входную строку, затем используйте понимание списка в полученном списке нечетных цифр, чтобы найти сумму:

num = «123» odds = re.findall(r'[13579]’, num) sum = sum(int(odd) for odd in odds) print(«the sum is: » + str(sum))
The sum is: 4
user1863229 01 дек ’19 в 10:24 2019-12-01 10:24
2019-12-01 10:24

Читайте также:
Как сделать коллаж программы на телефон

Причина, по которой ваша программа не работает, заключается в строке:

for i in range(len(str)):

здесь вы берете все значения i от 0 до длины строки (без учета длины).

Это означает, что вы складываете все нечетные числа от 0 до длины строки.

Вместо этого сделайте это:

for i in str:

это даст вам каждый символ в строке как i. Сейчас:

i = int(i)

преобразует его в int.

if i%2 == 1: total+=i

окончательный код будет:

def sumoddnum(s): total= 0 for i in s: i = int(i) if i % 2 == 1: total += i return total print(sumoddnum(‘12345’))
user8318833 01 дек ’19 в 10:54 2019-12-01 10:54
2019-12-01 10:54

Это должно сработать для вас:

def sumoddnum(s): return sum(0 if int(i) % 2 == 0 else int(i) for i in s)

или если вы хотите сохранить свою первую попытку, вам следует повторить str затем проверяйте условие на каждом int характера:

def sumoddnum(s): total= 0 for i in s: if int(i) % 2 == 1: total += int(i) return total print(sumoddnum(‘12345’))
user4413799 01 дек ’19 в 10:17 2019-12-01 10:17
2019-12-01 10:17

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

Посчитать четные и нечетные цифры числа. Решение задачи на Python

Тогда имейте в виду, что элементы строки являются символами, поэтому требуется преобразование в int. Это можно сделать с помощью встроенного int функция всякий раз, когда символ фактически представляет собой цифру.

def sumoddnum(s): total= 0 for i in s: if int(i) % 2 == 1: total += int(i) return total

Теперь вы можете задаться вопросом

Какая долгая функция для такой простой задачи!

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

Читайте также:
Как посмотреть картину в интерьере программа

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

def sumoddnum(s): return sum(int(i) for i in s if int(i) % 2 == 1)

С Python 3.8 вы также можете использовать совершенно новый оператор моржа:

def sumoddnum(s): return sum(num for i in s if (num := int(i)) % 2 == 1)

Проблема с вашим вторым подходом уже объясняется самим интерпретатором Python. Вы преобразовали свою строку в целое число, и нет встроенного способа перебора целых чисел. Вам нужно будет найти и реализовать свой собственный способ перебора целых цифр (подсказка: используйте остаток по модулю 10).

Источник: stackru.com

Python. Как написать функцию, возвращающую сумму всех нечетных .

Напишите функцию fun(), которая возвращает сумму всех нечетных произведений в таблице умножения из учебника (таблица умножения от 1 до 10 включительно).

комментировать
в избранное
vdtes­ t [30.5K]
6 месяцев назад

Функция вычисления нечётных произведений из таблицы умножения:

____s=0 #начальное значение суммы

____for a in range(1,11): # первый сомножитель

____________for b in range(1,11): #второй сомножитель

________________­ ____p=a*b #произведение

________________­ ____if p%2==1: #условие нечетности

________________­ ________s=s+p #сумма произведений

____return s

Вот как выглядит эта функция в системе Python

Источник: www.bolshoyvopros.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru