Как найти первую цифру числа while

Здесь мы обсудим, как получить первую цифру числа в python. Если наше число «12345», то нужно вывести в консоль его первую цифру – «1». Мы напишем код для получения первой цифры заданного числа, используя нативные методы Python, встроенные функции, оператор [] и оператор среза.

Получаем первую цифру заданного числа в цикле

Для начала мы создадим переменную, в которую будем сохранять введенное число. Затем, чтобы найти первую цифру числа, мы будем использовать цикл while для целочисленного деления на 10 до тех пор, пока наше число будет больше либо равно 10. Далее мы просто выведем полученный результат на экран:

# Код на Python для получения первой цифры заданного числа

# Ввод числа
num = int(input('Enter any Number: '))

# Получаем первую цифру
while (num >= 10):
    num = num // 10

# Выводим полученный результат в консоль
print('The first digit of number:', num)

Результат:

Enter any Number: 123
The first digit of number: 1

Как получить первую цифру числа при помощи встроенных функций

Мы будем использовать встроенные функции math.pow() и math.log10(). Метод math.pow() входит в библиотеку math и используется для вычисления заданной степени числа (основания). Он принимает два числа и возвращает первое число, возведенное в степень, равную второму числу. Тип вывода – float.

log10() — это математическая функция, также входящая в модуль math. Она принимает число в качестве аргумента и возвращает значение его десятичного логарифма (логарифма по основанию 10).

# Код на Python для получения первой цифры заданного числа

# Импортируем модуль math
import math

# Ввод числа
num = int(input('Enter any Number: '))

# Получаем первую цифру
digits = int(math.log10(num))
first_digit = int(num / pow(10, digits))

# Выводим полученный результат в консоль
print('The first digit of number:', first_digit)

Результат:

Enter any Number: 523
The first digit of number: 5

Как получить первую цифру числа при помощи оператора []

В Python для строкового типа данных существует оператор [] для доступа к любому символу в строке по номеру индекса. Таким образом, нам нужно передать в квадратные скобки номер индекса, и данный оператор вернет соответствующий символ. Так как индексация в строке начинается со значения 0, то для получения первого символа нужно передать в квадратные скобки именно 0.

# Код на Python для получения первой цифры заданного числа

# Ввод числа
num = int(input('Enter any Number: '))

# Преобразуем число в строку
num_str = str(num)

# Получаем первый символ строки
first_digit = num_str[0]

# Выводим полученный результат в консоль
print('The first digit of number:', first_digit)

Результат:

Enter any Number: 7983516
The first digit of number: 7

Получение первой цифры числа при помощи срезов

Теперь давайте получим первую цифру числа при помощи оператора среза. Срез [:1] как раз возвращает первый символ строки с индексом 0.

# Код на Python для получения первой цифры заданного числа

# Ввод числа
num = int(input('Enter any Number: '))

# Преобразуем число в строку
num_str = str(num)

# Получаем первый символ строки
first_digit = num_str[:1]

# Выводим полученный результат в консоль
print('The first digit of number:', first_digit)

Результат:

Enter any Number: 100
The first digit of number: 1

Перевод статьи “How to Get the First Digit of a Number in Python”.

Нужно, чтобы код остановился на первой цифре многозначного целочисленного числа.
Что надо добавить?

n = int(input())
while n // 10 != 0:
   n = n // 10

insolor's user avatar

insolor

45.7k15 золотых знаков54 серебряных знака95 бронзовых знаков

задан 12 апр 2018 в 19:26

Владимир Макаров's user avatar

Владимир МакаровВладимир Макаров

11 золотой знак1 серебряный знак3 бронзовых знака

4

Переводим модуль числа (на случай отрицательных чисел) в текст и берем первый символ:

 n = str(abs(chislo))[0]

Если результат нужно использовать как число, то конвертируем строку опять в число:

n = int(str(abs(chislo))[0])

ответ дан 13 апр 2018 в 5:45

Эникейщик's user avatar

ЭникейщикЭникейщик

25.1k7 золотых знаков30 серебряных знаков46 бронзовых знаков

2

n = -50178

sign = False

if n < 0:
    n *= -1
    sign = True

while n >= 10:
    n //= 10

if sign:
    n *= -1

print(n)  # -5

insolor's user avatar

insolor

45.7k15 золотых знаков54 серебряных знака95 бронзовых знаков

ответ дан 13 апр 2018 в 11:56

slippyk's user avatar

slippykslippyk

6,1013 золотых знака19 серебряных знаков38 бронзовых знаков

3

n = int(input())
while n > 9:
    n = n // 10
print(n)

ответ дан 21 апр 2022 в 10:48

A. Tverskoy's user avatar

1

На чтение 3 мин Просмотров 2.1к. Опубликовано

Python — язык программирования с динамической типизацией, поддерживающий множество встроенных типов данных, включая числа. При работе с числами может возникнуть необходимость получить первую цифру числа для дальнейшей обработки. В этой статье мы рассмотрим несколько способов, как вывести первую цифру числа в Python.

Преобразование числа в строку

Для того чтобы вывести первую цифру числа, нам нужно сначала преобразовать это число в строку. Это можно сделать с помощью встроенной функции str(). Функция str() принимает один аргумент (число или объект, который нужно преобразовать в строку) и возвращает строковое представление этого объекта.

Например, если мы хотим преобразовать число 123 в строку, мы можем написать:

num = 123
num_str = str(num)

Теперь переменная num_str будет содержать строку '123'.

После того, как мы преобразовали число в строку, мы можем использовать индексацию, чтобы получить первый символ строки, который будет соответствовать первой цифре числа. В Python индексация начинается с 0, так что первый символ строки будет иметь индекс 0. Мы можем использовать квадратные скобки для получения символа по индексу.

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

num = 123
num_str = str(num)
first_digit = num_str[0]
print(first_digit)

Этот код выведет на экран символ '1', который является первой цифрой числа 123.

Обратите внимание, если вы работаете с отрицательными числами, то в этом случае, до перевода числа в строку, вам необходимо использовать функцию abs() , которая возвращает абсолютное значение числа. Пример:

num = -123
num = abs(num)
num_str = str(num)
first_digit = num_str[0]
print(first_digit)

В противном случае, на выходе вы получите просто знак '-'.

Использование арифметических операций для получения первой цифры

Есть несколько способов получить первую цифру числа в Python с помощью арифметических операций. Один из них — использование целочисленного деления.

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

Например, для числа 987 мы будем делить его на 10 до тех пор, пока оно не станет меньше 10:

987 // 10 = 98

98 // 10 = 9

Оставшаяся цифра будет первой цифрой числа 987 — это 9.

Вот как выглядит код, который использует этот метод:

num = 987
while num >= 10:
    num //= 10
first_digit = num
print(first_digit)

Этот код работает только для положительных значений. Чтобы работать с отрицательными числами, воспользуйтесь в начале функцией abs():

num = -987
num = abs(num)
while num >= 10:
    num //= 10
first_digit = num
print(first_digit)

В противном случае вы получите на выходе изначальное отрицательное число, так как оно меньше 10.

Нужно, чтобы код остановился на первой цифре многозначного целочисленного числа.
Что надо добавить?

n = int(input())
while n // 10 != 0:
   n = n // 10

Ответы (3 шт):

Переводим модуль числа (на случай отрицательных чисел) в текст и берем первый символ:

 n = str(abs(chislo))[0]

Если результат нужно использовать как число, то конвертируем строку опять в число:

n = int(str(abs(chislo))[0])

→ Ссылка

Автор решения: slippyk

n = -50178

sign = False

if n < 0:
    n *= -1
    sign = True

while n > 10:
    n //= 10

if sign:
    n *= -1

print(n)  # -5

→ Ссылка

На Python можно использовать следующее выражение для определения первой цифры числа:

def first_digit(num):

return int(str(num)[0]) if num > 0 else None

Метод str() конвертирует число в строку.

Синтаксис [0] возвращает первый символ строки.

Метод int() конвертирует строку обратно в число.

Пример:

print(first_digit(12­3)) # Output: 1

print(first_digit(-123)) # Output: None

print(first_digit(0)­) # Output: None

Примечание: Если число отрицательное или равное нулю, функция возвращает None.

Вы можете также использовать метод isdigit() из модуля string для определения, является ли первый символ цифрой.

Например:

def first_digit(num):

num = str(num)

for i in num:

if i.isdigit():

return int(i)

return None

Пример:

print(first_digit(12­3)) # Output: 1

print(first_digit(-123)) # Output: None

print(first_digit(0)­) # Output: None

Еще один способ может быть с использованием регулярных выражений re

import re

def first_digit(num):

match = re.search(r’d’, str(num))

return int(match.group(0)) if match else None

Пример:

print(first_digit(12­3)) # Output: 1

print(first_digit(-123)) # Output: None

print(first_digit(0)­) # Output: None

Вы можете выбрать любой из методов в зависимости от ваших потребностей и предпочтений.

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