Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 10, 2017 22:03:53

rover233
Зарегистрирован: 2017-09-10
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск минимальной и максимальной цифры в числе

Пытаюсь написать функцию, которая будет возвращать мин. и макс. значения цифр из заданного пользователем числа. Не могу понять почему на числе = 123, минимальное число получается равным 2.

Спасибо

 def minmax(M):
 x=[M[0],M[0]]      # задаем минимальное и максимальное значение как первые два элемента массива х
 for i in range(0,len(M)):  # сравниваем каждую цифру со всеми другими цифрами 
   for j in range(0,len(M)):  
    if int(M[i])<int(M[j]) and int(x[1])>int(M[i]): # условие на минимум
      x.insert(1,int(M[i]))
    if int(M[i])>int(M[j]) and int(x[0])<int(M[i]): # условие на минимум
      x.insert(0,int(M[i]))
  
 print("minimum=",x[1])
 print("maximum=",x[0])
 return 
minmax(input("enter a number"))

Отредактировано rover233 (Сен. 10, 2017 22:05:52)

Офлайн

#2 Сен. 10, 2017 22:25:32

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Поиск минимальной и максимальной цифры в числе

 def minmax(m):
    m = [ int(i) for i in list(m)]  # m = list(map(int,list(m)))
    # return (min(m), max(m)) на этом можно закончить
    min_m,max_m = m[0],m[0]
    for i in m:
        if i <min_m:
            min_m = i
        if i >max_m :
            max_m = i
    return(min_m, max_m)
min_,max_ = minmax(input("enter a number "))
print(min_,max_ )

Офлайн

#3 Сен. 10, 2017 22:31:59

rover233
Зарегистрирован: 2017-09-10
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск минимальной и максимальной цифры в числе

marvellik
Спасибо за версию, она, конечно, быстрее и лаконичнее, но я пытаюсь понять в чем у меня ошибка.

Офлайн

#4 Сен. 10, 2017 22:58:22

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Поиск минимальной и максимальной цифры в числе

rover233
но я пытаюсь понять в чем у меня ошибка.
Это пому что вы делаете зачемто insert. А накой ляд вы insert делаете? когда вы делаете insert все остальные элементы списка сдвигаются. В итоге у вас например х = (2,1). в последнем прохождении цикла находиться 3 котороая больше 2. Вы делаете инсерт(0), тройка занимает нулевой индекс, двойка соотвевенно 1, единица - 2. На выходе х = (3,2,1).
Соотвесвенно minimum= x(1) = 2, maximum=x(0) = 3.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Сен. 10, 2017 22:58:35)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version