Задать вопрос
  • Верно ли я понял процесс преобразование целого типа данных в символьный на C?

    @AVI-crak
    Int может быть больше 9, и тогда символ цифры не получится.
    Однако если взять процент ((x%10)+'0') - то можно получить младший элемент строки в символьном варианте char. Повторять пока x не равен нулю. Кроме того, int x может быть отрицательным числом, и тогда всё поломается. Работать можно только с числом без знака, для этого сначала выполняется проверка, и если число меньше нуля - то (x=0-x). Когда x в цикле станет равен нулю - нужно просто добавить к строке минус.
    Это очень простой код, в целях обучения ты должен написать его сам.
    Ответ написан
    Комментировать
  • Почему программа прерывает свою работу на C?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Возможно scanf при попытки считывать 1 character читает предыдущий enter.

    Попробуй рецепт который пишут тут https://stackoverflow.com/questions/13542055/how-t...
    Ответ написан
    1 комментарий
  • Почему программа прерывает свою работу на C?

    GavriKos
    @GavriKos
    Ну выведите что у вас в math, и сколько в нем символов. Или дебагом посмотрите. Это раз.

    Второе - я не уверен, но по моему свитч не работает со строками, ибо сравнивает указатели.
    Ответ написан
    4 комментария
  • Как обернуть в цикл консольную программу на Python?

    @codingoleg
    Оборачивать весь код в бесконечный цикл не надо. Нужно обернуть лишь ту часть/функцию, которую вы хотите повторить. Пример кода с отображением номера стороны и треугольника и без повторов (заменить в вашем коде, начиная с try):
    # Функция для подставления номера стороны и номера треугольника для отображения
    def enter_length(side_num: str, triangle_num: str):
        return f'Enter the length of {side_num} side of triangle {triangle_num} (cm): '
    
    
    error_msg = 'Error! Please enter an integer or fractional number for the program to work correctly.'
    repeat_msg = "Enter 'Y' for one more triangle or any key to exit: "
    # Номер треугольника
    triangle_num = 1
    while True:
        try:
            sides = []
            # Номер стороны из 3
            for side_num in range(1, 4):
                sides.append(
                    float(input(enter_length(str(side_num), str(triangle_num)))))
            area_of_triangle(*sides)
        except ValueError:
            print(error_msg)
        else:
            response = input(repeat_msg)
            if response == 'Y':
                triangle_num += 1
            else:
                break
    Ответ написан
    Комментировать
  • Как обернуть в цикл консольную программу на Python?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Погуглив нашел только вариант, где мы оборачиваем всю нашу программу в функцию и при согласии пользователя, повторяем выполнение этой функции. Есть ли другие варианты?

    Есть:
    import time
    from math import sqrt
    
    def visual_effects(f):
        def wrapper(*args, **kwargs):
            print('The result is being calculated, please wait...')
            time.sleep(2)
            res = f(*args, **kwargs)
            print(f'The area of the triangle is: {res} cm.')
    
        return wrapper
    
    @visual_effects
    def area_of_triangle(side1, side2, side3):
        if side1 <= 0 or side2 <= 0 or side3 <= 0:
            print('Error! All sides of the triangle must be greater than zero.')
            return None
        perimeter = (side1 + side2 + side3) / 2
        result = round(sqrt(perimeter * (perimeter - side1) * (perimeter - side2) * (perimeter - side3)), 2)
        return result
    
    # бесконечный цикл, пока пользователь его не прервет
    while True:
        try:
            side1 = float(input('Enter the length of side of triangle 1 (cm): '))
            side2 = float(input('Enter the length of side of triangle 2 (cm): '))
            side3 = float(input('Enter the length of side of triangle 3 (cm): '))
        except ValueError:
            print('Error! Please enter an integer or fractional number for the program to work correctly.')
            continue
    
        area_of_triangle(side1, side2, side3)
    
        user_input = input('Repeat calculate? (yes/no): ').lower()
        if user_input != 'yes':
            break  # Прерываем цикл, если пользователь ответил != yes
    Ответ написан
    Комментировать
  • Как обернуть в цикл консольную программу на Python?

    @chemdev
    Для этого существует цикл while True, оборачивать в функцию или не оборачивать не играет роли в данном случае. Проверка значений должна проводиться после ввода и до расчёта, для различных сценариев в зависимости от результатов проверки существует if-else.
    Ответ написан
    Комментировать
  • Стоит ли публиковать на GitHub мини программы, которые ты делаешь во время обучения?

    delphinpro
    @delphinpro
    frontend developer
    относись к гитхабу как к облачному хранилищу. кидай все что жалко потерять. не хочешь показывать всем - сделай репу приватной.
    Ответ написан
    Комментировать
  • Как исправить ошибку PEP 8: W605 invalid escape sequence на Python?

    fenrir1121
    @fenrir1121
    Начни с документации
    Бэкслеш используется для вставки спецсимволов. Если вам нужно использовать его в строке нужно или использовать двойной бэкслеш "\\" или сырую строку r"..."

    docs string-and-bytes-literals
    Ответ написан
    1 комментарий
  • Почему вылетает программа в ходе работы через консоль Python?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Скорее всего проблема в этой строке:
    encrypted_password_file = open('password_database.txt', 'r')  # viewing the password database


    Ты указываешь локальный путь к файлу - относительно рабочей директории. При запуске она может быть не той, где лежит файл password_database

    P.S. открывать файлы лучше через
    with open('password_database.txt', 'rt') as encrypted_password_file:
         # код

    поищи что такое контекстные менеджеры
    Ответ написан
    Комментировать