Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 22, 2014 11:08:07

ingfa_1981
Зарегистрирован: 2014-01-25
Сообщения: 200
Репутация: +  1  -
Профиль   Адрес электронной почты  

Что сделать что бы 2 раза не печаталось ?

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(студент.печатать_информацию(гена))

Офлайн

#2 Фев. 22, 2014 11:09:02

ingfa_1981
Зарегистрирован: 2014-01-25
Сообщения: 200
Репутация: +  1  -
Профиль   Адрес электронной почты  

Что сделать что бы 2 раза не печаталось ?

Печатается 2 раза, и еще печатается None, как написать правильно?

[code python]вася питер 5
вася учиться 5 года в городе питер
вася учиться 5 лет в городе питер
None
вася учиться 5 года в городе москва
вася учиться 5 лет в городе москва
None
петя учиться 4 года в городе питер
None
гена учиться 3 года в городе питер
None[/code]

Отредактировано ingfa_1981 (Фев. 22, 2014 11:09:43)

Офлайн

#3 Фев. 22, 2014 11:18:43

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

Что сделать что бы 2 раза не печаталось ?

        if self.год_обучения == 5:
            print(self.имя, 'учиться ', self.год_обучения, ' лет',' в городе ', self.город)
Вася на 5 курсе вот и печатается 2 раза.

Офлайн

#4 Фев. 22, 2014 11:22:24

ingfa_1981
Зарегистрирован: 2014-01-25
Сообщения: 200
Репутация: +  1  -
Профиль   Адрес электронной почты  

Что сделать что бы 2 раза не печаталось ?

одно исправил, второе (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

Офлайн

#5 Фев. 22, 2014 11:25:11

ingfa_1981
Зарегистрирован: 2014-01-25
Сообщения: 200
Репутация: +  1  -
Профиль   Адрес электронной почты  

Что сделать что бы 2 раза не печаталось ?

А ведь еще есть 7 лет, 8 лет итд. Как исправить ситуацию?

Офлайн

#6 Фев. 22, 2014 11:40:18

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

Что сделать что бы 2 раза не печаталось ?

Вы два раза печатаете:

print(студент.печатать_информацию(вася))
Сделайте:
студент.печатать_информацию(вася)

Офлайн

#7 Фев. 22, 2014 11:43:14

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

Что сделать что бы 2 раза не печаталось ?

        if self.год_обучения > 4:
            print(self.имя, 'учиться ', self.год_обучения, ' лет',' в городе ', self.город)
        else:
            print(self.имя, 'учиться ', self.год_обучения, ' года',' в городе ', self.город)
для 7, 8 и т.д.

Офлайн

#8 Фев. 22, 2014 11:48:56

ingfa_1981
Зарегистрирован: 2014-01-25
Сообщения: 200
Репутация: +  1  -
Профиль   Адрес электронной почты  

Что сделать что бы 2 раза не печаталось ?

Два раза печатается это уже убрал, печатается 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 Фев. 22, 2014 11:51:25

alexsis
Зарегистрирован: 2013-07-26
Сообщения: 148
Репутация: +  9  -
Профиль   Отправить e-mail  

Что сделать что бы 2 раза не печаталось ?

вот исправил.

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. Никогда не используйте кириллицу в названии переменных, классов и т.п.

Отредактировано alexsis (Фев. 22, 2014 11:52:43)

Офлайн

#10 Фев. 22, 2014 11:51:37

ingfa_1981
Зарегистрирован: 2014-01-25
Сообщения: 200
Репутация: +  1  -
Профиль   Адрес электронной почты  

Что сделать что бы 2 раза не печаталось ?

так понятно все стало мне, кроме None

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version