Задать вопрос
  • Как сделать повторение цикла random в связке с while и выполнение одного из двух сценариев?

    @SneJ
    Товарищи, огромное вам спасибо за примеры кода первой задачи. Занимаюсь по учебнику Доусона, и честно, он мне слегка уже не нравится (а ведь я только начал) в частности из за таковых подстав с задачами (я конечно могу предположить, что г-н Доусон хочет, чтобы мы обменивались опытом, и знаниями, но вот, что делать когда не у кого спросить совета?) примеры/ приемы которых не рассматривались в главе. У меня весь затык уперся в функцию 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, чтобы выйти")
    Ответ написан
    Комментировать