Напишите программу, которая проверяет, делится ли целое число, введенное с клавиатуры, на 3
Обновлено: 20.11.2024
Операция модуля работает с целыми числами (и целочисленными выражениями) и дает остаток при делении первого операнда на второй. В Python оператор модуля представляет собой знак процента ( % ). Синтаксис такой же, как и для других операторов:
Таким образом, 7 разделить на 3 равно 2 с остатком 1.
Оператор модуля оказывается на удивление полезным. Например, вы можете проверить, делится ли одно число на другое: если x % y равно нулю, то x делится на y .< /p>
Кроме того, вы можете извлечь крайнюю правую цифру или цифры из числа. Например, x % 10 дает крайнюю правую цифру x (по основанию 10). Точно так же x % 100 дает две последние цифры.
4.2. Логические значения и выражения¶
Тип Python для хранения значений true и false называется bool в честь британского математика Джорджа Буля. Джордж Буль создал булеву алгебру, которая является основой всей современной компьютерной арифметики.
Есть только два логических значения: True и False. Использование заглавных букв важно, поскольку true и false не являются логическими значениями.
Логическое выражение – это выражение, результатом которого является логическое значение. Оператор == сравнивает два значения и возвращает логическое значение:
В первом операторе два операнда равны, поэтому выражение оценивается как True ; во втором утверждении 5 не равно 6, поэтому мы получаем False .
Хотя эти операции, вероятно, вам знакомы, символы Python отличаются от математических символов. Распространенной ошибкой является использование одного знака равенства ( = ) вместо двойного знака равенства ( == ). Помните, что = — это оператор присваивания, а == — оператор сравнения. Кроме того, не существует такого понятия, как = или => .
4.3. Логические операторы¶
Существует три логических оператора: и , или и не . Семантика (значение) этих операторов аналогична их значению в английском языке. Например, x > 0 и x 10 верно, только если x больше 0 и меньше 10.
n % 2 == 0 или n % 3 == 0 истинно, если верно любое из условий, то есть если число делится на 2 или 3.
Наконец, оператор not инвертирует логическое выражение, поэтому not(x > y) истинно, если (x > y) равно false, то есть если x меньше или равно y .
4.4. Условное выполнение¶
Чтобы писать полезные программы, нам почти всегда нужна возможность проверять условия и соответствующим образом изменять поведение программы. Условные операторы дают нам эту возможность. Простейшей формой является оператор ** if**:
Логическое выражение после оператора if называется условием. Если это правда, то выполняется оператор с отступом. Если нет, ничего не происходит.
Синтаксис оператора if выглядит следующим образом:
Как и в случае с определением функции из предыдущей главы и другими составными операторами, оператор if состоит из заголовка и тела. Заголовок начинается с ключевого слова if, за которым следует логическое выражение и заканчивается двоеточием (:).
Следующие операторы с отступом называются блоками. Первый оператор без отступа отмечает конец блока. Блок операторов внутри составного оператора называется телом оператора.
Каждый из операторов внутри тела выполняется в том порядке, в котором логическое выражение оценивается как True . Весь блок пропускается, если логическое выражение оценивается как False .
Количество операторов, которые могут появляться в теле оператора if, не ограничено, но должно быть хотя бы одно. Иногда бывает полезно иметь тело без операторов (обычно в качестве места хранения кода, который вы еще не написали). В этом случае вы можете использовать оператор pass, который ничего не делает.
4.5. Альтернативное исполнение¶
Второй формой оператора if является альтернативное выполнение, при котором есть две возможности, и условие определяет, какая из них будет выполнена. Синтаксис выглядит следующим образом:
Если остаток при делении x на 2 равен 0, то мы знаем, что x четно, и программа выводит соответствующее сообщение. Если условие ложно, выполняется второй набор операторов. Поскольку условие должно быть истинным или ложным, будет выполнена ровно одна из альтернатив. Альтернативы называются ветвями, потому что они являются ветвями в потоке выполнения.
Кроме того, если вам нужно часто проверять четность (четность или нечетность) чисел, вы можете обернуть этот код в функцию:
Для любого значения x print_parity отображает соответствующее сообщение. При ее вызове в качестве аргумента можно указать любое целочисленное выражение.
4.6. Связанные условные операторы¶
Иногда существует более двух возможностей, и нам нужно более двух ветвей. Одним из способов выражения подобных вычислений является связанное условие:
elif — это сокращение от else if. Опять же, будет выполнена ровно одна ветвь. Количество операторов elif не ограничено, но разрешен только один (и необязательный) оператор else, и он должен быть последней ветвью в операторе:
Каждое условие проверяется по порядку. Если первое ложно, проверяется следующее и так далее. Если хотя бы одно из них истинно, выполняется соответствующая ветвь, и оператор завершается. Даже если выполняется более одного условия, выполняется только первая истинная ветвь.
4.7. Вложенные условия¶
Одно условное выражение может быть вложено в другое. Мы могли бы написать пример трихотомии следующим образом:
Внешнее условное предложение содержит две ветви. Первая ветвь содержит простой оператор вывода. Вторая ветвь содержит другой оператор if, который имеет две собственные ветви. Обе эти ветки являются операторами вывода, хотя они могли бы быть и условными операторами.
Хотя отступы операторов делают структуру очевидной, вложенные условные операторы очень быстро становятся трудными для чтения. Как правило, рекомендуется избегать их, когда это возможно.
Логические операторы часто позволяют упростить вложенные условные операторы. Например, мы можем переписать следующий код, используя одно условие:
Операция print выполняется только в том случае, если мы проходим оба условия, поэтому мы можем использовать оператор and:
Такого рода условия распространены, поэтому Python предоставляет альтернативный синтаксис, похожий на математическую нотацию:
Это условие семантически такое же, как составное логическое выражение и вложенное условное выражение.
4.8. Оператор return¶
Инструкция return позволяет вам прервать выполнение функции до того, как вы достигнете конца. Одной из причин его использования является обнаружение ошибки:
Функция print_square_root имеет параметр с именем x . Первое, что он делает, это проверяет, меньше или равно ли x 0, и в этом случае он отображает сообщение об ошибке, а затем использует return для выхода из функции. Поток выполнения немедленно возвращается вызывающей стороне, а остальные строки функции не выполняются.
4.9. Ввод с клавиатуры¶
В разделе Ввод мы познакомились со встроенными функциями Python, которые получают ввод с клавиатуры: raw_input и input . Теперь давайте еще раз рассмотрим их более подробно.
При вызове любой из этих функций программа останавливается и ждет, пока пользователь что-нибудь введет. Когда пользователь нажимает клавишу Return или Enter, программа возобновляет работу, и raw_input возвращает то, что пользователь ввел в виде строки :
Перед вызовом raw_input рекомендуется напечатать сообщение, сообщающее пользователю, что вводить. Это сообщение называется подсказкой. Мы можем указать приглашение в качестве аргумента для raw_input :
Обратите внимание, что подсказка представляет собой строку, поэтому она должна быть заключена в кавычки.
Если мы ожидаем, что ответ будет целым числом, мы можем использовать функцию input, которая оценивает ответ как выражение Python:
Если пользователь вводит строку цифр, она преобразуется в целое число и присваивается скорость . К сожалению, если пользователь вводит символы, которые не составляют корректное выражение Python, программа аварийно завершает работу:
В последнем примере, если бы пользователь сделал ответ допустимым выражением Python, заключив его в кавычки, он не выдал бы ошибку:
Чтобы избежать подобных ошибок, рекомендуется использовать raw_input для получения строки, а затем использовать команды преобразования для ее преобразования в другие типы.
4.10. Преобразование типов¶
Каждый тип Python поставляется со встроенной командой, которая пытается преобразовать значения другого типа в этот тип. Команда int(ARGUMENT), например, принимает любое значение и преобразует его в целое число, если это возможно, или выдает ошибку в противном случае:
int также может преобразовывать значения с плавающей запятой в целые числа, но помните, что дробная часть усекается:
Команда float(ARGUMENT) преобразует целые числа и строки в числа с плавающей запятой:
Может показаться странным, что Python различает целочисленное значение 1 от значения с плавающей запятой 1.0 . Они могут представлять одно и то же число, но принадлежат к разным типам.Причина в том, что внутри компьютера они представлены по-разному.
Команда str(ARGUMENT) преобразует любой переданный ей аргумент в тип string :
str(ARGUMENT) будет работать с любым значением и преобразовывать его в строку. Как упоминалось ранее, True — это логическое значение; правда — нет.
Для логических значений ситуация особенно интересна:
Python присваивает логические значения значениям других типов. Для числовых типов, таких как целые числа и числа с плавающей запятой, нулевые значения являются ложными, а ненулевые значения — истинными. Для строк пустые строки считаются ложными, а непустые строки — истинными.
4.11. ГАСП¶
После установки gasp попробуйте следующий скрипт Python:
Предпоследняя команда делает паузу и ждет, пока не будет нажата клавиша. Без него экран мигал бы так быстро, что вы бы его не увидели.
Запустив этот скрипт, вы должны увидеть графическое окно, которое выглядит следующим образом:
С этого момента мы будем использовать вздох, чтобы проиллюстрировать (каламбур) концепции компьютерного программирования и добавить веселья во время обучения. Вы можете узнать больше о модуле GASP, прочитав Приложение B.
4.12. Глоссарий¶
блок Группа последовательных операторов с одинаковым отступом. body Блок инструкций в составной инструкции, следующий за заголовком. логическое выражение Выражение, которое либо истинно, либо ложно. логическое значение Существует ровно два логических значения: True и False . Логические значения получаются, когда логическое выражение оценивается интерпретатором Python. Они имеют тип bool . ветвь Один из возможных путей потока выполнения, определяемый условным выполнением. цепочка условная Условная ветвь с более чем двумя возможными потоками выполнения. В Python связанные условные операторы записываются с помощью if . Элиф. операторы else. оператор сравнения Один из операторов, который сравнивает два значения: == , != , > , , >= , а также . условие Логическое выражение в условном операторе, определяющее, какая ветвь выполняется. условный оператор Оператор, управляющий потоком выполнения в зависимости от некоторого условия. В Python ключевые слова if , elif и else используются для условных операторов. логический оператор Один из операторов, который объединяет логические выражения: и , или и не . модульный оператор Оператор, обозначаемый знаком процента ( % ), который работает с целыми числами и дает остаток при делении одного числа на другое. вложение одной структуры программы в другую, например условный оператор внутри ветви другого условного оператора. приглашение Визуальная подсказка, сообщающая пользователю о необходимости ввода данных. преобразование типов Явный оператор, который принимает значение одного типа и вычисляет соответствующее значение другого типа. Оборачивание кода в функцию Процесс добавления заголовка функции и параметров к последовательности операторов программы часто называют «обертыванием кода в функцию». Этот процесс очень полезен, когда рассматриваемые операторы программы будут использоваться несколько раз.
4.13. Упражнения¶
Попробуйте вычислить в уме следующие числовые выражения, а затем используйте интерпретатор Python, чтобы проверить свои результаты:
Что случилось с последним примером? Почему? Если вы смогли правильно предвидеть реакцию компьютера во всех случаях, кроме последнего, пора двигаться дальше. Если нет, найдите время, чтобы придумать собственные примеры. Изучайте оператор модуля, пока не будете уверены, что понимаете, как он работает.
Оберните этот код в функцию compare(x, y) . Вызовите compare три раза: по одному, если первый аргумент меньше, больше и равен второму аргументу.
Чтобы лучше понять логические выражения, полезно составить таблицы истинности. Два логических выражения логически эквивалентны тогда и только тогда, когда они имеют одну и ту же таблицу истинности.
Следующий скрипт Python выводит таблицу истинности для любого логического выражения в двух переменных: p и q:
Вы узнаете, как работает этот скрипт, в последующих главах. Сейчас вы будете использовать его для изучения логических выражений. Скопируйте эту программу в файл с именем p_and_q.py , затем запустите ее из командной строки и введите: p или q , когда будет предложено ввести логическое выражение. Вы должны получить следующий вывод:
Теперь, когда мы видим, как это работает, давайте поместим его в функцию, чтобы упростить использование:
Мы можем импортировать его в оболочку Python и вызвать truth_table со строкой, содержащей наше логическое выражение в p и q в качестве аргумента:
Используйте функции truth_table со следующими логическими выражениями, каждый раз записывая создаваемую таблицу истинности:
- не(p или q)
- p и q
- не(p и q)
- нет(р) или нет(q)
- не(р) и не(q)
Какие из них логически эквивалентны?
Введите следующие выражения в оболочку Python:
Проанализируйте эти результаты. Какие наблюдения вы можете сделать о значениях разных типов и логических операторах? Можете ли вы записать эти наблюдения в виде простых правил о и и или выражениях?
Поместите этот код в функцию dispatch(choice) . Затем определите function_a , function_b и function_c, чтобы они выводили сообщение о том, что они были вызваны. Например:
Поместите четыре функции ( dispatch , function_a , function_b и function_c в скрипт с именем ch04e05.py . Внизу этого скрипта добавьте вызов dispatch('b') . Вывод должен быть таким:
Наконец, измените сценарий, чтобы пользователь мог вводить «a», «b» или «c». Протестируйте его, импортировав свой скрипт в оболочку Python.
Напишите функцию с именем is_divisible_by_3, которая принимает одно целое число в качестве аргумента и печатает «Это число делится на три». если аргумент делится на 3 без остатка и «Это число не делится на три». иначе.
Теперь напишите аналогичную функцию с именем is_divisible_by_5 .
Обобщите функции, которые вы написали в предыдущем упражнении, в функцию с именем is_divisible_by_n(x, n), которая принимает два целочисленных аргумента и выводит, делится ли первый на второй. Сохраните это в файле с именем ch04e07.py. Импортируйте его в оболочку и попробуйте. Пример сеанса может выглядеть следующим образом:
Каков будет вывод следующего?
Объясните, что произошло и почему это произошло.
Следующий скрипт в файле house.py рисует простой дом на холсте:
Запустите этот скрипт и убедитесь, что у вас появилось окно, похожее на это:
- Поместите код дома в функцию с именем draw_house().
- Запустите скрипт сейчас. Ты видишь дом? Почему бы и нет?
- Добавьте вызов draw_house() в нижней части скрипта, чтобы дом вернулся на экран.
- Параметризируйте функцию с параметрами x и y — тогда заголовок должен стать def draw_house(x, y): , чтобы вы могли передать расположение дом на холсте.
- Используйте draw_house, чтобы разместить на холсте пять домов в разных местах.
Исследование: Прочтите Приложение B и напишите сценарий с именем houses.py, который при запуске выдает следующее:
Подсказка: вам нужно будет использовать Polygon для крыши вместо двух Line, чтобы получить filled=True< /tt> для работы с ним.
Пользовательские функции
Как следует из названия, эти функции определяются и создаются пользователями. Функции в C++ согласуются с понятием функций в математике. Например, они допускают функциональную композицию, такую как f(f(p),q,f(f)). Однако функции C++ либо возвращают одно значение, либо не возвращают никакого значения. Рассмотрим следующий пример. Это определяемая пользователем функция, которая вычисляет значение факториала небольшого целого числа.
Целочисленная переменная n является входом функции и также называется параметром функции.
Если функция определена после функции main(), то ее прототип должен быть указан int fact (int);
вверху, чтобы компилятор не помечал ошибку прямой ссылки. В определении прототипа указывается имя функции, количество и тип каждого параметра, а также тип выходных данных.
Все фрагменты кода, такие как прототип функции, вызывающая основная программа и полное определение функции, показаны ниже
Обычные результаты выполнения этого кода показаны ниже:
Примеры функций
Пример 1
Напишите функцию для определения максимума двух целых чисел x и y. Ответ:
Эта функция принимает на вход два целых числа x и y. Он выбирает x как результат, если x больше, чем y; в противном случае для результата выбирается y.
Пример 2:
Напишите функцию, которая находит максимальное из трех целых чисел x, y и z. Ответ:
Чтобы начать с x, предполагается, что это результат. Затем результат сравнивается с y и z. если y или z больше, чем результат, y или z выбирается для результата соответственно.
Одна и та же функция может состоять из функции max2, как показано ниже:
Этот расчет показывает использование функциональной композиции max(x, y, z) = max(x, max(y,z))
Пример 3
Напишите функцию, которая возвращает количество трехзначных натуральных чисел, которые делятся либо на 4, либо на 5, но не на оба числа.
Ответ: эта функция сначала просматривает все возможности для трехзначных чисел, затем проверяет, делится ли это текущее значение «i» на 4 ИЛИ 5, и в то же время проверяет, не является ли оно двойным подсчетом другого числа. .
Пример 4
Напишите функцию, которая будет возвращать истину, если заданное число n является простым, иначе она должна возвращать ложь.
Ответ: Эта функция проверяет все делители от 2 до n/2 -1 включительно. Он выйдет заранее, если найдет делитель до завершения цикла. Если код завершает цикл, это означает, что число не имеет делителя и, следовательно, является простым числом.
Пример 5
Напишите функцию, которая будет возвращать true, если заданное число является палиндромом, в противном случае она должна возвращать false. Число называется палиндромом, если оно читается одинаково независимо от того, просматривается ли оно слева направо или наоборот. Например, 506605 — это палиндром, а 5123 — нет.
Ответ: Логика палиндрома состоит в том, чтобы перевернуть заданное число n. Это делается циклом while. Заданное число n является палиндромом тогда и только тогда, когда исходное n и его обращение идентичны.
Эта программа на C++ проверяет, делится ли число на второе число. Программа принимает два числа в качестве входных данных и использует оператор модуля, чтобы определить, полностью ли делится первое число на второе число.
Вот исходный код программы C++, которая проверяет, делится ли число на второе число. Программа C++ успешно скомпилирована и запущена в системе Linux. Вывод программы также показан ниже.
Sanfoundry Global Education & Learning Series – 1000 программ C++.
Следующие шаги:
- Получите бесплатный сертификат о заслугах в программировании на C++
- Примите участие в конкурсе на получение сертификата по программированию на C++
- Стать лучшим специалистом по программированию на C++
- Пройдите тесты по программированию на C++
- Практические тесты по главам: главы 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- Проверки по главам: главы 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Похожие сообщения:
- Купить книги по программированию
- Практика программирования MCQ
- Купить книги по информатике
- Практика MCQ по компьютерным наукам
- Подать заявку на стажировку в области компьютерных наук
Рекомендуемые статьи:
Дополнительные ресурсы:
Популярные страницы:
Подпишитесь на наши информационные бюллетени (по темам). Участвуйте в конкурсе сертификации Sanfoundry, чтобы получить бесплатный Сертификат отличия. Присоединяйтесь к нашим социальным сетям ниже и будьте в курсе последних конкурсов, видео, стажировок и вакансий!
Маниш Бходжасиа, ветеран технологий с более чем 20-летним опытом работы в Cisco и Wipro, является основателем и техническим директором Sanfoundry. Он живет в Бангалоре и занимается разработкой Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Оставайтесь на связи с ним в LinkedIn.
Подпишитесь на его бесплатные мастер-классы на Youtube и технические обсуждения на Telegram SanfoundryClasses.
Напишите программу, которая принимает число и проверяет, делится ли оно не только на 5, но и на 3. В противном случае решите:
(a) Делится ли число на 3, а не на 5?
(b) Делится ли число на 5, а не на 3?
(c) Не делится ли число ни на 3, ни на 5?
Программа отображает соответствующее сообщение.
Условные инструкции Java
Ответить
Вывод
Похожие вопросы
Напишите программу для ввода года и проверки правильности:
(b) Високосный год
(c) год столетия, но не високосный
Пример ввода: 2000 г.
Пример вывода: Високосный год.
Напишите программу для ввода себестоимости и продажной цены товара. Если цена продажи больше, чем себестоимость, рассчитайте и отобразите фактическую прибыль и процент прибыли, в противном случае рассчитайте и отобразите фактический процент убытков и убытков. Если себестоимость и цена реализации равны, программа выводит сообщение «Ни прибыли, ни убытка».
Напишите программу, которая вводит три числа и проверяет, равны они или нет. Если это неравные числа, отобразить наибольшее из них, в противном случае отобразить сообщение «Все числа равны».
Пример ввода: 34, 87, 61
Пример вывода: Наибольшее число: 87
Пример ввода: 81, 81, 81
Пример вывода: все числа равны.
Напишите программу, которая вводит два неравных положительных числа и проверяет, являются ли они квадратными числами или нет. Если пользователь вводит отрицательное число, программа выводит сообщение "Квадратный корень из отрицательного числа не может быть определен".
Пример ввода: 81, 100
Пример вывода: числа в идеальной квадратной форме.
Пример ввода: 225, 99
Пример вывода: 225 — число в идеальной квадратной форме.
99 – не идеальное квадратное число.
Читайте также: