ЯЗЫК 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
ИСПРАВИТЬ!
В условии задачи не сказано, что нужно выводить сами значения функции типа (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)
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]