-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path11 voting hash.py
More file actions
49 lines (40 loc) · 3.45 KB
/
11 voting hash.py
File metadata and controls
49 lines (40 loc) · 3.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# Голосование, используя хеш-таблицы (словари).
# Используя словарь, здесь мы отслеживаем проголосовавших избирателей и не позволяем им голосовать,
# а также вносим в словарь тех избирателей, кто еще не проголосовал, и позволяем им голосовать.
# Хеш-таблица это тип структуры данных, который представляет из себя массив,
# элементы которого содержат пары "ключ : значение".
# При помощи хеш-функции можно получить доступ к значению, обратившись к его ключу.
# Создаем словарь (словарь это хеш-таблица в Python) "voted", который хранит список проголосовавших избирателей.
# Изначально этот словарь пустой.
voted = {}
# Создаем функцию "check_voter", которая принимает один входной параметр:
# переменная "voter_name", которая содержит ключ, обозначающий имя избирателя.
def check_voter(voter_name):
# При помощи функции "get" пытаемся получить значение, обращаясь к указанному ключу "voter_name".
# Если указанный ключ "voter_name" есть в словаре "voted", то это означает,
# что избиратель уже проголосовал и нам необходимо не позволить ему голосовать.
# Функция "print()" выводит некую указанную информацию на экран или на какое-либо другое устройство вывода.
if voted.get(voter_name):
print("Get out!")
# Если указанный ключ "voter_name" отсутствует в словаре "voted", то функция "get" возвращает "None".
# Это означает, что избиратель голосует первый раз, поэтому
# нам необходимо позволить ему проголосовать и внести имя этого избирателя в словарь "voted"
# при помощи добавления значения "True" путем обращения к ключу "voter_name".
else:
voted[voter_name] = True
print("You can vote!")
# Пользователь Shepard пытается проголосовать первый раз.
print("User Shepard tries to vote the first time:")
check_voter("Shepard")
# Пользователь Wrex пытается проголосовать первый раз.
print("User Wrex tries to vote the first time:")
check_voter("Wrex")
# Пользователь Wrex пытается проголосовать снова.
print("User Wrex tries to vote again:")
check_voter("Wrex")
# Пользователь Grunt пытается проголосовать первый раз.
print("User Grunt tries to vote the first time:")
check_voter("Grunt")
# Пользователь Shepard пытается проголосовать снова.
print("User Shepard tries to vote again:")
check_voter("Shepard")