Python: Ветвление if, elif, else, циклы while, генерация случайных чисел

Продолжаем учиться программированию. Переходим к изучению третьей главы по книге: Майкл Доусон “Программируем на Python”, 2014 (Michael Dawson “Python Programming for the Absolute Beginner”, 3rd Edition), где мы изучим условные операторы if, elif, else и циклы while и научимся генерировать случайные числа при помощи модуля с функциями random.randint() и random.randrage().

Конспект 3 главы с примерами написанных мной программ:

Генерация случайных чисел в Python

Загружаем модуль import random — он генерирует случайные числа на основе встроенной формулы. Чтобы присвоить переменной случайное значение, нужно после вызова модуля вызвать одну из его функций, например,

import random
# Случайные значения в диапазоне от 1 до 10 включительно:
peremennaya = random.randint(1,10) 
# Случайные значения в диапазоне от 0 до 9 включительно:
peremennaya = random.randrange(10)

Условные конструкции if, elif, else

Для начала изучим операторы сравнения, ведь условные конструкции возможны, если одна переменная сравнивается с каким-то значением. Операторы:

== равно
!= не равно
> больше
>= больше или равно
< меньше
<= меньше или равно

Общий вид условной конструкции в Python:

Всегда есть один if в начале и один else в конце, а elif может быть повторен между ними сколько угодно раз.

Вариант 1:

if "значение 1" оператор сравнения "значение 2":
    сделай то-то
elif "значение 3" оператор сравнения "значение 4":
    сделай что-то еще
else:
   сделай что-то другое

Вариант 2 (значения как условия: истина / ложь):

В этой конструкции подразумевается, что значение в условии if "значение": является истиной, то есть условие выполнится только в том случае, если значение будет True. Чтобы сделать обратную конструкцию, используется отрицание not после if перед "значением".

Что является истиной и ложью в Python? На истинность / ложь можно проверить любое число или строку текста. Все числа, кроме “0” являются истиной, а нуль — ложь. Все строки, кроме пустой — истина, а пустая строка — ложь.

if "значение 1":
    сделай то-то
elif:
    сделай что-то еще
else:
    сделай что-то другое

Примеры использования условных конструкций:

Программа “Вход по паролю”: напишите программу, которая просить пользователя ввести пароль. Если пароль совпадает с заданным значением, то программа приветствует участника. Если пароль не совпадает с заданным значением, то программа выдает сообщение о том, что пароль не верный.

passw=input('Привет, введите пароль.\n')
if passw=='kot':
    print('Wow, hi Kot!')
else:
    print('So sorry, it\'s not right')

Программа “Вип-клуб”: Напишите программу, которая просить пользователя ввести пароль. В системе записано два вип-гостя, у которых заданы пароли. Если пользователь вводит один из двух заданных паролей, то программа приветствует того гостя, который вошел. Если пароль не соответствует ни одному из двух заданных значений, то программа напишет сообщение о том, что пароль не верный.

passw=input('Привет, введите пароль.\n')
if passw=='kot':
    print('Wow, hi Kot!')
elif passw=='medved':
    print('Hi, Bear! Love you!')
else:
    print('So sorry, it\'s not right')

Цикл while, управляющая переменная, break, continue

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

not не
or или
and и

Цикл будет исполнен, если условие истинно. Условия могут быть как одинарными, так и составными.

Общий вид цикла:

управляющая переменная = ” “
while управляющая переменная оператор сравнения “значение”:
    сделай то-то
сделай что-то другое после завершения цикла, если его условие будет ложным

Пример использования цикла while:

Программа “Симулятор ребенка”: создайте программу, которая задает вопрос “Почему?” и дает пользователю возможность дать ответ. После каждого ответа программа повторяет вопрос “Почему?” и опять дает возможность ввести ответ. И так до повторяется до тех пор, пока пользователь не введет ответ “покачану”; в этом случае программа пишет “Окидоки”.

print('Child simulator')
answer=''
while answer!='покачану':
    answer=input('Почему?\n')
print('Окидоки')

Бесконечный цикл в Pythonwhile True:, continue, break

Если цикл получился бесконечным случайно, то это логическая ошибка. Но можно сделать и намеренно бесконечный цикл, например так — while True:

Чтобы завершить такой цикл, нужно написать break — прервать цикл.

Чтобы перейти с какого-то места кода к началу цикла, напишем continue.

Задача на использование условных конструкций и цикла:

Написать игру “Эпичная битва с андедами”. Программа спрашивает имя пользователя. Затем герою говорится, что “Только ты сможешь победить андедов и спасти деревню”. Задается вопрос: “Полная готовность к бою?”. Пользователь может дать ответ. Если пользователь отвечает “да”, то запускается игра, если отвечает иначе, то программа завершается тем, что просит пользователя нажать Entr для выхода.  Игра заключается в следующем: на героя с 13 жизнями по очереди по одному нападают андеды, которые бьют на 2 очка за ход. При этом у героя отнимает 2 очка жизни. Битва продолжается до тех пор, пока герой не потеряет почти все жизни, но останется в живых. По завершению битвы нужно вывести на экран количество побежденных андедов и количество оставшихся жизней. 

print('Игра "Эпичная битва с андедами":')
name=input('Как тебя зовут?\n')
print('Воин ',name,'!\nТолько ты сможешь победить андедов и спасти деревню.\n', sep='')
ready=input('Полная готовность к бою? (да/нет)\n')
if ready=='да':
    undead=0
    health=13
    damage=2
    while health > 2:
        undead+=1
        health-=damage
        print('Воин',name,'доблестно сразился с андедом и победил!\n \
Из-за повреждений очки жизни уменьшились с 13 до',health)
    print('Поздравляю! Всех нападавшие андеды побеждены, их было:', undead,'\n \
У тебя осталось', health,'очков жизни.')
input('Нажми Entr, чтобы выйти из игры')

This entry was posted in Python. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *