Documente Academic
Documente Profesional
Documente Cultură
RAPORT
Lucrarea de laborator nr. 1
A efectuat:
st. gr. CR-212
Pirlea Cristian
A verificat: V. Struna
Chişinău – 2023
1
Cuprins
1. Tema: Introducere în limbajul Python................................................................................................3
1.1 Obiective:....................................................................................................................................3
1.2 Cerinte:........................................................................................................................................3
2. Partea practica:....................................................................................................................................4
2.1 Varianta:......................................................................................................................................4
2.2 Codul:..........................................................................................................................................4
2.3 Rezultatele rularii:.......................................................................................................................4
2.4 Concluzie:....................................................................................................................................5
3. Webografie..........................................................................................................................................6
2
1.
3
Cod:
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return len(self.items) == 0
def pop(self):
if not self.is_empty():
return self.items.pop()
else:
print("Stack is empty. Cannot pop.")
def peek(self):
if not self.is_empty():
return self.items[-1]
else:
print("Stack is empty. Cannot peek.")
def size(self):
return len(self.items)
def __str__(self):
return str(self.items)
@classmethod
def from_string(cls, str_value):
stack = cls()
for item in str_value.split():
stack.push(item)
return stack
if __name__ == "__main__":
# Crearea unui obiect Stack și adăugarea elementelor
stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)
4
# Salvarea într-un fișier
stack.save("stack_data.txt")
5
Cod:
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return len(self.items) == 0
def pop(self):
if not self.is_empty():
return self.items.pop()
else:
print("Stack is empty. Cannot pop.")
def peek(self):
if not self.is_empty():
return self.items[-1]
else:
print("Stack is empty. Cannot peek.")
def size(self):
return len(self.items)
def __str__(self):
return str(self.items)
@classmethod
def from_string(cls, str_value):
stack = cls()
for item in str_value.split():
stack.push(item)
return stack
# if __name__ == "__main__":
# # Crearea unui obiect Stack și adăugarea elementelor
# stack = Stack()
# stack.push(1)
# stack.push(2)
# stack.push(3)
#
# print("Stack initial:", stack)
#
# # Salvarea într-un fișier
# stack.save("stack_data.txt")
#
# # Crearea unui nou obiect Stack prin încărcarea din fișier
# new_stack = Stack()
# new_stack.load("stack_data.txt")
# print("Stack încărcat:", new_stack)
#
# # Crearea unui obiect Stack dintr-un șir de caractere
# str_stack = Stack.from_string("4 5 6")
# print("Stack din șir:", str_stack)
#
# # Operatii pe stiva initiala
# print("Pop element:", stack.pop())
# print("Peek element:", stack.peek())
# print("Size of stack:", stack.size())
#
# print("Stack final:", stack)
#------------------------------------------------------------------
#B
class StackCollection:
def __init__(self):
self._data = []
7
file.write(str(stack.items) + '\n')
def __str__(self):
return '\n'.join([f"Stack {i}: {stack}" for i, stack in
enumerate(self._data)])
print("StackCollection initial:")
print(stack_collection)
print("\nStackCollection încărcat:")
print(new_stack_collection)
8
Rezultatul rularii codului:
Cod:
class Ticket:
def __init__(self, limit):
self._limit = limit
self._remaining_trips = limit
self._trips_taken = 0
def deduct_trip(self):
if self._remaining_trips > 0:
9
self._remaining_trips -= 1
self._trips_taken += 1
print(f"Trip deducted. Remaining trips:
{self._remaining_trips}.")
else:
print("No available trips on this ticket.")
def __str__(self):
return f"Ticket with a limit of {self._limit} trips,
{self._remaining_trips} remaining."
class TravelCardTicket(Ticket):
def __init__(self):
super().__init__(limit=10)
self._type = "Travel Card Ticket"
def additional_method(self):
print("This is an additional method for Travel Card Ticket.")
class UnlimitedTicket(Ticket):
def __init__(self):
super().__init__(limit=float('inf'))
self._type = "Unlimited Ticket"
class LimitedTicket(Ticket):
def __init__(self, limit):
super().__init__(limit)
self._type = "Limited Ticket"
class LimitedTripsTicket(LimitedTicket):
def __init__(self):
super().__init__(limit=5)
self._type = "Limited Trips Ticket"
print(travel_card_ticket)
travel_card_ticket.deduct_trip()
travel_card_ticket.additional_method()
print(unlimited_ticket)
unlimited_ticket.deduct_trip()
print(limited_ticket)
limited_ticket.deduct_trip()
print(limited_trips_ticket)
10
limited_trips_ticket.deduct_trip()
limited_trips_ticket.deduct_trip()
limited_trips_ticket.deduct_trip()
11
Concluzie:
12
2. Webografie
www.jetbrains.com
https://www.w3schools.com/python/module_math.asp
https://www.w3schools.com/python/module_cmath.asp
https://pythonru.com/osnovy/cikl-while-v-python
https://habr.com/ru/articles/123821/
https://habr.com/ru/articles/510426/
13