START
import random
import pathlib
import json
import time
def error_manage(type_in, prompt):
while True:
try:
return type_in(input(prompt))
except ValueError:
print("The input is invalid!")
====================
def write(lst1, lst2, lst3, lst4):
with open(file_path1, "w") as f:
json.dump(lst1, f, indent=4)
with open(file_path2, "w") as f:
json.dump(lst2, f, indent=4)
with open(file_path3, "w") as f:
json.dump(lst3, f, indent=4)
with open(file_path4, "w") as f:
json.dump(lst4, f, indent=4)
return
====================
def read():
with open(file_path1, "r") as f:
contents1 = json.load(f)
with open(file_path2, "r") as f:
contents2 = json.load(f)
with open(file_path3, "r") as f:
contents3 = json.load(f)
with open(file_path4, "r") as f:
contents4 = json.load(f)
return contents1, contents2, contents3, contents4
====================
def share_rate(item, lst1, lst2):
share_rate = error_manage(int, f"Enter the share rate of {item}: ")
lst1.append(item + f"({share_rate})")
for i in range(share_rate):
lst2.append(item)
return item, lst1, lst2
====================
def list_print(all, win, oth):
counter = 0
print(f"\nThe all members :")
if all == []:
print("No body")
else:
for i in all:
counter += 1
print(f"{counter}) {i}")
print("\nThe winers in lottery:")
if win == []:
print("No body")
else:
for j in win:
print(j, end=" ")
print()
print("\nThe other of members for lottery:")
counter = 0
if oth == []:
print("No body")
else:
for k in oth:
counter += 1
print(f"{counter}) {k}")
print("\n")
return all, win, oth
====================
★★★★★★★★★★★★★★★
print("★" * 25)
print("Hello! Welcom to lottery cash program.")
print("★" * 25)
print("\n")
folder_path = pathlib.Path("../python/cash")
folder_path.mkdir(parents=True, exist_ok=True)
file_path1 =f"{folder_path}/test1.json"
file_path2 =f"{folder_path}/test2.json"
file_path3 =f"{folder_path}/test3.json"
file_path4 =f"{folder_path}/test4.json"
try:
contents1, contents2, contents3, contents4 = read()
list_print(contents1, contents2, contents4)
except:
first_list = ["Taha", "Masumeh", "Mohaddeseh", "Motahhareh"]
all_members1 = []
winners_list1 = []
list_for_lottery1 = []
other_members1 = ["Taha", "Masumeh", "Mohaddeseh", "Motahhareh"]
print("" * 30)
print("Notice: 1 rate = 1.000.000 R")
print("" * 30)
print()
for item in first_list:
item, all_members, list_for_lottery = share_rate(item, all_members1, list_for_lottery1)
copy_list = list_for_lottery.copy()
write(all_members1, winners_list1, list_for_lottery1, other_members1)
contents1, contents2, contents3, contents4 = read()
list_print(contents1, contents2, contents4)
all_members = contents1
winners_list = contents2
list_for_lottery = contents3
copy_list = list_for_lottery.copy()
other_members = contents4
while True:
add_del_lot = input("\nfor add or delete from members, please enter + or - and for lottery enter 'l' and for exit press return botom: ")
if add_del_lot != "+" and add_del_lot != "-" and add_del_lot != "l" and add_del_lot != "":
print("input is invalid! Try again.")
continue
if add_del_lot == "-":
del_number = error_manage(int, "Please enter the number of member to remove: ")
if del_number > len(all_members):
print("The input number is invalid! Try again")
continue
del_member = all_members.pop(del_number - 1)
حذف قسمت پرانتزی جلوی اسامی
par_index = del_member.index("(")
del_member = del_member[: par_index]
if del_member in other_members:
other_members.remove(del_member)
else:
winners_list.remove(del_member)
for i in range(len(list_for_lottery)):
if del_member in list_for_lottery:
list_for_lottery.remove(del_member)
print(f"\ndelet member is : {del_member}")
write(all_members, winners_list , list_for_lottery, other_members)
list_print(all_members, winners_list, other_members)
elif add_del_lot == "+":
add_member = input("Please enter the name of member to add: ")
share_rate(add_member, all_members, list_for_lottery)
other_members.append(add_member)
write(all_members, winners_list , list_for_lottery, other_members)
list_print(all_members, winners_list, other_members)
elif add_del_lot == "l":
if other_members == []:
other_members = winners_list
winners_list = []
if list_for_lottery == []:
list_for_lottery = copy_list
random_item = random.choice(list_for_lottery)
print()
for i in reversed(range(4)):
if i > 0:
print(i, end='>>>', flush = True)
time.sleep(1)
else:
print('Start')
print()
print("★" * 25)
time.sleep(1)
print("★" * 20)
time.sleep(1)
print("★" * 15)
time.sleep(1)
for i in range(len(list_for_lottery)):
if random_item in list_for_lottery:
list_for_lottery.remove(random_item)
other_members.remove(random_item)
winners_list.append(random_item)
end_time = time.time() + 5
visible = True
matn = f"This member win to lottery : {random_item}"
while time.time() < end_time:
if visible:
print(f"\r{matn}", end = "", flush = True)
else:
print("\r", " " * (len(matn)-1), end = '', flush = True)
visible = not visible
time.sleep(1)
print()
print("★" * 15)
print("★" * 20)
print("★" * 25)
time.sleep(2)
write(all_members, winners_list , list_for_lottery, other_members)
list_print(all_members, winners_list, other_members)
elif add_del_lot == "":
print("\n\n" + 30 * "*")
print("The program finished. Goodbye!")
break
END