Вычисления
Вы считаете, что арифметические операции — это просто? Пересчитайте. На самом деле, всё не так страшно, но расслабляться не стоит. Начнём со всем знакомой четверки:
print ( 10 + 10 )
# 10
print ( 10 — 5 )
# 5
print ( 11 * 7 )
# 77
print ( 10 / 2 )
# 5.0
Никаких неожиданностей, правда? Не совсем, посмотрите внимательно на операцию деления. Заметили? Мы разделили целое число на его делитель, но несмотря на это, результат имеет тип float. Взглянем на операцию деления чуть более пристально:
print ( 10 / 2 )
# 5.0
print ( 100 / 3 )
# 33.333333333333336
print ( 21 / 4 )
# 5.25
print ( 23 / 7 )
# 3.2857142857142856
Иногда можно увидеть такие приколы:
print ( 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 )
# 0.7999999999999999
print ( 0.1 + 0.2 )
# 0.30000000000000004
print ( 7 / 3 )
# 2.3333333333333335
Еще немного математики. Математика в каждый дом!
# Возведение в степень
print ( 10 * * 2 )
# 100
print ( 2 * * 4 )
# 16
print ( 3 * * 0.5 )
# 1.7320508075688772
print ( 3 * * -2 )
# 0.1111111111111111
# Остаток от деления
print ( 11 % 4 )
# 3
print ( 101 % 7 )
# 3
print ( 34 % 5 )
# 4
# Деление нацело
print ( 20 // 4 )
# 5
print ( 129 // 11 )
# 11
print ( 100 // 61 )
# 1
Операции сравнения в python
Операции сравнения в отличие от арифметические имеют всего два результата: True и False. Чаще всего такие операции используются в условии циклов, условных оператов, а также в некоторых функциях, например, filter.
# Операция равенства: True, если X равен Y
print ( 10 == 10 )
# True
print ( 666 == 661 )
# False
# Операция неравенства: True, если X не равен Y
print ( 666 != 661 )
# True
print ( 666 != 666 )
# False
# Операция больше: True, если X больше Y
print ( 120 > 2 )
# True
print ( 1000 > 1999 )
# False
# Операция меньше: True, если X меньше Y
print ( 121 120 )
# False
print ( 0 1 )
# True
# Операция меньше или равно: True, если X меньше или равен Y
print ( 6 6 )
# True
print ( 5 2 )
# False
# Операция больше или равно: True, если X больше или равен Y
print ( 1000 >= 10000 )
# False
print ( 9999 >= 9999 )
# False
Логические операции
Логические операции, как и операции сравнения, имеют всего два возможных результата: True и False. Используются для объединения операций сравнения в условиях циклов и условных оператов
# Оператор «and» или конъюнкция.
# True, если и выражение X, и выражение Y равны True
print ( 10 == 10 and 10 > 2 )
# True
print ( 666 == 661 and 9 > 0 )
# False
# Оператор «or» или дизъюнкция.
# True, если или выражение X, или выражение Y равны True
print ( 666 == 661 or 9 > 0 )
# True
print ( 666 == 661 or 9 0 )
# False
# Оператор » not » или инверсия меняет значение на противоположное.
# True, если выражение X равно False
print ( not 120 > 2 )
# False
print ( not 1000 999 )
# True
print ( not ( 121 121 and 10 == 2 ))
# True
Округление чисел в python
Всё дело в округлении! В python есть несколько замечательных функций, которые округляют число до указанного знака. Одной из таких функций является round :
pi = 3.14159265358979323846264338327
print ( round (pi, 1 ))
# 3.1
print ( round (pi, 2 ))
# 3.14
print ( round (pi, 3 ))
# 3.12
print ( round (pi, 4 ))
# 3.1416
print ( round (pi, 10 ))
# 3.1415926536
print ( round (pi, 15 ))
# 3.141592653589793
Рассмотрим любопытный пример:
print ( round ( 2.5 ))
# 2
print ( round ( 3.5 ))
# 4
Если на вашем лице застыл немой вопрос: «почему?», то я вас понимаю. В школе нас учили, что дроби 1.1, 1.2, 1.3, 1.4 округляются до единицы, а 1.5, . 1.9 до двойки. Но python думает по-другому. Есть два типа округления: арифметическое и банковское. Именно арифметическому округлению вас учили в школе. Python использует как раз-таки банковское округление, его еще называют округлением до ближайшего четного. Приведу еще несколько примеров:
print ( round ( 10.51213 ))
# 11
print ( round ( 23.5 ))
# 24
print ( round ( 22.5 ))
# 22
Примеры решения задач
Есть N оранжевых конфет и K учеников, сколько достанется каждому из них, если разделить их поровну? Сколько конфет останется после дележа?
n = int ( input ( ‘Введите количество конфет: ‘ ))
k = int ( input ( ‘Введите количество учеников: ‘ ))
a = n // k
b = n % k
print ( ‘Каждому по’ , a)
print ( ‘Осталось’ , b)
Даны стороны прямоугольника a и b. Вычислите периметр, площадь и диагональ прямоугольника.
a = int ( input ( ‘Введите a: ‘ ))
b = int ( input ( ‘Введите b: ‘ ))
s = a * b
p = 2 * (a + b)
d = (a * * 2 + b * * 2 ) * * 0.5
print ( ‘Площадь:’ , a)
print ( ‘Периметр:’ , b)
print ( ‘Диагональ:’ , c)
Дано число секунд n на секундомере. Посчитайте прошедших минут и секунд.
n = int ( input ( ‘Введите n: ‘ ))
m = n // 60
s = n % 60
print ( str (m) + ‘:’ + str (s))
Решение задач
1. Дано целое число A. Проверить истинность высказывания: «Число A является четным».
2. Дано целое число A. Проверить истинность высказывания: «Число A является нечетным».
3. Даны два целых числа: A, B. Проверить истинность высказывания: «Числа A и B имеют одинаковую четность».
4. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Хотя бы одно из чисел A, B, C положительное».
5. Дано четырехзначное число. Проверить истинность высказывания: «Данное число читается одинаково слева направо и справа налево».
6. Дано число секунд n на часах. Посчитайте прошедших часов, минут и секунд.
7. Дано натуральное число. Выведите его последнюю цифру.
8. Дано положительное действительное число X. Выведите его дробную часть.
9. Дано положительное действительное число X. Выведите его первую цифру после десятичной точки.
10. Пирожок в столовой стоит a рублей и b копеек. Определите, сколько рублей и копеек нужно заплатить за n пирожков. Программа получает на вход три числа: a, b, n, и должна вывести два числа: стоимость покупки в рублях и копейках.
11. Дано натуральное число. Найдите число десятков в его десятичной записи.
12. Дано двузначное число. Найдите сумму его цифр.
13. Дано трехзначное число. Найдите сумму его цифр.
14. Дано трехзначное число. Проверить истинность высказывания: «Все цифры данного числа различны».
15. Дано трехзначное число. Проверить истинность высказывания: «Цифры данного числа образуют возрастающую или убывающую последовательность».
16. С начала суток прошло N секунд (N — целое). Найти количество часов, минут и секунд на электронных часах.
Трехзначное число (Python)
Вход через что реализован? Если через input и не требуется проверка на то, число ли это:
if len(input()) == 3: print(‘ДА’)
Если надо Да-НЕТ, то как-то так бы написал:
print(‘ДА’ if len(input()) == 3 else ‘НЕТ’)
Если нужна проверка:
try:
print(‘ДА’ if len(int(input())) == 3 else ‘НЕТ’)
except ValueError:
print(‘НА ВХОД ПОДАНО НЕ ЦЕЛОЕ ЧИСЛО’)
P.S. Посмотрите вариант Victor Surozhtsev:
Там логика подхода другая — сравнивать значение числа, вполне возможно, что будет работать быстрее, если у вас в задаче строгое ограничение на время.
Как найти в тексте строго трехзначное число?
Выводит «123», а мне нужно, чтобы ничего не выводило, т.к. число четырехзначное. Либо, если текст такой «123-123», то нужно, чтобы тоже ничего не выводило. Какой способ посоветуете?
Отслеживать
51.6k 200 200 золотых знаков 61 61 серебряный знак 242 242 бронзовых знака
задан 8 сен 2021 в 6:23
194 1 1 серебряный знак 13 13 бронзовых знаков
Для первой части достаточно использовать \b : print(re.findall(r’\b\d<3>\b’, ‘1234 123 5555’)) , а вот с 123-123 сложнее. А в чем задание? Почему могут быть и так, и такие числа?3>
8 сен 2021 в 6:28
Мне нужно определять из текста строго трехзначное число .. если текст такой «123-123», то нужно, чтобы тоже ничего не выводило Чётко определите. чем должна быть ограничена требуемая последовательность.
8 сен 2021 в 6:40
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Решением будет такое выражение, которое найдёт 3-значное число между пробельными символами или началом/концом строки (т.е. с использованием пробельных границ):
re.findall(r'(?(?!\S)', '987 6781 t 444 t 1234 zzz 453') # => ['987', '444', '453']
Хотя, в таком случае, зачем нужны регулярные выражения?
[x for x in '987 6781 t 444 t 1234 zzz 453'.split() if len(x) == 3 and all(z.isdigit() for z in x)] # => ['987', '444', '453']
Если границы не пробельные, а.
- дефисно-цифровые: re.findall(r'(?(?![-\d])’, ‘-987 123-123 444- t 1234 zzz 453’) => [‘453’]
- не между цифрами или цифрой+дефисом или дефисом+цифрой: re.findall(r'(?(?!-?\d)’, ‘-987 123-123 444- t 1234 zzz 453’) => [‘987’, ‘444’, ‘453’]
Дополнительно
Очень часто пользователи, спрашивающие, как проверить строку на строгое соответсвтие шаблону, имеют в виду:
- Полное соответствие строки шаблону: bool(re.fullmatch(r'[0-9]’, ‘123’)) => True (ещё re.match(r'[0-9]$’, ‘123’) и re.search(r’^[0-9]$’, ‘123’) )
- Не между буквами/цифрами/знаком подчёркивания: re.findall(r’\b[0-9]\b’, ‘123,456,12345,b123,876_’) => [‘123’, ‘456’]
- Не между буквами/цифрами (исключая знак подчёркивания): re.findall(r'(? [‘123’, ‘456’, ‘876’]
- Не в дробных числах: re.findall(r'(? [‘123’, ‘123’, ‘453’] (удалите либо символ точки, либо запятой по вашему усмотрению).
Проверить, является ли число шестизначным и является ли комбинация цифр «счастливой»
Дано число Х. Проверить является ли оно шестизначным и является ли комбинация цифр «счастливой» (сумма первых трёх цифр равна сумме последних трёх).Записать программу, в которой вводится значение Х с клавиатуры и выводится результат.
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Функция: проверить, является ли число шестизначным и является ли комбинация цифр «счастливой»
Дано число Х. Проверить является ли оно шестизначным и является ли комбинация цифр «счастливой».
Проверить является ли заданная строка шестизначным числом, записанным в десятичной системе счисления без нулей в старших
Проверить является ли заданная строка шестизначным числом, записанным в десятичной системе.
Проверить, является ли целое число трёхзначным, является ли оно квадратом
помогите пожалуйста новичку 1) Введите целое число и проверьте, является ли оно трехзначным.
299 / 157 / 87
Регистрация: 16.04.2018
Сообщений: 239

Сообщение было отмечено mik-a-el как решение
Решение
1 2 3 4 5 6 7 8 9 10
x = input('Введите x: ') if len(x) != 6: print('Число не шестизначное') else: lst = list(map(int, list(x))) first, last = lst[:3], lst[3:] if sum(first) == sum(last): print('Счастливое')
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Проверить, является ли введенное число является решением уравнения (составить блок-схему)
Составить блок-схему Проверить, является ли введенное число является решением уравнения.
Проверить, является ли число 16-ричным, и вывести сумму введенных цифр
.386 .model flat, stdcall option casemap :none include \masm32\include\kernel32.inc include.
Проверить является ли десятичное число или сумма его цифр палиндромом
Если кратко о задаче, то задаются 2 числа — диапазон. И нужно проверить является ли число.
Проверить является ли число делителем суммы десятичных цифр другого числа
Нужно помочь перевести задачу с pascal в C++,потому что онлайн конвекторов я не нашел,а сам еще.

Проверить, является ли число номером счастливого билета, не зная количества цифр в числе
Дано натуральное число n. Проверить, является ли оно номером счастливого билета (сумма цифр правой.

Проверить, является ли число номером счастливого билета, не зная количества цифр в числе
Дано натуральное число n. Проверить, является ли оно номером счастливого билета (сумма цифр правой.

Для целого числа n, найти сумму квадратов его цифр. Проверить является ли полученное число четным
Помогите плз)
