Уведомления

Группа в Telegram: @pythonsu

#1 Март 7, 2015 23:12:04

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с выводом результата матрицы.

Разработать функцию saddle_point(matrix), которая принимает 1 аргумент – прямоугольную матрицу целых чисел, заданную в виде списка списков, и возвращает тьюпл с координатами “точки седла” переданной матрицы или логическую константу False, если такой точки не существует.
Вот код:

def saddle_point(matrix):
    count, last=0,0
    for i in matrix:
        
        if i.count(min(i)) == 1:
            m=i.index(min(i))
            col=[]
            for j in matrix:
               
                col.append(j[m])
            
            if col.count(max(col)) == 1 and min(i) == max(col):
               
                result=(str(m), str(col.index(max(col))))
               
                count+=1
        if count > last:
            last=count
            print (', '.join(result))
    
    if count == 0:
        print ('False')
Проблема в следующим, ввожу данные:
saddle_point([,])
Возращает: false, и по чему то выводится None.

Как убрать None ???

Отредактировано Xryst (Март 7, 2015 23:22:30)

Офлайн

#2 Март 7, 2015 23:29:41

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

Проблема с выводом результата матрицы.

def saddle_point(matrix):
    count, last=0,0
    for i in matrix:
        
        if i.count(min(i)) == 1:
            m=i.index(min(i))
            col=[]
            for j in matrix:
               
                col.append(j[m])
            
            if col.count(max(col)) == 1 and min(i) == max(col):
               
                result=(str(m), str(col.index(max(col))))
               
                count+=1
        if count > last:
            last=count
            return ', '.join(result)
    
    if count == 0:
        return 'False'
нужно заменить print на return, так как в условии сказано возвращать а не выводить
P. S. код не работоспособность не проверял



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Март 7, 2015 23:31:00)

Офлайн

#3 Март 7, 2015 23:52:08

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с выводом результата матрицы.

Xryst
return ‘, ’.join(result)

if count == 0:
return ‘False’
Не подскажешь, как перевесть ‘,’ в int

Офлайн

#4 Март 8, 2015 00:10:38

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

Проблема с выводом результата матрицы.

Xryst
Не подскажешь, как перевесть ‘,’ в int
а зачем переводить ее в строку чтобы потом перевести ее в инт?
result=(str(m), str(col.index(max(col))))
вот так
def saddle_point(matrix):
    count, last=0,0
    for i in matrix:
        
        if i.count(min(i)) == 1:
            m=i.index(min(i))
            col=[]
            for j in matrix:
               
                col.append(j[m])
            
            if col.count(max(col)) == 1 and min(i) == max(col):
               
                result=(m, col.index(max(col)))
               
                count+=1
        if count > last:
            last=count
            return result
    
    if count == 0:
        return 'False'



————————————————
-*- Simple is better than complex -*-

Офлайн

#5 Март 8, 2015 00:19:33

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с выводом результата матрицы.

terabayt
а зачем переводить ее в строку чтобы потом перевести ее в инт?
resultstr(m), str(col.index(max(col))))
Перевол потому как не знал как вывесть в таком формате 0,0
Как говорится с глупил

Отредактировано Xryst (Март 8, 2015 00:53:29)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version