Форум сайта python.su
0
import random class Railway_ticket: """Документация класса билета на поезд id-номер билета price-цена билета name1,name2-имя,фамилия date_day,date_month,date_year-дата поезда time_hour_start,time_minutes_start-время отправления поезда time_hour_end,time_minutes_end-время прибытия поезда place-место в вагоне railway_carriage-номер вагона type_of_railway_carriage- тип вагона 1-Плацкарт(54) 2-КУпе(36) 3-Св(18) number_of_train-номер поезда type_of_ticket-тип билета 1-взрослый 2-детский 3-студенсткий 4-льготный """ id=0 price=-1 name1="" name2="" date_day=-1 date_month=-1 date_year=-1 time_hour_start=-1 time_minutes_start=-1 time_hour_end=-1 time_minutes_end=-1 place=-1 railway_carriage=-1 type_of_railway_carriage=-1 number_of_train=-1 type_of_ticket=-1 # до 129 строчки сеттеры def set_name1(self,n1): if type(n1)==type(int()) and type(n1)==type(float()): return -1 self.name1=n1 return self.date_day def set_name2(self,n2): if type(n2)==type(int()) and type(n2)==type(float()): return -1 self.name2=n2 return self.name2 def set_price(self,p): if type(p)!=type(int()) and type(p)!=type(float()): return -1 if p<0: return print("Некорректные данные") self.price=p return self.price def set_date_day(self,dd): if type(dd)!=type(int()) and type(dd)!=type(float()): return -1 if dd<=0 or dd>31: return print("Некорректные данные") self.date_day=dd return self.date_day def set_date_month(self,dm): if type(dm)!=type(int()) and type(dm)!=type(float()): return -1 if dm<=0 or dm>12: return print("Некорректные данные") self.date_month=dm return self.date_month def set_date_year(self,dy): if type(dy)!=type(int()) and type(dy)!=type(float()): return -1 if dy<2019: return print("Некорректные данные") self.date_year=dy return self.date_year def set_time_hour_start(self,th): if type(th)!=type(int()) and type(th)!=type(float()): return -1 if th<=0 or th>24: return print("Некорректные данные") self.time_hour_start=th return self.time_hour_start def set_time_minutes_start(self,tm): if type(tm)!=type(int()) and type(tm)!=type(float()): return -1 if tm<=0 or tm>60: return print("Некорректные данные") self.time_minutes_start=tm return self.time_minutes_start def set_time_hour_end(self,thE): if type(thE)!=type(int()) and type(thE)!=type(float()): return -1 if thE<=0 or thE>24: return print("Некорректные данные") self.time_hour_end=thE return self.time_hour_end def set_time_minutes_end(self,tmE): if type(tmE)!=type(int()) and type(tmE)!=type(float()): return -1 if tmE<=0 or tmE>60: return print("Некорректные данные") self.time_minutes_end=tmE return self.time_minutes_end def set_type_of_railway_carriage(self,tc): if type(tc)!=type(int()) and type(tc)!=type(float()): return -1 if tc<=0 or tc>3: return print("Некорректные данные") self.type_of_railway_carriage=tc return self.type_of_railway_carriage def set_place(self,pl): if type(pl)!=type(int()) and type(pl)!=type(float()): return -1 if pl<=0: return print("Некорректные данные") if self.type_of_railway_carriage==1 and pl>54: return print("Некорректные данные") if self.type_of_railway_carriage==2 and pl>36: return print("Некорректные данные") if self.type_of_railway_carriage==3 and pl>18: return print("Некорректные данные") self.place=pl return self.place def set_number_of_train(self,num): if type(num)!=type(int()) and type(num)!=type(float()): return -1 self.number_of_train=num return self.number_of_train def set_railway_carriage(self,rc): if type(rc)!=type(int()) and type(rc)!=type(float()): return -1 if rc<=0 or rc>50: return print("Некорректные данные") self.railway_carriage=rc return self.railway_carriage def set_type_of_ticket(self,tt): if type(tt)!=type(int()) and type(tt)!=type(float()): return -1 if tt<=0 or tt>4: return print("Некорректные данные") self.type_of_ticket=tt return self.type_of_ticket def type_of_travel(self): """Данный метод определяет ночной или дневной рейс""" if self.time_hour_end >=22 or self.time_hour_end <=6: print("Ночной рейс") else: print("Дневной рейс") def __init__(self,price,name1, name2, date_day, date_month, date_year, time_hour_start,time_minutes_start, time_hour_end,time_minutes_end,place, railway_carriage, type_of_railway_carriage,number_of_train,type_of_ticket): """Конструктор""" self.set_price(price) self.set_name1(name1) self.set_name2(name2) self.set_date_day(date_day) self.set_date_month(date_month) self.set_date_year(date_year) self.set_time_hour_start(time_hour_start) self.set_time_minutes_start(time_minutes_start) self.set_time_hour_end(time_hour_end) self.set_time_minutes_end(time_minutes_end) self.set_place(place) self.set_railway_carriage(railway_carriage) self.set_type_of_railway_carriage(type_of_railway_carriage) self.set_number_of_train(number_of_train) self.set_type_of_ticket(type_of_ticket) print("Конструктор выполнен") def __del__(self): print("Выполняется деструктор") def price_with_privilege(self): """Данный метод считает цену билета со скидкой в зависимости от соц.льгот """ if self.type_of_ticket==4: discount=(self.price/100)*50 price_with_discount=self.price-discount print("Льготный билет стоит=",price_with_discount) if self.type_of_ticket==3: discount=(self.price/100)*20 price_with_discount=self.price-discount print("Студенческий билет стоит=",price_with_discount) if self.type_of_ticket==2: discount=(self.price/100)*30 price_with_discount=self.price-discount print("Детский билет стоит=",price_with_discount) if self.type_of_ticket==1: print("У вас нету соц.льгот.Билет стоит=",self.price) '''def price_in_foreign_currency(self): """Данный метод переводит цену из грн в евро и доллары """ euro_price=self.price_with_privilege()/26 print("Цена билета в євро=",euro_price) usd_price=self.price_with_privilege()/24 print("Цена билета в долларах=",usd_price) По прежнему не работает ''' def id_up(self): """ДАнный метод выдает каждому билету рандомный ID в целях безопасности""" id=random.randint(0,1000000000) print("ID:",id) class Bank_operation(Railway_ticket): """Данный клас позволяет работать с банковскими картами""" number_of_card=-1 cvv2=-1 month_end=-1 year_end=-1 def set_number_of_card(self,num): if type(num)!=type(int()) and type(num)!=type(float()): return -1 list=[num] if len(list)>16 or len(list)<16: return print("Некорректные данные") self.number_of_card=list return self.number_of_card def set_cvv2(self,cvv): if type(cvv)!=type(int()) and type(cvv)!=type(float()): return -1 if cvv<100 or cvv>999: return print("Некорректные данные") self.cvv2=cvv return self.cvv2 def set_month_end(self,me): if type(me)!=type(int()) and type(me)!=type(float()): return -1 if me<=0 or me>12: return print("Некорректные данные") self.month_end=me return self.month_end def set_year_end(self,ye): if type(ye)!=type(int()) and type(ye)!=type(float()): return -1 if ye<2019: return print("Некорректные данные") self.year_end=ye return self.year_end def __init__(self,number_of_card,cvv2,month_end,year_end): """Конструктор""" self.set_number_of_card(number_of_card) self.set_cvv2(cvv2) self.set_month_end(month_end) self.set_year_end(year_end) print("Конструктор выполнен") def __del__(self): print("Выполняется деструктор") def type_of_bank_card(self,set_number_of_card): a=self.number_of_card if a[0]==3: print("Вы используете American Express") if a[0]==4: print("Вы используете Visa") if a[0]==5: print("Вы используете Master Card") else : print("Error") class Order_ticket(Railway_ticket): """Данный класс отвечает за заказ жд билета""" number_of_phone=-1 day_of_order_ticket=-1 month_of_order_ticket=-1 year_of_order_ticket=-1 minutes_of_order_ticket=-1 hours_of_order_ticket=-1 def set_number_of_phone(self,nu): if type(nu)!=type(int()) and type(nu)!=type(float()): return -1 if nu<=000000000 or nu>999999999: return print("Некорректные данные") self.number_of_phone=nu return self.number_of_phone def set_day_of_order_ticket(self,dot): if type(dot)!=type(int()) and type(dot)!=type(float()): return -1 if dot<=0 or dot>31: return print("Некорректные данные") self.day_of_order_ticket=dot return self.day_of_order_ticket def set_month_of_order_ticket(self,mot): if type(mot)!=type(int()) and type(mot)!=type(float()): return -1 if mot<=0 or mot>12: return print("Некорректные данные") self.month_of_order_ticket=mot return self.month_of_order_ticket def set_year_of_order_ticket(self,yot): if type(yot)!=type(int()) and type(yot)!=type(float()): return -1 if yot<2019: return print("Некорректные данные") self.year_of_order_ticket=yot return self.year_of_order_ticket def set_hours_of_order_ticket(self,tot): if type(tot)!=type(int()) and type(tot)!=type(float()): return -1 if tot<=0 or tot>24: return print("Некорректные данные") self.hours=tot return self.hours def set_time_of_order_ticket_minutes(self,totm): if type(totm)!=type(int()) and type(totm)!=type(float()): return -1 if totm<=0 or totm>60: return print("Некорректные данные") self.minutes_of_order_ticket=totm return self.minutes_of_order_ticket def __init__(self,number_of_phone,month_of_order_ticket,day_of_order_ticket,year_of_order_ticket,hours_of_order_ticket,minutes_of_order_ticket): self.set_number_of_phone(number_of_phone) self.set_month_of_order_ticket(month_of_order_ticket) self.set_year_of_order_ticket(year_of_order_ticket) self.set_day_of_order_ticket(day_of_order_ticket) self.set_hours_of_order_ticket(hours_of_order_ticket) self.set_time_of_order_ticket_minutes(minutes_of_order_ticket) print("Конструктор выполнен") def __del__(self): print("Деструктор выполнен") def type_of_day_ticket(self,hours_of_order_ticket): if self.hours_of_order_ticket>=18: print("Билет заказан вечером") if self.hours_of_order_ticket<=8: print("Билет заказан утром")[code python][/code] if self.hours_of_order_ticket>=9 and self.hours_of_order_ticket <=17: print("Билет заказан днем") test=Bank_operation(5168148814881488,797,10,2020) test.type_of_bank_card print(Railway_ticket.__doc__)
Отредактировано dinamo2018 (Дек. 15, 2019 20:52:10)
Прикреплённый файлы:
Python.rar (2,7 KБ)
Офлайн
294
все запускается… другое дело что оно не делает то что вы хотите, но тут туж…
test.type_of_bank_card
class Bank_operation(Railway_ticket): """Данный клас позволяет работать с банковскими картами""" ... class Order_ticket(Railway_ticket): """Данный класс отвечает за заказ жд билета"""
[code python][/code]
Отредактировано PEHDOM (Дек. 16, 2019 09:49:41)
Офлайн
568
dinamo2018
Это, простите, калиброванный говнокод.
1.
return print("Некорректные данные")
def set_type_of_ticket(self,tt): if type(tt)!=type(int()) and type(tt)!=type(float()): return -1 if tt<=0 or tt>4: return print("Некорректные данные") self.type_of_ticket=tt return self.type_of_ticket
def set_type_of_ticket(self,tt): return self.type_of_ticket
if self.hours_of_order_ticket>=9 and self.hours_of_order_ticket <=17
def __init__(self,number_of_phone,month_of_order_ticket,day_of_order_ticket,year_of_order_ticket,hours_of_order_ticket,minutes_of_order_ticket):
if self.hours_of_order_ticket>=18: print("Билет заказан вечером")
type(yot)!=type(int()) and type(yot)!=type(float()):
Отредактировано FishHook (Дек. 16, 2019 11:11:53)
Офлайн
186
class Railway_ticket: """Документация класса билета на поезд id-номер билета price-цена билета name1,name2-имя,фамилия date_day,date_month,date_year-дата поезда time_hour_start,time_minutes_start-время отправления поезда time_hour_end,time_minutes_end-время прибытия поезда place-место в вагоне railway_carriage-номер вагона type_of_railway_carriage- тип вагона 1-Плацкарт(54) 2-КУпе(36) 3-Св(18) number_of_train-номер поезда type_of_ticket-тип билета 1-взрослый 2-детский 3-студенсткий 4-льготный """ id=0 price=-1 name1="" name2="" date_day=-1 date_month=-1 date_year=-1 time_hour_start=-1 time_minutes_start=-1 time_hour_end=-1 time_minutes_end=-1 place=-1 railway_carriage=-1 type_of_railway_carriage=-1 number_of_train=-1 type_of_ticket=-1
class Bank_operation(Railway_ticket): """Данный клас позволяет работать с банковскими картами""" number_of_card=-1 cvv2=-1 month_end=-1 year_end=-1
Отредактировано Rodegast (Дек. 16, 2019 11:26:32)
Офлайн