def move(): # *4.4 выбрать автомобиль по номеру и переместить в другие координаты data, is_empty = db.load_from_pickle() if is_empty == False: s = input('Type sign of the car you want to move: ') fl = 0 for i in range (len(data)): if (data[i]['sign'] == s): fl = 1 new_x = input('Enter new x coord of the car: ') new_y = input('Enter new y coord of the car: ') if (new_x.isdigit() == True) and (new_y.isdigit() == True): flag = 0 for j in range (len(data)): if (data[j]['x'] == new_x) and (data[j]['y'] == new_y): flag = 1 if (flag == 0) or (new_x == '0' and new_y == '0'): # *4.5 система не позволяет поставить 2 автомобиля в одинаковые координаты, но в автобазе (0,0) могут стоять все машины old_x = data[i]['x'] old_y = data[i]['y'] data[i]['x'] = new_x data[i]['y'] = new_y import math dist = math.sqrt((int(new_x) - int(old_x))**2+(int(new_y) - int(old_y))**2) # *4.6 считаем расстояние, которое проехал автомобиль и прибавляем к дистанции data[i]['d'] = str(int(data[i]['d'])+dist) db.save_to_pickle(data) else: print("You can't move car here, the place is taken.") else: print('Error! Coordinates should contain only numbers.') if fl == 0: print('There is no such car in database')
def edit(): #4.3 редактирование data, is_empty = db.load_from_pickle() if is_empty == False: s = input('Type sign of the car you want to edit: ') fl = 0 for i in range (len(data)): if (data[i]['sign'] == s): fl = 1 k = input('If you want to change model of the car type 1, if power - type 2: ') if k == '1': new_m = input('Enter new model of the car: ') if (new_m.isalpha() == True): data[i]['model'] = new_m db.save_to_pickle(data) else: print('Error! Model should contain only letters.') elif k == '2': new_p = input('Enter new power ot the car: ') if (new_p.isdigit() == True): data[i]['power'] = new_p db.save_to_pickle(data) else: print('Error! Power should contain only numbers.') else: debug.incorrect_operation() if fl == 0: print('There is no such car in database')
def delete(): #4.3 удалить машину из БД data, is_empty = db.load_from_pickle() if is_empty == False: s = input('Type sign of the car you want to delete: ') fl = 0 data_pop = [] for i in range (len(data)): if (data[i]['sign'] == s): fl = 1 data_pop = data.pop(i) db.save_to_pickle(data) if fl == 0: print('There is no such car in database')
def insert_cars(): #ввести данные в базу данных data, is_empty = db.load_from_pickle() model = input('Enter model of the car: ') power = input('Enter power ot the car: ') sign = input('Enter sign of the car: ') # * 4.4 - добавляем номерной знак и координаты относительно автобазы coord_x = input('Enter coord x ot the car: ') coord_y = input('Enter coord y ot the car: ') if (model.isalpha() == True) and (power.isdigit() == True) and (coord_x.isdigit() == True) and (coord_y.isdigit() == True): import math cars = {} cars['model'] = model cars['power'] = power cars['sign'] = sign cars['x'] = coord_x cars['y'] = coord_y cars['d'] = math.sqrt(int(coord_x)**2+int(coord_y)**2) # начальная дистанция - расстояние до автобазы data.append(cars) db.save_to_pickle(data) else: print('Error! Model should contain only letters; power, coordinats should contain only numbers and sign should contain only numbers and letters.')