• Как перевести код с Pascal на Python?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Как перевести код с Pascal на Python?

    Используя синтаксис и встроенные функции (смотреть в офф.доках / "шпаргалке") написать соответствующий код.

    ---
    Допускаю, что найдется кто-то, готовый за вас делать ваши задания, и напишет код, но в текущем виде, поскольку вы не привели попыток решения, вопрос фактически является заданием. А про задания четко написано в п.5.12 правил.
    upd:
    Самые очевидные ошибки
    from math import sqrt
    
    for i in range(289123456, 389123456+1):
        sqrtIT = sqrt(i)
        numDel = 0
        if (round(sqrtIT)) == sqrtIT:
            maxDel = 1
            for j in range(1, round(sqrtIT)): # Раз ошибка
                """
                    Собственно, первый цикл 'for i := 289123456 to 389123456 do begin' вы переделали правильно, почему второй так сделали - непонятно
                """
                round(sqrtIT)
                if (i % j == 0):
                    if maxDel == 1 and j != 1: # вторая ошибка. В питоне - не равно пишется так: !=
                        maxDel = i // j # Еще одна ошибка (из коментов)
                    if (j != round(sqrtIT)): # третья ошибка
                        numDel += 2
                    if j * j == i:
                        numDel += 1
            if numDel == 5:
                print(i, ' ', maxDel)
    Ответ написан
    2 комментария
  • Почему телеграм бот не запускает?

    Vindicar
    @Vindicar
    RTFM!
    Потому что ты не думаешь, что ты пишешь.
    message.text.lower() == "Привет"
    Ты сравниваешь строку, которая переведена целиком в нижний регистр (т.е. не содержит заглавных букв) со строкой, которая содержит заглавные буквы.
    Ответ написан
    Комментировать
  • Почему исходный код языка программирования go написан на go?

    includedlibrary
    @includedlibrary
    Язык программирования же, не может быть написан на своем же языке - это прям похоже на какую-то рекурсию

    Может. Сначала пишем компилятор для нового языка на языке, для которого компилятор уже есть, а потом переписываем его на новом языке. Вообще принято писать компиляторы на языках, для которых они сделаны. Это что-то вроде доказательства, что язык X уже дорос до того, чтобы его можно было использовать.

    То есть, если писать компилируемый язык программирования, то нужно использовать интерпретируемый язык, а вот для написания интерпретируемого языка программирования, нужно писать на компилируемом языке.

    Почему вы так думаете? Ничто не мешает написать компилятор для компилируемого языка на другом компилируемом языке. И опять же ничто не мешает написать интерпретатор на интерпретируемом языке
    Ответ написан
    2 комментария
  • Почему исходный код языка программирования go написан на go?

    DevMan
    @DevMan
    google -> self-compiling compiler
    в частности https://ru.m.wikipedia.org/wiki/Раскрутка_компилятора
    Ответ написан
    Комментировать
  • Как удалить программу через Ubuntu Software?

    @Nikita1244
    Anonymous
    Установите пакетный менеджер Synaptic и забудьте навсегда о существовании убогой, глючной программе Ubuntu Software. Была такая же проблема, решил Synaptic'ом.
    Ответ написан
    Комментировать
  • Как удалить программу через Ubuntu Software?

    @rPman
    Универсальный способ удаления программ в linux, установленных с помощью пакетного менеджера
    1. определить как называется пакет (его настоящее название а не то что подменяет отвратительный Центр Приложений)
    можно посмотреть в самом центре приложений снизу в описании будет написано что то типа
    GHex is a hex editor for the GNOME desktop.

    можно забить в поиск synaptic или консольной apt свое название gnome hex editor и в полученном списке ищем что то похожее
    p.s.
    это одна из причин за что Центр приложений ненавидят
    помимо страшных тормозов на топовых машинах
    у них какой то свой список приложений и рядовому пользователю не совсем понятно что есть что, даже описания не совпадают иногда с тем что в пакете, вто что покажет apt show ghex
    Description: GNOME Hex editor for files
    The GHex program can view and edit files in two ways, hex or ascii. Good
    for editing saved game files.
    а вот что центр приложений
    GHex is a hex editor for the GNOME desktop.

    GHex can load raw data from binary files and display them for editing in the traditional hex editor view. The display is split in two columns, with hexadecimal values in one column and the ASCII representation in the other. A useful tool for working with raw data.
    кстати они еще умудрились мультиязыковую поддержку убить, в пакетах есть русскоязычное название а в центре приложений только английское


    либо смотрим свойства ярлыка запуска, там будет команда, что то типа
    ghex %F
    это имя приложения не обязательно будет совпадать с именем пакета, поэтому для гарантии можно поискать среди установленных
    определяем путь к запускаемому приложению если в ярлыке не указан
    # whereis ghex
    ghex: /usr/bin/ghex /usr/share/man/man1/ghex.1.gz
    затем определяем имя пакета по имени файла (не обязательно запускаемого)
    # dpkg -S /usr/bin/ghex
    ghex: /usr/bin/ghex

    тут слева имя пакета, справа имя файла (может быть что один и тот же файл есть в разных пакетах
    p.s. если поиск пакета по файлу не сработал, значит данный пакет не установлен, если не говорить в разрезе задачи удаления а просто определить в каком пакете нужный файл, нужно установить утилиту apt-file, она загрузит базу всех пакетов и позволит искать по ним (так же на сколько я знаю при установке bashcompletion при запуске неизвестного приложения будет выдаваться список пакетов где есть похожие по имени)

    2. узнав имя пакета его можно удалить либо synaptic либо в консоли
    apt remove ghex
    или
    apt purge ghex

    вторая команда не только удалит пакет но и файлы настроек которые пользователь или программа за время работы понасоздавала

    если что то идет не так, то нужно смотреть сообщения об ошибках
    p.p.s. есть мощный консольный GUI для пакетного менеджера - aptitude, умеет много проблем разруливать
    Ответ написан
    Комментировать
  • Как вывести многострочные переменные в одну строку в python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Исправил
    алфавит
    A = """  
      A  
     A A 
    A   A
    AAAAA
    A   A
    A   A
    A   A
    """
    
    B = """
    BBBB 
    B   B
    B   B
    BBBB 
    B   B
    B   B
    BBBB 
    """
    
    C = """
     CCC 
    C   C
    C    
    C    
    C    
    C   C
     CCC 
    """
    
    D = """
    DDDD 
    D   D
    D   D
    D   D
    D   D
    D   D
    DDDD 
    """
    
    E = """
    EEEEE
    E    
    E    
    EEE  
    E    
    E    
    EEEEE
    """
    
    F = """
    FFFFF
    F    
    F    
    FFF  
    F    
    F    
    F    
    """

    и накарябал печаталку:
    import alphabet_ascii as alfabet_ascii
    
    alph = {'A':alfabet_ascii.A,
    'B': alfabet_ascii.B,
    'C': alfabet_ascii.C,
    'D': alfabet_ascii.D,
    'E': alfabet_ascii.E}
    
    def make_symbols(symbols):
        lines = []
        for number, _ in enumerate(alph['A'].splitlines()):
            line = [alph[symbol].splitlines()[number] for symbol in symbols]
            line = ' '.join(line)
            lines.append(line)
        text = '\n'.join(lines)
        return text
    
    print(make_symbols('ABCDE'))
    Ответ написан
    1 комментарий
  • Как вывести многострочные переменные в одну строку в python?

    igorzakhar
    @igorzakhar
    Решение "в лоб":
    import alfabet_ascii
    
    letters = [alfabet_ascii.H, alfabet_ascii.E,
               alfabet_ascii.L, alfabet_ascii.L, alfabet_ascii.O]
    
    row = 0
    while row < 7:
        line = ""
        column = 0
        while column < len(letters):
            letter = letters[column]
            line += letter[row] + "   "
            column += 1
        print(line)
        row += 1


    alfabet_ascii.py
    A = ["  A  ", " A A ", "A   A", "AAAAA", "A   A", "A   A", "A   A"]
    B = ["BBBB ", "B   B", "B   B", "BBBB ", "B   B", "B   B", "BBBB "]
    
    H = ["H   H", "H   H", "H   H", "HHHHH", "H   H", "H   H", "H   H"]
    E = ["EEEEE", "E    ", "E    ", "EEE  ", "E    ", "E    ", "EEEEE"]
    L = ["L    ", "L    ", "L    ", "L    ", "L    ", "L    ", "LLLLL"]
    O = [" OOO ", "O   O", "O   O", "O   O", "O   O", "O   O", " OOO "]


    61f1ac7c3fcbd484271510.png
    Ответ написан
    Комментировать
  • Как вывести многострочные переменные в одну строку в python?

    Как вариант, без доп. библиотек:
    1. Все буквы определили в массивы 5x7 (сформировали шрифт, другими словами)
    2. Определили буфер, одномерный массив или список, например 10 строк
    3. Определяем координаты буквы H (верхний левый угол - 0,0)
    4. Посимвольно копируем букву из массива в п.1 в буфер
    5. Определяем координаты буквы E (верхний левый угол - 6,0)
    6. Посимвольно копируем...
    7. Повторяем пункты 5-6 для букв L L O...
    8. После того как вывели в буфер все что хотели - выводим буфер на экран или куда угодно

    Здесь большое количество вариаций на тему оптимизации или вывода сразу на экран, но это тема для следующего задания :)
    Ответ написан
    1 комментарий
  • Почему не работает условие elif?

    Vindicar
    @Vindicar
    RTFM!
    Потому что если число больше 18, оно также больше 10.
    Ответ написан
    Комментировать
  • Почему не работает условие elif?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Потому что код писал подросток. Очевидно, если переменная age содержит значение например 20, то это больше 10, срабатывает первое условие, а другие не проверяются.
    Ответ написан
    Комментировать