Каков был бы хороший набор программирования упражнений, которые помогут новичкам Python изучить использование, "если... еще" создадут? Я мог приготовить следующее, Вы знаете о еще?
У большей части целевой аудитории не было большой части воздействия программированию прежде, и я еще увлечен получением их привыкший к размышлению правильно о "если..." (и вся остальная часть его, в свое время).
Тем, кто программирует годами, трудно "понять", каково это - начинать с нуля. Я бы воздержался от всего, что требует более 5 строк кода.
Вам нужно решить, в каком порядке вы будете изучать такие вещи, как пользовательский ввод, вывод, if, else, while, for, file io и т.д.
При изучении IF они уже знают, как получить некоторые данные от пользователя? Вывести некоторый вывод? Составить цикл FOR? Выполнять арифметические действия над целыми числами? Определять, делится ли число на другое число?
Ответы на эти вопросы ограничивают ваши примеры для IF.
Я бы предложил сделать Output, Arithmentic, FOR, Divisibility (modulus), User Input, прежде чем делать IF.
Тогда я смогу поставить такие проблемы, как
Print the first 100 odd numbers
Determine the factors of a number entered by the user
Play a number guessing game (User enters a guess, you print YES or Higher or Lower)
«Выяснить, является ли данный год високосным» приходит на ум почти сразу. Просто дайте им правила и отпустите их.
Другие возможности (хотя и с другими вещами, кроме if
):
операторов if
, если не хотите зацикливаться ). Ни для чего, кроме операторов if / else
, високосный год хорош. Вы также можете подумать:
Это лишь небольшая часть возможностей, которые вам могут сойти с рук.
Попробуйте простую игру, например, если вы нажмете «L», поверните налево, если вы нажмете «R», поверните направо, если там монстр, вы умрете и т. Д.
Здесь есть множество вариантов. Может быть, пусть построят простой калькулятор с учетом деления на ноль , нечетных / четных чисел и т.п.
Изменить: нашел это простое упражнение на if-else (на java), которое можно преобразовать в Python.
Как только вы дойдете до циклов и/или функций, отличным вариантом будет "четыре - это магия" - четыре - единственное слово с тем же количеством букв, что и число, и якобы все числа сходятся к четырем. Так что игра проходит примерно так:
seventeen is nine
nine is four
four is magic
или (без учета пробелов):
one hundred is ten
ten is three
three is five
five is four
four is magic
Конечно, если вы хотите придерживаться if/else, вы можете легко сделать это для чисел 0-10, и просто иметь серию из 11 блоков if...else (1-5 и вам понадобится еще меньше).
На мой взгляд, оператор if
является интересной темой в Python. Я бы рекомендовал учитывать философию языка при его введении.
В большинстве случаев я не использую if
в качестве альтернативы переключателю C ++
. Я предпочитаю словарь функций.
Я также стараюсь следовать Правило
проще просить прощения, чем разрешения, и я предпочитаю ловить исключения.
Я думаю, что ваши примеры должны это учитывать. Так что я бы не стал использовать игру с монстрами
или идеи деления на ноль
. Это может быть забавно в реализации, но, на мой взгляд, не очень питонично.
Я в основном использую if
в качестве фильтра.
Я думаю, вам не следует брать какой-либо сложный алгоритм в качестве примера, если ваша цель - научить синтаксису языка. Научиться программировать, безусловно, является достаточно сложной задачей.
Я думаю, что любой глупый пример, подобный приведенному ниже, должен работать.
class Song:
def __init__(self, title, year):
self.title = title
self.year = year
songs = [Song('Blackbird', 1968), Song('Penny Lane', 1967), Song('Jenny Wren', 2005)]
for song in songs:
if song.year < 1970:
print song.title, 'by the Beatles'
else:
print song.title, 'is not a Beatles song'
Это также может быть первый шаг к пониманию списка, если вы планируете его показать.
songs = [Song('Blackbird', 1968), Song('Penny Lane', 1967), Song('Jenny Wren', 2005)]
print [song.title for song in songs if song.year<1970]
Одним из лучших является проект Euler problem #1.
http://projecteuler.net/index.php?section=problems&id=1
Это требует значительной осторожности, чтобы точно выполнить условия if.
Вы также можете подготовить своих начинающих программистов к прохождению теста FizzBuzz . Увидев, что это чрезвычайно распространенная функция фильтрации для найма программистов, вы можете процитировать:
«После выполнения этого задания вы выше 199 из 200 программистов претендующих на профессиональные должности »
Я продемонстрировал эту тему в DaniWeb с помощью игры в угадывание чисел . Может быть, что-то подобное?
Мое любимое использование конструкции if..else в инструкции print вместо multiline if.
Я видел другие ответы, предлагающие что-то для обычного оператора if, поэтому я сам придумал один:
Я думаю, что практическое значение было бы использовать if в операторе break в качестве реакции на ввод пользователя. В то же время вы можете научить пытаться ... кроме случаев, когда не использовать if в Python.
Мне нравится задача "Трое мужчин и обезьяна на острове":
Трое мужчин застряли на необитаемом острове с обезьяной. Они собирают все кокосовые орехи и складывают их в большую кучу. Затем в течение ночи каждый человек встает тайком и берет 1/3 часть оставшейся кучи и прячет ее. Когда он делит кучу на трети, остается остается 1, которую он отдает обезьяне. Затем утром, после того как они все просыпаются, они делят кучу на 1/3 части ... с 1 оставшейся частью для обезьяне. Сколько кокосов было в в куче изначально?
Общая стратегия решения этой задачи заключается в использовании цикла for-loop для проверки всех чисел от 1 до 10 000 (или другого большого числа). Для проверки остатка нужно использовать операторы if
. Позже вы можете расширить эту задачу до более общей словесной задачи о Х-людях и Y-обезьянах... для этого потребуется вложенный цикл for-loop.