ЯЗЫК PYTHON я пыталась написать функцию голосования, но если ввести например
print(election(0, 0, 0))
то выведет не только 0, но и (0, 0, 0)
вот сама задача:
Напишите "функцию голосования" election (название должно быть таким), в которую поступает три числа - x, y, z, которые могут быть равны либо 1, либо 0. Функция должна возвращать то значение, которое встречается среди x, y, z чаще всего.
вот моя программа:
def election(x, y, z):
if ((x == 0) and (y == 0)) or ((x == 0) and (z == 0)) or ((z == 0) and (y == 0)):
print('0')
if ((x == 1) and (y == 1)) or ((x == 1) and (z == 1)) or ((z == 1) and (y == 1)):
print('1')
return x, y, z

ИСПРАВИТЬ!

TaniaAl TaniaAl    3   06.03.2021 07:47    2

Ответы
dogsno dogsno  05.04.2021 07:50

В условии задачи не сказано, что нужно выводить сами значения функции типа (0,0,0), поэтому функция возвращает самое встречаемое значение из x,y,z. А значения уже выводит сама программа используя возвращаемое значение функции.

Код:

def election(x,y,z):

   count = 0

   for i in x,y,z:

       if i == 1:

           count += 1

   if count > 1:

       return 1

   else:

       return 0

a = election(1,1,0)

print(a,"("+str(a)+","+str(a)+","+str(a)+")")

Вывод:

1 (1,1,1)

ПОКАЗАТЬ ОТВЕТЫ
ns151199 ns151199  05.04.2021 07:50

def election(x, y, z):

   summ = sum((x, y, z))

   if summ > 3 or summ < 0:

       # число x, y или z не равно 0 либо 1

       return None

   if summ > 1:

       return 1

   else:

       return 0

# И есть ещё вариант с использованием collections:

from collections import Counter

def election(x, y, z):

   return Counter((x, y, z)).most_common(1)[0][0]

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика