Форум сайта python.su
1
class студент: город = 'питер' def __init__(self, имя, год_обучения): self.имя = имя self.год_обучения = год_обучения def печатать_информацию(self): print(self.имя, 'учиться ', self.год_обучения, ' года',' в городе ', self.город) if self.год_обучения == 5: print(self.имя, 'учиться ', self.год_обучения, ' лет',' в городе ', self.город) вася = студент('вася', 5) петя = студент('петя', 4) гена = студент('гена', 3) print(вася.имя, вася.город, вася.год_обучения) print(студент.печатать_информацию(вася)) вася.город = 'москва' print(студент.печатать_информацию(вася)) print(студент.печатать_информацию(петя)) print(студент.печатать_информацию(гена))
Офлайн
1
Печатается 2 раза, и еще печатается None, как написать правильно?
[code python]вася питер 5
вася учиться 5 года в городе питер
вася учиться 5 лет в городе питер
None
вася учиться 5 года в городе москва
вася учиться 5 лет в городе москва
None
петя учиться 4 года в городе питер
None
гена учиться 3 года в городе питер
None[/code]
Отредактировано ingfa_1981 (Фев. 22, 2014 11:09:43)
Офлайн
20
if self.год_обучения == 5: print(self.имя, 'учиться ', self.год_обучения, ' лет',' в городе ', self.город)
Офлайн
1
одно исправил, второе (None) нет
class студент: город = 'питер' def __init__(self, имя, год_обучения): self.имя = имя self.год_обучения = год_обучения def печатать_информацию(self): if self.год_обучения == 5: print(self.имя, 'учиться ', self.год_обучения, ' лет',' в городе ', self.город) else: print(self.имя, 'учиться ', self.год_обучения, ' года',' в городе ', self.город) вася = студент('вася', 5) петя = студент('петя', 4) гена = студент('гена', 3) print(вася.имя, вася.город, вася.год_обучения) вася.город = 'москва' print(студент.печатать_информацию(вася)) print(студент.печатать_информацию(петя)) print(студент.печатать_информацию(гена))
вася питер 5 вася учиться 5 лет в городе москва None петя учиться 4 года в городе питер None гена учиться 3 года в городе питер None Process finished with exit code 0
Офлайн
1
А ведь еще есть 7 лет, 8 лет итд. Как исправить ситуацию?
Офлайн
20
Вы два раза печатаете:
print(студент.печатать_информацию(вася))
студент.печатать_информацию(вася)
Офлайн
20
if self.год_обучения > 4: print(self.имя, 'учиться ', self.год_обучения, ' лет',' в городе ', self.город) else: print(self.имя, 'учиться ', self.год_обучения, ' года',' в городе ', self.город)
Офлайн
1
Два раза печатается это уже убрал, печатается None не пойму почему. А вот для условий если нет ли способа добавить списком из значений годов?
class студент: город = 'питер' def __init__(self, имя, год_обучения): self.имя = имя self.год_обучения = год_обучения def печатать_информацию(self): if self.год_обучения == 5: print(self.имя, 'учится ', self.год_обучения, ' лет',' в городе ', self.город) else: print(self.имя, 'учится ', self.год_обучения, ' года',' в городе ', self.город) вася = студент('вася', 5) петя = студент('петя', 4) гена = студент('гена', 3) print(вася.имя, вася.город, вася.год_обучения) вася.город = 'москва' информация = студент.печатать_информацию print(информация(вася)) print(информация(петя)) print(информация(гена))
вася питер 5 вася учится 5 лет в городе москва None петя учится 4 года в городе питер None гена учится 3 года в городе питер None
Офлайн
9
вот исправил.
class студент: город = 'питер' def __init__(self, имя, год_обучения): self.имя = имя self.год_обучения = год_обучения def печатать_информацию(self): if self.год_обучения > 4: print(self.имя, 'учиться ', self.год_обучения, ' лет',' в городе ', self.город) elif self.год_обучения > 1 and self.год_обучения < 5: print(self.имя, 'учиться ', self.год_обучения, ' года',' в городе ', self.город) else: print(self.имя, 'учиться ', self.год_обучения, ' год',' в городе ', self.город) вася = студент('вася', 5) петя = студент('петя', 4) гена = студент('гена', 3) print(вася.имя, вася.город, вася.год_обучения) студент.печатать_информацию(вася) вася.город = 'москва' студент.печатать_информацию(вася) студент.печатать_информацию(петя) студент.печатать_информацию(гена)
Отредактировано alexsis (Фев. 22, 2014 11:52:43)
Офлайн
1
так понятно все стало мне, кроме None
Офлайн