Уведомления

Группа в Telegram: @pythonsu

#1 Март 13, 2013 21:48:24

Duck233
Зарегистрирован: 2012-06-30
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

Где ошибка?

программа должна добавить в список введенные числа кратные 6 и оканчивающиеся на 4
Помогите найти ошибку и объяснить ее

number = None
while number != "стоп":
    number = input("Введите число: ")
    if number == "0":
        spiss = []
        spiss.append(number)
        for xxx in spiss:
            spsp = []
            if str(xxx[int(len(xxx)) - 1 ]) == "4":
                spsp.append(xxx)
                for nnn in spsp:
                    znzn = []
                    if nnn % 6 == 0:
                        znzn.append(nnn)
                        print(znzn)
                    
input("Нажмите Enter, чтобы выйти.")
    
        

Отредактировано Duck233 (Март 13, 2013 23:03:35)

Офлайн

#2 Март 13, 2013 22:45:41

Romiss
От:
Зарегистрирован: 2011-11-01
Сообщения: 26
Репутация: +  4  -
Профиль   Отправить e-mail  

Где ошибка?

Первое что бросается в глаза, что вы хотите получить из:

if number == "0":
Возможно вы имели ввиду не равно 0?



Отредактировано Romiss (Март 13, 2013 22:47:07)

Офлайн

#3 Март 13, 2013 22:58:26

Duck233
Зарегистрирован: 2012-06-30
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

Где ошибка?

если пользователь вводит 0 то выполняется условие т.е если number == “0”

Отредактировано Duck233 (Март 13, 2013 22:59:35)

Офлайн

#4 Март 13, 2013 23:08:10

Romiss
От:
Зарегистрирован: 2011-11-01
Сообщения: 26
Репутация: +  4  -
Профиль   Отправить e-mail  

Где ошибка?

может что-то в этом роде вам нужно

list = []
number = raw_input("Введите число: ")
try:
    if int(number)%6 == 0 and (str(number))[-1] == '4':
        list.append(number)
        print list
except ValueError:
    print 'Вы ввели не число'
                    
input("Нажмите Enter, чтобы выйти.")



Офлайн

#5 Март 13, 2013 23:21:00

Romiss
От:
Зарегистрирован: 2011-11-01
Сообщения: 26
Репутация: +  4  -
Профиль   Отправить e-mail  

Где ошибка?

Duck233
если пользователь вводит 0 то выполняется условие т.е если number == “0”
, а если пользователь введет не ноль, то ваш код выполняться не будет.



Офлайн

#6 Март 14, 2013 06:56:02

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

Где ошибка?

не то?

# coding: cp1251
spisok = []
number = None
while True:
	number = input(u'Введите число или стоп для завершения:\n')
	if number == u'стоп':
		break
	if int(number) % 6 == 0 or number[-1] == '4':
		spisok.append(number)
		
for i in spisok:
	print (i)

Офлайн

#7 Март 14, 2013 12:45:50

Duck233
Зарегистрирован: 2012-06-30
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

Где ошибка?

Я написал, все работает, всем спасибо

spisok = []
x = 0
number = None
while True:
    number = input("Введите число или напишите 0 для завершения: ")
    if number == "0":
        print(x)
        break
    spisok.append(number)
    for xxx in spisok:
        if xxx[-1] == "4":
            del spisok[:]
            spisok.append(xxx)
            for snsn in spisok:
                del spisok[:]
                if int(snsn) % 6 == 0:
                    x += int(snsn)
                                        
            
            
                    
input("Нажмите Enter, чтобы выйти.")
    

Отредактировано Duck233 (Март 14, 2013 12:49:11)

Офлайн

#8 Март 14, 2013 12:47:26

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

Где ошибка?

Я написал, все работает, но мне мой код не нравится
а в чем вопрос?

Офлайн

#9 Март 14, 2013 12:52:13

Duck233
Зарегистрирован: 2012-06-30
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

Где ошибка?

ilnur
отредактировал там была проблема и я использовал set и list, сейчас их убрал все работает, видимо где то тогда ошибка была

Отредактировано Duck233 (Март 14, 2013 12:52:37)

Офлайн

#10 Март 14, 2013 13:02:28

Duck233
Зарегистрирован: 2012-06-30
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

Где ошибка?

Вот вопрос еще

for snsn in spisok:
       del spisok[:]
       if int(snsn) % 6 == 0:
             x += int(snsn)
если так то программа работает правльно
а если убрать
del spisok[:]
то не правельно, почему?

Отредактировано Duck233 (Март 14, 2013 13:03:47)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version