Проблема с уменьшением кода

TM25

Новичок
Пользователь
Ноя 18, 2020
2
0
1
Использую python 3.8, нужно составить код суть которого заключается в том, что игра с помощью модуля random загадывает число от 1 до 20, а пользователь пытается угадать его.

Если введенное число меньше загаданного, выведите “слишком мало”.
Если оно больше загаданного, выведите “слишком много

Если игрок угадал, выведите “Класс! Вы угадали”.”.
Если попыток было 3 и пользователь не угадал, то выведите “Все, вы не выиграли. Игра завершилась”.

У меня получился такой код:


Python:
import random as r
a=r.randrange(1,20)
b=int(input('Введите число '))
if a>b:
    print('Слишком мало')
    b=int(input(('Введите число еще раз ')))
    if a>b:
        print('Слишком мало')
        b=int(input(('Введите число еще раз ')))
        if a>b:
            print('Слишком мало')
            print('Попыток больше нет(')  
        elif b>a:
            print('Слишком много')
            print('Попыток больше нет(')
        elif a==b:
            print('Класс!Вы угадали.')    
    elif b>a:
        print('Слишком много')
        b=int(input(('Введите число еще раз ')))
        if a>b:
            print('Слишком мало')
            print('Попыток больше нет(')  
        elif b>a:
            print('Слишком много')
            print('Попыток больше нет(')
        elif a==b:
            print('Класс!Вы угадали.')
    elif a==b:
        print('Класс!Вы угадали.')
elif b>a:
    print('Слишком много')
    b=int(input(('Введите число еще раз ')))
    if a>b:
        print('Слишком мало')
        b=int(input(('Введите число еще раз ')))
        if a>b:
            print('Слишком мало')
            print('Попыток больше нет(')
        elif b>a:
            print('Слишком много')
            print('Попыток больше нет(')
        elif a==b:
            print('Класс!Вы угадали.')
    elif b>a:
        print('Слишком много')
        b=int(input(('Введите число еще раз ')))
        if a>b:
            print('Слишком мало')
            print('Попыток больше нет(')
        elif b>a:
            print('Слишком много')
            print('Попыток больше нет(')
        elif a==b:
            print('Класс!Вы угадали.')
    elif a==b:
        print('Класс!Вы угадали.')
elif a==b:
    print('Класс!Вы угадали.')


Но я хочу попробовать сделать его меньше, но не получается, помогите пожалуйста.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 625
469
83
цикл while сократит намного, можно так например
Python:
import random as r
import sys

a = r.randrange(1, 20)
print(a)
c = 0

while c < 3:
    b = int(input('Введите число '))

    if a > b:
        print('Слишком мало')
        c += 1
        continue
    elif b > a:
        print('Слишком много')
        c += 1
        continue
    elif a == b:
        print('Класс!Вы угадали.')
        sys.exit(0)

print('Попыток больше нет(')
print('Все, вы проиграли. Игра завершилась')
 
Последнее редактирование:
  • Мне нравится
Реакции: Student и TM25

TM25

Новичок
Пользователь
Ноя 18, 2020
2
0
1
цикл while сократит намного, можно так например
Python:
import random as r
import sys

a = r.randrange(1, 20)
print(a)
c = 0

while c < 3:
    b = int(input('Введите число '))

    if a > b:
        print('Слишком мало')
        c += 1
        continue
    elif b > a:
        print('Слишком много')
        c += 1
        continue
    elif a == b:
        print('Класс!Вы угадали.')
        sys.exit(0)

print('Попыток больше нет(')
print('Все, вы проиграли. Игра завершилась')
Спасибо
 

Форум IT Специалистов