Найти - Пользователи
Полная версия: Что сделать что бы 2 раза не печаталось ?
Начало » Python для новичков » Что сделать что бы 2 раза не печаталось ?
1 2
ingfa_1981
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(студент.печатать_информацию(гена))
ingfa_1981
Печатается 2 раза, и еще печатается None, как написать правильно?

[code python]вася питер 5
вася учиться 5 года в городе питер
вася учиться 5 лет в городе питер
None
вася учиться 5 года в городе москва
вася учиться 5 лет в городе москва
None
петя учиться 4 года в городе питер
None
гена учиться 3 года в городе питер
None[/code]
noob_saibot
        if self.год_обучения == 5:
            print(self.имя, 'учиться ', self.год_обучения, ' лет',' в городе ', self.город)
Вася на 5 курсе вот и печатается 2 раза.
ingfa_1981
одно исправил, второе (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
ingfa_1981
А ведь еще есть 7 лет, 8 лет итд. Как исправить ситуацию?
noob_saibot
Вы два раза печатаете:
print(студент.печатать_информацию(вася))
Сделайте:
студент.печатать_информацию(вася)
noob_saibot
        if self.год_обучения > 4:
            print(self.имя, 'учиться ', self.год_обучения, ' лет',' в городе ', self.город)
        else:
            print(self.имя, 'учиться ', self.год_обучения, ' года',' в городе ', self.город)
для 7, 8 и т.д.
ingfa_1981
Два раза печатается это уже убрал, печатается 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
alexsis
вот исправил.
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(вася.имя, вася.город, вася.год_обучения)
студент.печатать_информацию(вася)
вася.город = 'москва'
студент.печатать_информацию(вася)
студент.печатать_информацию(петя)
студент.печатать_информацию(гена)

p.s. Никогда не используйте кириллицу в названии переменных, классов и т.п.
ingfa_1981
так понятно все стало мне, кроме None
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB