Найти - Пользователи
Полная версия: Поиск минимальной и максимальной цифры в числе
Начало » Python для новичков » Поиск минимальной и максимальной цифры в числе
1
rover233
Пытаюсь написать функцию, которая будет возвращать мин. и макс. значения цифр из заданного пользователем числа. Не могу понять почему на числе = 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"))
marvellik
 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_ )
rover233
marvellik
Спасибо за версию, она, конечно, быстрее и лаконичнее, но я пытаюсь понять в чем у меня ошибка.

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