Привет ребят, нужно очень срочно, 20 баллов!!! ЯЗЫК 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


ПОМОГИТЕ ПОЖАЛУЙСТА ИСПРАВИТЬ!

Ответы

Ответ дал: maxum000
1

В условии задачи не сказано, что нужно выводить сами значения функции типа (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)


maxum000: Но есть еще вариант
maxum000: Для твоего кода
maxum000: 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',end=" ")
if ((x == 1) and (y == 1)) or ((x == 1) and (z == 1)) or ((z == 1) and (y == 1)):
print('1',end=" ")
return x, y, z
x,y,z = map(str,election(0, 1, 1))
print("("+x+","+y+","+z+")")
maxum000: Сама выбирай какой нравится
FlyTheSky1: Спасибо огромное!
FlyTheSky1: сейчас все посмотрю
Ответ дал: nikdissv
1

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]

Вас заинтересует