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

I have to find the last digit and the penultimate digit of some number. I know how to find the last but not the penultimate digit. (i am the only beginner)

a = int(input('Enter a minimum two-digit number '))

b2 = a % 10
b1  = 

print('Penultimate digit is: ', b1)
print('Last digit is: ', b2 )

NiksVij's user avatar

NiksVij

1831 silver badge9 bronze badges

asked Nov 3, 2018 at 10:08

Peter's user avatar

2

Treat your input as string, then get its -2 index.
Python’s negative index mean index start from the end (-1 is the last, -2 is penultimate, -3 is the item before it …)
One last thing, what you want is digit, not number :D

a = input('Enter a minimum two-digit number ')

print('Penultimate number is: ', a[-2])
print('Last number is: ', a[-1] )

answered Nov 3, 2018 at 10:11

enamoria's user avatar

enamoriaenamoria

8962 gold badges11 silver badges29 bronze badges

There are many ways, but you could simply take the remainder modulo 100, then take the result of the integer division by 10:

 1234 % 100 // 10
 # 3

answered Nov 3, 2018 at 10:11

Thierry Lathuille's user avatar

Thierry LathuilleThierry Lathuille

23.5k10 gold badges44 silver badges49 bronze badges

If you’re talking about the two last digits, you could either convert to a string and get the last 2 characters:

>>> '4321'[-1]
'1'
>>> '4321'[-2]
'2'

or use arithmetics. You first need to extract the last 2 digits with % 100:

>>> 4321 % 100
21
>>> 21 % 10
1
>>> 21 // 10
2

answered Nov 3, 2018 at 10:12

Eric Duminil's user avatar

Eric DuminilEric Duminil

52.6k9 gold badges67 silver badges122 bronze badges

While there are other — faster — solutions, you may reuse what you already found out:

From a subtract its last digit (you got that already) and you’ll get a number with a trailing 0, which means it’s divisible by 10. Now divide that by 10 to remove the 0. Now the last digit (and you know how to obtain that) is the penultimate digit of the input number.

b1 = ((a - b2) / 10) % 10

Now we can simplify that again: Instead of first making a divisible by 10, you can also use floor division:

b1 = (a // 10) % 10

answered Nov 3, 2018 at 10:18

Hero Wanders's user avatar

Hero WandersHero Wanders

3,1971 gold badge9 silver badges14 bronze badges

I converted the number into an array and then decreased 2 from the length.

Steps
1.Convert number into array
3.Find penultimate index subtracting array.length — 2
4.Use index to return penultimate digit

function splitIntoArray(number) {
  numArray = Array.from(String(number), Number);
  return numArray;
}
function getPenultimateDigit(num) {
  arrayNum = splitIntoArray(num);
  penultimate = arrayNum.length - 2;
  digit = arrayNum[penultimate];
  return digit;
}

answered Jan 26 at 18:38

keila fuentes's user avatar

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

Я должен найти последнюю цифру и предпоследнюю цифру некоторого числа. Я знаю, как найти последнюю, но не предпоследнюю цифру. (я единственный новичок)

a = int(input('Enter a minimum two-digit number '))

b2 = a % 10
b1  = 

print('Penultimate digit is: ', b1)
print('Last digit is: ', b2 )

2018-11-03 10:08

5
ответов

Есть много способов, но вы можете просто взять остаток по модулю 100, а затем взять результат целочисленного деления на 10:

 1234 % 100 // 10
 # 3

2018-11-03 10:11

Рассматривайте ваш вклад как string, тогда получи свое -2 индекс.
Отрицательный индекс Python означает начало индекса с конца (-1 — последний, -2 — предпоследний, -3 — элемент перед ним…)
И последнее, что вы хотите, это цифра, а не число:D

a = input('Enter a minimum two-digit number ')

print('Penultimate number is: ', a[-2])
print('Last number is: ', a[-1] )

2018-11-03 10:11

Хотя есть и другие — более быстрые — решения, вы можете использовать то, что уже обнаружили:

От a вычтите его последнюю цифру (вы уже получили), и вы получите число с конечным 0, что означает, что оно делится на 10. Теперь разделите это на 10, чтобы удалить 0. Теперь последняя цифра (и вы знаете, как получить что) является предпоследней цифрой входного номера.

b1 = ((a - b2) / 10) % 10

Теперь мы можем упростить это снова: вместо того, чтобы сначала сделать a делится на 10, вы также можете использовать разделение по полу:

b1 = (a // 10) % 10

2018-11-03 10:18

Если вы говорите о двух последних цифрах, вы можете либо преобразовать в строку и получить последние 2 символа:

>>> '4321'[-1]
'1'
>>> '4321'[-2]
'2'

или используйте арифметику. Сначала вам нужно извлечь последние 2 цифры с % 100:

>>> 4321 % 100
21
>>> 21 % 10
1
>>> 21 // 10
2

2018-11-03 10:12

Я преобразовал число в массив, а затем уменьшил длину на 2.

Шаги 1.Преобразовать число в массив 3.Найти предпоследний индекс, вычитая array.length — 2 4.Использовать индекс, чтобы вернуть предпоследнюю цифру

      function splitIntoArray(number) {
  numArray = Array.from(String(number), Number);
  return numArray;
}
      function getPenultimateDigit(num) {
  arrayNum = splitIntoArray(num);
  penultimate = arrayNum.length - 2;
  digit = arrayNum[penultimate];
  return digit;
}

2023-01-26 18:38

Другие вопросы по тегам
python

При помощи операции нахождения остатка и целочисленного деления можно достаточно несложно вычислить любую цифру числа.

Рассмотрим программу получения цифр двузначного числа:

num = 17
a = num % 10
b = num // 10
print(a)
print(b)

Результатом выполнения программы будут два числа:

7
1

То есть сначала мы вывели последнюю цифру числа, а затем первую цифру.

Запомни: последняя цифра числа определяется всегда как остаток от деления числа на 10 (% 10). Чтобы отщепить последнюю цифру от числа, необходимо разделить его нацело на 10 (// 10).

Рассмотрим программу получения цифр трёхзначного числа:

num = 754
a = num % 10
b = (num % 100) // 10
c = num // 100
print(a)
print(b)
print(c)

Результатом выполнения программы будут три числа:

4
5
7

То есть сначала мы вывели последнюю цифру числа, затем среднюю цифру, а затем первую цифру.

Алгоритм получения цифр n-значного числа

Несложно понять, по какому алгоритму можно найти каждую цифру n-значного числа num:

  • Последняя цифра: (num % 101) // 100;
  • Предпоследняя цифра: (num % 102) // 101;
  • Предпредпоследняя цифра: (num % 103) // 102;
  • …..
  • Вторая цифра: (num % 10n-1) // 10n-2;
  • Первая цифра: (num % 10n) // 10n-1.

Решение задач

Задача 1. Напишите программу, определяющую число десятков и единиц в двузначном числе.

Решение. Число единиц – это последняя цифра числа, число десятков – первая цифра. Чтобы получить последнюю цифру любого числа, нужно найти остаток от деления числа на 10. Чтобы найти первую цифру двузначного числа, нужно поделить число нацело на 10. Программа, решающая поставленную задачу, может иметь следующий вид:

num = int(input())
last_digit = num % 10
first_digit = num // 10
print('Число десятков =', first_digit)
print('Число единиц =', last_digit)

Задача 2. Напишите программу, в которой рассчитывается сумма цифр двузначного числа.

Решение. Программа, решающая поставленную задачу, может иметь следующий вид:

num = int(input())
last_digit = num % 10
first_digit = num // 10
print('Сумма цифр =', last_digit + first_digit)

Задача 3. Напишите программу, которая печатает число, образованное при перестановке цифр двузначного числа.

Решение. Программа, решающая поставленную задачу, может иметь следующий вид:

num = int(input())
last_digit = num % 10
first_digit = num // 10
print('Искомое число =', last_digit * 10 + first_digit)

Задача 4. Напишите программу, в которую вводится трёхзначное число и которая выводит на экран его цифры (через запятую).

Решение. Программа, решающая поставленную задачу, может иметь следующий вид:

num = int(input())
digit3 = num % 10
digit2 = (num // 10) % 10
digit1 = num // 100
print(digit1, digit2, digit3, sep=',')

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

Во введении к курсу мы узнали, что командная строка в среде разработки Visual Studio Code находится внизу на вкладке «Терминал». Именно в ней мы будем вводить данные с клавиатуры, а программа будет выводить результаты. Как было сказано ранее, мы будем писать компьютерные программы, которые принимают на вход данные, работают с ними и выводят результат на экран.

Вспомним программу из введения:

print("Привет, мир!")

В этой программе мы вызываем встроенную функцию под названием print(). Как она устроена внутри, нам пока не столь важно. Главное — запомнить, что у неё есть имя, по которому к ней можно обратиться, плюс она принимает данные и обрабатывает их. О том, какими могут быть данные, мы тоже поговорим позже — в нашем примере мы передаём строку «Привет, мир!».

В Python строки заключены в кавычки — можно использовать одинарные, двойные и тройные (рекомендуется их составлять из трёх двойных). Внутри кавычек одного вида можно использовать другой вид кавычек как часть выводимой на экран строки.

Например:

  • print('Привет, мир!')
  • print("Привет, мир!")
  • print("""Привет, мир!""")
  • print("Программа выводит фразу 'Привет, мир!'")

Данные в программу могут поступать различными способами. Самый простой и привычный для пользователя — это ввод с клавиатуры. Для этого в Python используется функция input(), которая возвращает в программу введённую пользователем строку. Но данные нужно куда-то сохранить, и в этом нам помогают переменные. Переменным назначаются имена, в них записываются значения, и затем они используются в программе по мере необходимости.

Напишем программу, которая получает от пользователя строку и выводит на экран:

phrase = input()
print(phrase)

После запуска программы происходит приостановка выполнения и в терминале появляется приглашение для ввода данных:

1_1.png

После ввода данных необходимо нажать клавишу Enter. Программа запишет введённые данные в переменную phrase и продолжит выполнение со следующей строчки. Переменная начинает существовать в программе, когда в неё записывается какое-то значение. В момент записи значения переменной назначается тип данных, определённый в соответствии со значением.

В нашем примере в переменную phrase записывается строка, введённая пользователем. Поэтому переменной phrase назначается встроенный в язык Python тип данных str. Тип данных str используется для хранения строк, а сами строки являются упорядоченной последовательностью символов.

У функции input() можно задать параметр-строку перед вводом значения — и тогда указанный текст будет сопровождать приглашение к вводу данных:

phrase = input("Введите строку: ")
print(phrase)

1_2.png

Для именования переменных и правильного оформления кода существует стандарт PEP 8 (Python Enhancement Proposals), который следует соблюдать. Согласно стандарту PEP 8, имена переменных должны содержать маленькие буквы английского алфавита и символ «подчёркивание» для разделения слов в имени. Пример имён переменных по стандарту: value, first_value.

Нельзя использовать следующие однобуквенные имена переменных:

  • I (большая английская i);
  • l (маленькая английская L);
  • O.

Эти однобуквенные имена усложнят читаемость кода, так как могут быть перепутаны между собой или с цифрами. Все стандарты PEP можно посмотреть на этой странице.

Но вернёмся к функции print(). С её помощью можно выводить сразу несколько значений. Для этого их нужно перечислить через запятую. Выведем, например, фразу Добрый день, %имя%.:

name = "Пользователь"
print("Добрый день,", name, ".")

В консоли отобразится:

Добрый день, Пользователь .

Как видим, результат работы программы не соответствует нашим ожиданиям, так как между словом «Пользователь» и точкой появился пробел. Данный пробел является символом, который по умолчанию ставится между выводимыми значениями. Вместо пробела можно указать любую другую строку, даже пустую. Для этого нужно передать в функцию print() именованный аргумент sep (англ. separator — «разделитель»). Сделаем так, чтобы вместо пробела в качестве разделителя использовалась пустая строка:

name = "Пользователь"
print("Добрый день, ", name, ".", sep="")

В консоли отобразится:

Добрый день, Пользователь.

Но в таком случае необходимые пробелы нам придётся ставить самим, а это неудобно. К счастью, в Python существует удобный и мощный инструмент для форматирования строк — f-строки. Чтобы задать f-строку, необходимо поставить букву f перед открывающей кавычкой строки. Далее f-строка записывается как единое целое, с учётом правил её форматирования, и закрывается соответствующей кавычкой:

name = "Пользователь"
print(f"Добрый день, {name}.")

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

Использование f-строк является приоритетным способом форматирования. Наряду с f-строками существует функция format(), которая также предназначена для удобного форматирования (мы рассмотрим её чуть позже). Также форматирование строк может производиться с помощью символа %. Однако данный способ форматирования является устаревшим (здесь можно почитать про него подробнее).

В строках можно применять управляющие символы, начинающиеся с символа «слеш» (). Например:

  • n — переход на новую строку;
  • t — табуляция;
  • r — возврат каретки в начало строки;
  • b — возврат каретки на один символ.

Кроме того, с помощью слеша можно экранировать символы, то есть делать их частью выводимой строки. Например, для вывода символа необходимо его экранировать самим собой:

print("\")

Подробнее об экранировании можно почитать в этом источнике.

В функции print() кроме параметра sep существует параметр end, который определяет символ в конце строки. Значение по умолчанию для него — переход на новую строку, обозначаемый как n. Если вывести строки с помощью нескольких использований функции print(), то вывод каждой из них будет осуществлён с новой строки:

print("Привет, Пользователь!")
print("Как дела?")
Привет, Пользователь!
Как дела?

Над строками можно производить следующие операции:

  • сложение (конкатенация строк);
  • умножение строки на целое число.

Результатом сложения строк будет новая строка, представляющая собой записанные последовательно складываемые строки (строки как бы склеиваются друг с другом, образуя новую строку).

print("Сложно" + "подчинённый")
Сложноподчинённый

При умножении строки на целое число n получается новая строка, состоящая из n дублирований исходной строки. Например, выведем 10 символов - подряд:

print("-" * 10)

В одной из следующих глав мы познакомимся с другими возможностями Python по работе со строками. А сейчас перейдём к работе с числами. Для создания целочисленной переменной в программе достаточно назначить ей имя и присвоить целочисленное значение. Например:

n = 10

По аналогии создаются вещественные числовые переменные, только в качестве разделителя целой и дробной частей используется десятичный разделитель «точка»:

pi = 3.14

Для преобразования строк в числа и наоборот используются следующие функции:

  • int() — преобразует строку (или вещественное число) в целое число. Дополнительно можно указать, в какой системе счисления было записано исходное число. По умолчанию используется десятичная система. При конвертации вещественного числа в целое отбрасывается дробная часть;
  • float() — преобразует строку (или целое число) в вещественное число;
  • str() — преобразует значения (в общем случае не только числовые) в строки.

Рассмотрим несколько примеров применения этих функций.

n_1 = "1"
n_2 = "2"
print(n_1 + n_2)
n_1 = int(n_1)
n_2 = int(n_2)
print(n_1 + n_2)

В результате выполнения программы получим:

12
3

Первый результат — результат сложения (конкатенации) двух строк. Второй — результат сложения целых чисел, которые были преобразованы из строк функцией int().

x = 3.89
x = int(x)
print(x)

Здесь программа выведет в консоли результат 3. Дробная часть после десятичного разделителя была отброшена при преобразовании в целое число.

width = "3.7"
height = "2.5"
s = float(width) * float(height)
print(s)

Программа выведет: 9.25.

А чтобы вводить целые или вещественные числа с клавиатуры, можно использовать уже знакомую нам функцию input() в сочетании с функциями int() и float():

int_number = int(input())
float_number = float(input())

Для работы с числовыми переменными доступны следующие математические операции:

  • сложение — x + y;
  • вычитание — x - y;
  • умножение — x * y;
  • деление — x / y;
  • возведение в степень x ** y.

Используем все эти операции в следующей программе:

n = 25
x = 0.5

print(n + x)
print(n - x)
print(n * x)
print(n / x)
print(n ** x)

Вывод программы будет таким:

25.5
24.5
12.5
50.0
5.0

Необходимо учитывать, что если выполняется операция деления или хотя бы один из операндов является вещественным числом, то результат также будет вещественным.

Например, выполнение следующего кода выведет на экран 2.0:

print(4 / 2)

Для целых чисел дополнительно доступны операции:

  • целочисленное деление — x // y;
  • остаток от деления — x % y.

Эти операции можно использовать, например, для получения определённых цифр числа. Получим последнюю цифру числа 1234 (то есть остаток от деления на 10):

last_digit = 1234 % 10

Для получения предпоследней цифры нужно «отрезать» последнюю цифру целочисленным делением на 10, а затем у нового числа найти последнюю цифру — уже известным нам способом:

penultimate_digit = 1234 // 10 % 10

Чтобы закрепить новые знания, рекомендуем вам прорешать задачи для этой главы. А в следующей вы узнаете, как создавать программы, способные учитывать несколько вариантов развития событий.

  • Информатика — уроки для подготовки к экзаменам ЕГЭ ОГЭ
  • Задачи по математике, информатике
  • Найти последнюю и предпоследнюю цифру числа Python Д931 Rec 11 08 21

Найти последнюю и предпоследнюю цифру числа Python Д931 Rec 11 08 21

Смотреть видео:

#информатика #егэинформатика #икт #экзамены #егэ_2020 #мгту #школьникам #помощь_студентам #подготовкакэкзаменам

Свежая информация для ЕГЭ и ОГЭ по Информатике (листай):

С этим видео ученики смотрят следующие ролики:

Облегчи жизнь другим ученикам — поделись! (плюс тебе в карму):

  • Комментарии

Нет комментариев. Ваш будет первым!

Понравилась статья? Поделить с друзьями:
  • Как найти театр мюзикла
  • Сильно переперчила суп как исправить
  • Как найти клип если не знаешь название
  • Audio services not responding windows 10 как исправить
  • Как найти свои блокнот в компьютере