***PYTHON*** В программу добавить возможность перебросить деньги на другой аккаунт.
То есть, мы логинимось под свой аккаунт, заходим в операцию с карточкой, выбираем "переслать деньги", пользователь должен ввести имя пользователя,
и определенную сумму.
ВНИМАНИЕ!
Должны быть проверки на то, или такой пользователь есть, да у того кто пересылает я такая сумма на счету.
***КОД***
money = 0
import pickle
def read_from_file():
file = open("users_data.txt", "rb")
value = pickle.load(file)
file.close()
return value
users_list = read_from_file()
tmp = users_list
def write_to_file():
file = open("users_data.txt", "wb")
pickle.dump(users_list, file)
file.close()
def registration():
name = input('Enter name')
isFound = False
while True:
login = input('Enter login')
for i in range(len(users_list)):
if login == users_list[i]:
print('This login is already used.\nTry again...')
isFound = True
break
if not isFound:
break
password = input('Enter password')
users_list.append(name)
users_list.append(login)
users_list.append(password)
users_list.append(0)
write_to_file()
def login():
user_login = input('Enter login: ')
user_password = input('Enter password: ')
for i in range(1, len(users_list), 4):
if users_list[i] == user_login:
if users_list[i+1] == user_password:
print(f'Hello dear - {users_list[i-1]}')
return True
else:
print('Incorrect password')
return False
print(users_list)
log_Or_reg = int(input('Enter 1 - login, 2 - registration: '))
if log_Or_reg == 2:
registration()
isLogin = login()
while isLogin:
choise = int(input('\t ***CART MENU***\n1 - Work with card\n2 - Put\n3 - Balance\n0 - BACK‼'))
if choise == 0:
isLogin = False
elif choise == 1:
print ('Take')
elif choise == 2:
print('Put')
elif choise == 3:
print(f'Dear {users_list[tmp -1]}, your balance = {users_list[tmp +2]} ')
if choise == 4:
NP = input("New pass: ")
users_list[2] = NP
мой вариант - немного не логичный с некоторой стороны, но попытаюсь объяснить почему 29:
--
О - 16 - 10000 в двоичной системе, если посмотреть, то именно 5 цифр получается, что возможно нам и подходит.
Д - 5 - 101 возможно, это потому что две 55, и добавляем единицу в конце
Т - 20 - 10100 тут образуются все 5 цифр, и как перед этим (Д - 5), получаем 101
Ч - 26 - 11010 тут просто добавляется 1 в перед
и далее 55555, так как с 5555 получили просто впереди 1, то скорее всего, и тут добавляется 1, и получаем число 11101 = 29
//Pascal ABC.NET v3.1 сборка 1172
Type
ty=record
sub,name,ot,ul,kv,ho:string;
mo,ye:integer;
end;
Var
ar1,ar2:array of ty;
k,i,n:integer;
s:string;
begin
readln(k);
setlength(ar1,k);
n:=0;
for i:=0 to k-1 do
begin
write('Введите фамилию рабочего №',i+1,':'); readln(ar1[i].sub);
write('Введите имя рабочего:№',i+1,':'); readln(ar1[i].name);
write('Введите отчество рабочего:№',i+1,':'); readln(ar1[i].ot);
write('Введите улицу проживания рабочего:№',i+1,':'); readln(ar1[i].ul);
write('Введите дом проживания рабочего:№',i+1,':'); readln(ar1[i].ho);
write('Введите квартиру проживания рабочего:№',i+1,':'); readln(ar1[i].kv);
write('Введите месяц поступления на работу рабочего:№',i+1,':'); readln(ar1[i].mo);
write('Введите год поступления на работу рабочего:№',i+1,':'); readln(ar1[i].ye);
end;
write('Введите искомую улицу:'); readln(s);
writeln('Результаты:');
for i:=0 to k-1 do
begin
if ar1[i].ul=s then
begin
inc(n);
setlength(ar2,n);
ar2[n-1]:=ar1[i];
writeln('Рабочий #',i+1,',', ar2[n-1].sub,' ',ar2[n-1].name,' ',ar2[n-1].ot);
writeln('Адрес:',ar2[n-1].ul,' ',ar2[n-1].ho,',',ar2[n-1].kv);
writeln('Дата поступления на работу:',ar2[n-1].mo,',',ar2[n-1].ye);
end;
end;
end.
Пример ввода:
3
Введите фамилию рабочего №1:Хацуне
Введите имя рабочего:№1:Мику
Введите отчество рабочего:№1:Ивановна
Введите улицу проживания рабочего:№1:Омотесандо
Введите дом проживания рабочего:№1:23
Введите квартиру проживания рабочего:№1:34
Введите месяц поступления на работу рабочего:№1:1
Введите год поступления на работу рабочего:№1:1998
Введите фамилию рабочего №2:Двачевская
Введите имя рабочего:№2:Алиса
Введите отчество рабочего:№2:Петровна
Введите улицу проживания рабочего:№2:Пушкина
Введите дом проживания рабочего:№2:223
Введите квартиру проживания рабочего:№2:34
Введите месяц поступления на работу рабочего:№2:2
Введите год поступления на работу рабочего:№2:1997
Введите фамилию рабочего №3:Персунов
Введите имя рабочего:№3:Семён
Введите отчество рабочего:№3:Олегович
Введите улицу проживания рабочего:№3:Омотесандо
Введите дом проживания рабочего:№3:23
Введите квартиру проживания рабочего:№3:34
Введите месяц поступления на работу рабочего:№3:6
Введите год поступления на работу рабочего:№3:2000
Введите искомую улицу:Омотесандо
Пример вывода:
Результаты:
Рабочий #1,Хацуне Мику Ивановна
Адрес:Омотесандо 23,34
Дата поступления на работу:1,1998
Рабочий #3,Персунов Семён Олегович
Адрес:Омотесандо 23,34
Дата поступления на работу:6,2000