Перейти к содержимому

Как отделяются числа в python

  • автор:

Нужно внести несколько чисел, после чего выведутся только те, которые нацело делиться на 3

В строке может быть несколько чисел, среди которых нужно вывести только те, которые нацело делятся на 3, правильно? Если в строке всего одно число, то цикл Вам и не нужен. И в каком виде у Вас вводятся числа? Приложите пример входных и выходных данных

4 дек 2022 в 7:28
elif a == 0: а что это?
4 дек 2022 в 8:11

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Если следовать Вашей логике, то вводится одно число и его нужно проверить на делимость на 3:

a = int(input("Введите число")) if a % 3 == 0: print(a) 

Если Вам в цикле нужно вводить числа и выводить делится или нет(условием выхода из цикла является введенная -1):

while True: a = int(input("Введите число")) if a % 3 == 0: print(f'Число делится на 3') else: print(f'Число не делится на 3') if a == -1: break 

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

a = input("Введите числа> ") numbers = a.split(' ') for number in numbers: if number.isdigit() and int(number) % 3 == 0: print(number) 

Числа в Python

Числа в Python

В программировании мы всегда взаимодействуем с данными, которые не являются какой-то абстрактной субстанцией. Все данные разделяются по определенному типу. На предыдущих уроках мы узнали, про строки, списки, словари и о логическом типе данных. Сегодня, поговорим о самом базовом типе данных в Python — числах.

Почему нельзя свалить все данные в одну общую кучу и не заморачиваться с каждым типом по отдельности? Допустим, мы присвоили переменной a цифру 5: a = 5. А теперь представьте, что никакого разделения по типу данных нет. Так что находится в переменной: число или строка? Если 10 — это число, то с ним можно произвести математические действия. А если это строка, то мы имеем дело с текстом и тогда Python задействует совсем другие методы.

# объединение строк (конкатенация)
d = ’10’
f = ‘негритят’
d + ‘ ‘ + f
’10 негритят’

Ключевой момент: У каждого типа данных свои методы.

Цифра 100 написанная без кавычек, относится к числовому типу данных. А цифра ‘100’ в кавычках — к строковому типу. С помощью синтаксиса, мы сообщаем Python, какой у нас тип данных. Числа в Python делятся на два вида: целое число и вещественное.

Целое число

К целым числам (int) относятся все положительные и отрицательные числа без дробной части. Все положительные целые числа называются натуральными.

-80, -10, -4, 0, 1, 2, 20

Вещественное число

У вещественных чисел (float) всегда присутствует дробная часть, а ещё их называют числами с плавающей точкой. Поскольку дробная часть отделяется от целой части, точкой.

Математические операции с числами

Ради математических вычислений в Python и существует числовой тип данных.

Сложение чисел

e = 45 + 55
print(e)
100

Вычитание чисел

z = 15 — 4
print(z)
11

Умножение чисел

i = 3 * 2
print(i)
6

Деление чисел

У результата деления целого числа на целое, всегда будет дробная часть. Такая особенность обусловлена тем, что в большинстве случаев числа не делятся без остатка.

Целочисленное деление

В результате целочисленного деления, всегда будет целое число. Мы просто отбрасываем остаток. Число 15 поместится целых 2 раза.

Остаток от деления

Ответом будет остаток от деления. При обычном делении, ответ был бы 15.1. Но нам нужен только остаток. Убираем целое число и оставляем 1.

n = 16 % 3
print(n)
1

Возведение числа в степень

Число перед двумя звездочками — это объект, который нужно возвести в степень. Цифра после звездочек обозначает, в какую степень возводим: 4 возводим во вторую степень.

l = 4 ** 2
print(l)
16

В Python есть встроенные математические функции.

Модуль числа

Функция abs() находит модуль числа. Передаем в параметрах одно значение. Если передаваемое значение отрицательное, то abs() вернет положительное число. Модуль числа не может быть отрицательным.

Наименьшее число

Функция min() в Python возвращает самое маленькое число.

Максимальное число

Функция max() вернет самое большое число.

Округление до целого числа

Функция round() округляет до целого числа.

Вывести число в Python

Функция print() выводит числа на экран.

Ввести число в Python

Функция input() считывает вводимое значение пользователем в консоль и сохраняет его в переменной. Но что произойдет, если мы введем какое-нибудь число и затем обратимся к переменной?

>>> r = input()
33
>>> r
’33’ # это строка

Python вывел строку, так как число стоит в кавычках.

Для ввода целого числа, следует обернуть функцию input() в другую функцию int().

Для вещественного числа, соответственно в float().

Как посчитать сумму введенных чисел?

В команде input() можно передавать подсказки.

w = int(input(«Введите первое число: «))
q = int(input(«Введите второе число: «))
summa=w+q
print(summa)

Введите первое число: 6
Введите второе число: 7
13

Создано 06.11.2019 10:26:16

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 0 ):

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2024 Русаков Михаил Юрьевич. Все права защищены.

    Python 3. Циклы. Операторы while и for

    Задача: Напишите программу, которая вводит два целых числа и находит их произведение, не используя операцию умножения. Учтите, что числа могут быть отрицательными.

    a, b = map(int, input().split()) res, s = 0, 1 if b
    

    Задача: Напишите программу, которая вводит натуральное число N и выводит первые N чётных натуральных чисел. Программа должна вывести в одну строчку N первых чётных натуральных чисел, разделив их пробелами.

    n = int(input()) for i in range (1,2*n,2): print (i+1)

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

    a, b = map(int, input().split()) if a > b: t = a a = b b = t s = 0 for i in range (a, b+1): s = s+i*i print (s)

    Задача: Напишите программу, которая вводит четыре натуральных числа (a, b, c и d) и находит все пятизначные числа, которые при делении на a дают в остатке b , а при делении на c дают в остатке d .

    Входные данные Первая входная строка содержит два натуральных числа, разделённые пробелами: a и b. Вторая строка содержит натуральные числа c и d, также разделённые пробелом. Гарантируется, что 0 ≤ b ≤ a и 0 ≤ d ≤ c. Выходные данные Программа должна вывести в одну строчку через пробел все пятизначные натуральные числа, которые при делении на a дают в остатке b, а при делении на c дают в остатке d . Если таких чисел нет, программа должна вывести число -1.

    x = input().split() y = input().split() a = int(x[0]) b = int(x[1]) c = int(y[0]) d = int(y[1]) if a==0 or c==0: print(-1) else: res = '' for i in range(10000, 99999): if (i%a == b) and (i%c == d): res = res+" "+str(i) res = res.strip() if res == '': print(-1) else: print(res)

    Задача: Натуральное число называется числом Армстронга, если сумма цифр числа, возведенных в K-ю степень (где K – количество цифр в числе) равна самому числу. Например:
    153 = 1^3 + 5^3 + 3^3
    Напишите программу, которая находит все числа Армстронга на отрезке [a, b].

    Входные данные: Входная строка содержит два натуральных числа – значения a и b, разделённых пробелами. Гарантируется, что a ≤ b.

    Выходные данные: Программа должна вывести в одну строчку все числа Армстронга на отрезке [a, b] , разделив их пробелами. Если таких чисел нет, программа должна вывести число -1.

    x = input().split() a = int(x[0]) b = int(x[1]) ''' a = 100 b = 400 ''' if a > b: t = a a = b b = t if a
    

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

    n = int(input()) n = int(n) k = 0 m = 0 while n>0: if n%2==0: k+=1 else: m+=1 n=n//10 print(k)

    Задача: Напишите программу, которая определяет, верно ли, что введённое число содержит две одинаковых цифры, стоящие рядом (как, например, 221).

    n = int(input()) res = "NO" d1 = 0 d2 = 0 while n > 0: d1 = n%10 d2 = n//10%10 if d1 == d2: res = "YES" n = n//10 print (res)

    Задача: Напишите программу, которая определяет, верно ли, что введённое число содержит по крайней мере две одинаковых цифры, возможно, не стоящие рядом (как, например, 212). Программа должна вывести слово 'YES', если в числе есть две одинаковые цифры, и слово 'NO', если такой пары цифр нет.

    n = int(input()) res = "NO" d1 = 0 d2 = 0 while n>0: d1 = n%10 m = n//10 while m > 0: d2 = m%10 if d1 == d2: res = "YES" m = m//10 n = n//10 print (res)

    Задача: Модифицированный алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на остаток от деления большего на меньшее до тех пор, пока остаток не станет равно нулю; тогда второе число и есть НОД. Напишите программу, которая реализует этот алгоритм.

    Входные данные: Входная строка содержит два числа, разделённые пробелом – a и b .

    Выходные данные: Программа должна вывести в одной строке два числа: сначала наибольший общий делитель двух введённых чисел, а затем – количество шагов цикла, которые были выполнены.

    x = input().split() #Python 3.x a = int(x[0]) b = int(x[1]) n = 0 while a!=0 and b!=0: if a > b: a = a % b else: b = b % a n+=1 print (a+b, n)

    Задача: Напишите программу, которая вычисляет сумму и произведение целых чисел, поданных на её вход. Ввод заканчивается числом 0.

    Входные данные: Во входных строках записаны целые числа, по одному в каждой строке. В последней строке записано число 0.

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

    summ, mul = 0, 1 while 1: c = int(input()) if c == 0: break; summ += c mul *= c print (summ,mul)

    Задача: Напишите программу, которая вводит натуральное число N и определяет его факториал, то есть произведение натуральных чисел от 1 до N: N! = 1·2·<. >· N.

    n = int(input()) f = 1 while n>1: f *= n n -= 1 print (f)

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

    Входные данные: Входная строка содержит натуральное число N.

    Выходные данные: Программа должна вывести все цифры введённого числа в одной строке, начиная с первой. Цифры отделяются пробелами.

    n = int(input()) res = "" while n>0: res = str(n%10)+ " " + res n = n//10 print (res.strip())

    Задача: Напишите программу, которая вводит натуральные числа a и b и выводит все простые числа в диапазоне от a до b. Входная строка содержит два натуральных числа: a и b. Гарантируется, что a ≤ b. Программа должна вывести в одной строке через пробел все простые числа на отрезке [a, b]. Если таких чисел нет, программа должна вывести 0.

    x = input().split() a = int(x[0]) b = int(x[1]) if a == 0: a = 1 res = "" for i in range(a, b + 1): for j in range(2,i): if i%j == 0: break else: res = res + " " + str(i) if res != '': print (res) else: print (0)

    Python: Магические числа

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

    euros_count = 1000 dollars_count = euros_count * 1.25 # 1250.0 rubles_count = dollars_count * 60 # 75000.0 print(rubles_count) 

    С точки зрения профессиональной разработки, такой код не соответствует «лучшим практикам» — best practices.

    В этом примере сложно понять, что значат числа 60 и 1.25 . Представьте, что вам придется разбираться в этом коде через месяц или через год — это будет сложно. Также сложно будет программисту, который не видел код ранее.

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

    Проблема кроется в «магических числах» — magic numbers. Это числа, происхождение которых невозможно понять с первого взгляда — приходится глубоко вникать в то, что происходит в коде.

    Чтобы предотвратить проблему, нужно создавать переменные с правильными именами. Так все встанет на свои места:

    dollars_per_euro = 1.25 rubles_per_dollar = 60 euros_count = 1000 dollars_count = euros_count * dollars_per_euro # 1250.0 rubles_count = dollars_count * rubles_per_dollar # 75000.0 print(rubles_count) 

    В этой программе:

    • Используется именование snake_case
    • Две новые переменные отделяются от последующих вычислений пустой строчкой. Эти переменные имеют смысл и без вычислений, поэтому такое отделение уместно, потому что повышает читаемость
    • Получился хорошо именованный и структурированный код, но он длиннее прошлой версии. Так часто бывает — это нормально, ведь код должен быть читабельным

    Магические числа и непонятные именования переменных не ломают код, но делают его менее читабельным.

    Нужно понимать, что компьютер в любом случае выполнит заданное вычисление. Однако другой программист будет читать код и ничего не поймет — это усложнит работу. Правильное именование переменных — половина успеха анализа кода.

    Задание

    Вы столкнулись с таким кодом, который выводит на экран общее количество комнат во владении нынешнего короля:

    king = "Rooms in King Balon's Castle:" print(king) print(6 * 17) 

    Как видите, это магические числа: непонятно, что такое 6 и что такое 17. Можно догадаться, если знать историю королевской семьи: каждый новый король получает в наследство все замки от предков и строит новый замок — точную копию родительского.

    Эта странная династия просто плодит одинаковые замки…

    Избавьтесь от магических чисел, создав новые переменные, а затем выведите текст на экран.

    Rooms in King Balon's Castle: 102

    Названия переменных должны передавать смысл чисел, но должны при этом оставаться достаточно короткими и ёмкими для комфортного чтения.

    Помните: код будет работать с любыми названиями, а наша система всегда проверяет только результат на экране, поэтому выполнение этого задания — под вашу ответственность.

    Упражнение не проходит проверку — что делать? ��

    Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:

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

    В моей среде код работает, а здесь нет ��

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

    Мой код отличается от решения учителя ��

    Это нормально ��, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.

    В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.

    Прочитал урок — ничего не понятно ��

    Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.

    Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.

    Полезное

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

    Ваш адрес email не будет опубликован. Обязательные поля помечены *