Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (5)

Лучшие ответы пользователя

Все ответы (3)
  • Я учу питон, и в данный момент я пытаюсь сделать калькулятор который проверяет данные которые вводит пользователь?

    @GNation
    На данный момент я на телефоне, так что все в подробностях описать не могу.
    И так, сначала лучше всего напишите функции и переназовите их, чтобы не путаться:
    def get_num1():
        while True:
            num_1 = input('Введите первое целое положительное число: ')
            if num_1.isdigit():
                return int(num_1)
            else:
                print('Вы ввели не число!')
    
    def get_num2():
        while True:
            num_2 = input('Введите второе целое положительное число: ')
            if num_2.isdigit():
                return int(num_2)
            else:
                print('Вы ввели не число!')
    Там где return подставляем int(...) дабы возвращать число, а не строку(string). Также в python после двоеточий лучше переходите на след строку, даже если это всего лишь return, так принято видете ли :)

    После чего мы задаем переменным полученные цифрам:
    num1 = get_num1()
    num2 = get_num2()

    Далее заключаете в функцию только получение "эффекта", тоже самое, что и с get_num1 или get_num2(спасибо dim5x, что немного сократил длительность моей боли):
    def get_effect():
        while True:
            effect = input("Напишите что вы хотите сделать, отнять, прибавить, умножить,разделить, возвести в степень, целое деление, остаток от деления: ")
            if effect in ("+", "-", "*", "/", "**", "//", "%"):
                return effect
            else:
                print('Нету такого действия!')

    Потом опять же задаем переменной полученный "эффект":
    effect = get_effect()

    Далее конечно решение:
    if effect == "+" :
        print(num_1 + num_2)
    # + - сложение
    elif effect == "-":
        print(num_1 - num_2)
    # - — вычитание
    elif effect == "*":
        print(num_1 * num_2)
    # * — умножение
    elif effect == "/":
        print(num_1 / num_2)
    # / — деление
    elif effect == "**":
        print(num_1 ** num_2)
    # ** — возведение в степень
    elif effect == "//":
        print(num_1 // num_2)
    # // — целочисленное деление
    elif effect == "%":
        print(num_1 % num_2)
    # % — остаток от деления


    Советую внимательно относится даже к мелочам. Так же рекомендую почитать этот документ о написании чистого кода. Возможно я не придерживался к нему в этом ответе, но я все же на телефоне))
    Ответ написан
    2 комментария