Товарищи, огромное вам спасибо за примеры кода первой задачи. Занимаюсь по учебнику Доусона, и честно, он мне слегка уже не нравится (а ведь я только начал) в частности из за таковых подстав с задачами (я конечно могу предположить, что г-н Доусон хочет, чтобы мы обменивались опытом, и знаниями, но вот, что делать когда не у кого спросить совета?) примеры/ приемы которых не рассматривались в главе. У меня весь затык уперся в функцию randint, когда я захотел, чтобы монета имела не только две стороны - 0 и 1 (True False), а три или больше (1, 2, 3...) по сути кубик. И вот тут я завис. Скидываю свой пример, он в шутливой форме, но так веселее, хобби, что поделать.
Честно я отбитый гуманитарий, так что прошу серьезно выкладку не воспринимать, просто как есть. Еще вопрос там по тексту кода изначально ставил:
flip = 0
while flip != 100:
и далее писал
flip += 1
но получался бесконечный цикл, пробовал прерывать цикл, но когда реверсировал, в коде ниже правильно, код заработал. Честно, не понял почему получился бесконечный цикл, без вычислений. Если у кого будет желание просветите, я могу предположить, что это в области True False, но лучше когда понимающий человек скажет.
#импорт модулей
import random
#завязка/ сюжет
print("\t\tГопники и начинающий программист")
print("\nНаш молодой программист гулял вечером по ночной Москве и наткнулся на \
ребят из низкосоциальных слоев населения.")
print("Ребята ему предложили сыграть и интереснейшую игру, подбросить монетку сто \
раз и в зависимости от того какая из сторон монетки выпадет большее\
число раз будет определена судьба нашего начинающего программиста")
#инициатор запуска функции
print("Скажи 'Бросаю', чтобы бросить монетку 100 раз и узнать результат.")
response = ""
while response != "Бросаю":
response = input("Решайся: ")
print("Как два пальца")
#исходные значения
avers = 0
revers = 0
flip = 100
while flip != 0:
#бросок монеты
one_flip = random.randint(1, 2)
print("Если 1- аверс, если 2- реверс")
print("\tМонета выпала: ")
#трактовка значений броска
if one_flip == 1:
print("\t\t\tОрел")
if one_flip == 2:
print("\t\t\tРешка")
# -1 от иходного значения flip, мониторинг количества бросков
flip -= 1
print("Осталось бросков: ", (0 + flip))
#интерпритация/ отождествление (хз как правильно) значений броска монеты и их суммирование с исходными (в первом броске и последующими в дальнейших)
if one_flip == 1:
avers += 1
print("Орел: ",avers)
if one_flip == 2:
revers += 1
print("Решка: ",revers)
#вывод значений итого
print("Монета выпала орлом: ", avers)
print("Монета выпала решкой: ", revers)
#отсебятина
if avers == 50:
print("Гопник: -Забухаем ботаник? Да конечно, прости, что спросил, конечно забухаем.")
elif avers <= 49:
print("""
Гопник: Ты сам-то отжимаешься?
Ботаник: — Отжимаюсь, &!%!
Гопник:— Вот я вижу буйвол. Тебе, небось, хорошо в армии, такому кабану-то.""")
elif avers >= 51:
print("Гопник: -Ой, это вы господин Профессор? Ей богу не признали. А мы тут как раз с пацанами решили вам \
денежку занести")
#хз зачем эта фраза (честно знаю, но смысла в ней пока не вижу, на начальных этапах)
input("\n\nНажмите Enter, чтобы выйти")
Вариант решения задачи №3.
У меня получилось вот так (см. ниже), вроде вопрос и ответ бьются. Больше, меньше не стал добавлять, а то это уже ИскИн будет, немного юмора про восставшие машин ;) . Мне понравился вариант решения от пользователя
nurakhov
import random
print("\t\t\tКомпьютерная номеромолотилка")
num_x = int(input("Введите число от 1 до 100 которое компьютер должен отгадать: "))
tries = 4
guess = ""
while guess != num_x and tries != 0:
guess = random.randint(1, 100)
tries -= 1
print("Число, высказанное компьютером: ", guess)
if guess == num_x:
print("Компьютер Win")
if tries == 0:
print("Игрок Win")
print("Осталось попыток: ", tries)
input("\n\nНажмите Enter, чтобы выйти")