webbersof

Exam

Feb 21st, 2022
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.98 KB | None | 0 0
  1. def add(a, b):
  2.     j = b.split(", ")
  3.     if j[1] not in a:
  4.         a.append(j[1])
  5.         print("Card successfully added")
  6.     else:
  7.         print("Card is already in the deck")
  8.     return a
  9.  
  10.  
  11. def insert(a, b):
  12.     j = b.split(", ")
  13.     if j[2] in a:
  14.         print("Card is already added")
  15.     elif 0 <= int(j[1]) < len(a) and j[2] not in a:
  16.         a.insert(int(j[1]), j[2])
  17.         print("Card successfully added")
  18.     elif not 0 <= int(j[1]) < len(a):
  19.         print("Index out of range")
  20.     return a
  21.  
  22.  
  23. def remove(a, b):
  24.     j = b.split(", ")
  25.     if j[1] in a:
  26.         a.remove(j[1])
  27.         print("Card successfully removed")
  28.     elif j[1] not in a:
  29.         print("Card not found")
  30.     return a
  31.  
  32. # Не именувай с "a, b", а се опитвай да даваш смислени имена на променливите за да са разбираеми като код.Ето пример,
  33. # аз сега не съм чел условието на тази задача и изобщо нямам идея какво се случва.
  34. # Това е хубаво, че го допускаш като грешка за да го отбележим.
  35. def remove_at(a, b):
  36.     j = b.split(", ")
  37.     if not 0 <= int(j[1]) < len(a):
  38.         print("Index out of range")
  39.     elif 0 <= int(j[1]) < len(a):
  40.         a.pop(int(j[1]))
  41.         print("Card successfully removed")
  42.     return a
  43.  
  44.  
  45. # Тук е излишно да казваш, че ще бъдат стринг, те така или иначе се подават като стринг и това не е обходимо.
  46. cards = list(map(str, input().split(", ")))
  47. number_commands = int(input())
  48.  
  49. for i in range(1, number_commands + 1):
  50.     info = input()
  51.    
  52.     # Този X също е доста неясен и е добра практика да носи смеслена дума за да се знае какво е,
  53.     # в случая ще е някаква команда и може да го кръстиш "command".
  54.     x = info.split(", ")
  55.    
  56.     if "Add" == x[0]:
  57.         # когато извикваш някаква функция и в случаите когато тя ще нанася промени върху масива който и подаваш
  58.         # трябва изрично да кажеш, че старият масив е равен на новият масив с нанесените в него промени !!!
  59.         # В случая ще кажеш ако основния ти масив е cards:
  60.        
  61.         # cards = add(cards, info)
  62.        
  63.         # като тук резултата от add function ще доведе до нова структура на cards, това е ЗАКОН, прави го така!
  64.         add(cards, info)
  65.     if "Insert" == x[0]:
  66.         insert(cards, info)
  67.     if "Remove" == x[0]:
  68.         remove(cards, info)
  69.     if "Remove At" == x[0]:
  70.         remove_at(cards, info)
  71.  
  72. print(*cards, sep=", ")
Advertisement
Add Comment
Please, Sign In to add comment