Как найти старшую цифру числа питон

def func(num):
    max = 0
    for i in range(num):
        if i > max:
            max = i
    return (max)


print(func(67124))

strawdog's user avatar

strawdog

23.4k4 золотых знака19 серебряных знаков33 бронзовых знака

задан 12 фев 2021 в 17:39

Дарья Лазарева's user avatar

2

Можно использовать функцию max для строкового представления числа.

Пример:

def f(num):
    return int(max(str(num)))

Цифры будут сравниваться на основе ASCII кода их символьного представления. Это возможно, потому что их коды находятся последовательно от меньшего к большему (48-57).

ответ дан 12 фев 2021 в 17:46

nomnoms12's user avatar

nomnoms12nomnoms12

18.3k5 золотых знаков22 серебряных знака47 бронзовых знаков

Можно привести число к строке, чтобы на каждой итерации получить отдельную цифру.

Пример:

def f(num):
    m = 0
    for n in str(num):
        if int(n) > m:
            m = int(n)
    return m

ответ дан 12 фев 2021 в 17:41

nomnoms12's user avatar

nomnoms12nomnoms12

18.3k5 золотых знаков22 серебряных знака47 бронзовых знаков

1

способ 1:

def f(num):
    return max(map(int, str(num)))

способ 2:

def f(num):
    res = 0
    while num != 0:
      res = max(res, num % 10)
      num //= 10
    return res

способ 3:

def f(num):
  return int(sorted(str(num))[-1])

способ 3.5:

def f(num):
  return int(list(set(str(num)))[-1])

ответ дан 12 фев 2021 в 17:46

Zhihar's user avatar

ZhiharZhihar

36.8k4 золотых знака25 серебряных знаков65 бронзовых знаков

0 / 0 / 0

Регистрация: 22.07.2017

Сообщений: 20

1

Простой вывод самой большой цифры числа

22.07.2017, 18:21. Показов 34762. Ответов 1


Студворк — интернет-сервис помощи студентам

Я являюсь новичком в Python. Ну как новичком – до этого я смотрел короткие курсы в 18-22 выпуска. Я делаю свой мини-проектик, возьмем любое произвольное число. Пусть это будет 3481561 – как вывести самую большую цифру этого числа самым простым способом? На ум приходит только словарь или кортеж, не помню что именно, но вроде там можно подобное сделать (и то не факт). Буду благодарен.



0



Рыжий Лис

Просто Лис

Эксперт Python

4944 / 3252 / 1008

Регистрация: 17.05.2012

Сообщений: 9,526

Записей в блоге: 9

22.07.2017, 18:34

2

Лучший ответ Сообщение было отмечено chelovekfromhel как решение

Решение

Python
1
2
3
4
5
6
#!/usr/bin/env python3
i = 3481561
s = str(i)
ls = list(map(int, s))
r = max(ls)
print(r)

Добавлено через 5 минут

Python
1
2
3
4
5
6
7
8
9
#!/usr/bin/env python3
i = 3481561
r = -1
while i > 10:
    d = i % 10
    i //= 10
    if d > r:
        r = d
print(r)

Добавлено через 1 минуту

Python
1
2
3
4
5
6
7
8
#!/usr/bin/env python3
i = 3481561
ls = []
while i > 10:
    ls.append(i % 10)
    i //= 10
r = max(ls)
print(r)



1



So, I have to input a number and find the biggest digit in that number, so if the number is 2314 I want to get 4, my code so far:

a = input()

for x in a:
    i = int(x)

Alberto Bonsanto's user avatar

asked Mar 21, 2016 at 22:08

Aleks Florijan's user avatar

1

If your input is a number, you will want to first convert your input to a string and then convert each character back into an integer and take the max. You can easily use a generator expression to convert all characters to integers using int and then apply max.

maximum = max(int(x) for x in str(a))

For the sake of an example:

maximum = max(int(x) for x in str(415023))  # 5

If on the other hand, your input is a string, then just skip the conversion to a string.

maximum = max(int(x) for x in a)

A More Robust Solution

All of these examples assume that you don’t have any decimal points or negative signs in your number. If you do then you can explicitly ignore those.

maximum = max(int(x) for x in str(a) if x not in '.-')

As an example:

a = -15.93
maximum = max(int(x) for x in str(a) if x not in '.-')  # 9

answered Mar 21, 2016 at 22:11

Suever's user avatar

SueverSuever

64.3k14 gold badges82 silver badges101 bronze badges

Convert to a string, then get the max

a = 2314
max(str(a))
# output 4

answered Mar 21, 2016 at 22:10

idjaw's user avatar

idjawidjaw

25.2k7 gold badges63 silver badges83 bronze badges

1

Since this is a homework, here is another simple answer. Since you are a beginner, didn’t use max().

a = input("number: ")
print (sorted(list(a))[-1])

Converted the input to a list first, then sorted it. Last number is the max. That [-1] is the last index of the list.

answered Mar 21, 2016 at 22:16

GLHF's user avatar

GLHFGLHF

3,74310 gold badges38 silver badges82 bronze badges

1

A reduce in python2 might also work.

maximum = reduce(lambda acc, n: acc if acc > int(n) else int(n), "123131891", 0)

answered Mar 21, 2016 at 22:19

Alberto Bonsanto's user avatar

Alberto BonsantoAlberto Bonsanto

17.4k10 gold badges64 silver badges92 bronze badges

С клавиатуры вводится натуральное число. Найти его наибольшую цифру. В ведённом ряде. Например, введено число 748927183 – наибольшее число число в ряде 9

Алгоритм решение задачи на python

Переменная a — заданное число, переменная m — максимальная цифра. Предположим, что последняя цифра числа является максимальной.

Извлекаем его с помощью операции нахождения остатка при делении на 10.

Так как последнюю цифру мы уже рассмотрели, избавимся от нее с помощью операции деления на 10.

Далее в цикле мы извлекаем каждую цифру из конца числа и сравниваем ее со значением m.Если следующая цифра больше, мы присваиваем ее переменной m.

Также в цикле нужно избавиться от уже учтенной последней цифры. Цикл завершается, когда переменная а становится равной нулю, т. е. он выполняется до тех пор, пока переменная а больше нуля.

В конце программы мы выведем на экран значение m. Это будет самая большая цифра исходного числа.

Решени задачи на языке python

a = int(input(‘Введите число’))

m = a%10
a = a//10
while a > 0:
    if a%10 > m:
        m = a%10
    a = a//10
print(m)
  1. Нужна ли физика программисту ?
  2. Язык программирования и их значение
  3. Суть работы программиста
  4. Python задачи. Перевести байты в килобайты или наоборот

Комментировать пост…Комментировать…

Язык программирования Python

Мне нужно написать программу для нахождения суммы первой и последней цифр числа.

import math #Импортируем необходимую библиотеку n=int(input('Введите число ')) x = [(n//(10**i))%10 for i in range(math.ceil(math.log(n, 10))-1, -1, -1)] #отделим каждую цифру print(x) #Выводим список с цифрами

Code language: PHP (php)

Я не знаю, как взять первую и последнюю цифру из этого списка, а затем сложить их вместе.

Решение.

Найти первую и последнюю цифру числа можно несколькими способами, среди которых:

Использование string:

>>> n = 5638 >>> int(str(n)[0]) 5 >>> int(str(n)[-1]) 8

Использование math

>>> import math >>> n // (10 ** int(math.log10(n))) 5 >>> n % 10 8

Code language: JavaScript (javascript)

Добавить комментарий