S:=1; - переменной s присваивается начальное значение 1 for i := 10 to 99 do - начало цикла с параметром, i - параметр цикла, 10 - начальное значение параметра, 99 - конечное значение параметра. Т.е. цикл будет выполняться 90 раз, параметр i будет принимать последовательно значения 10, 11, 12, ..., 99. if (i mod 13 = 0) and (i mod 2 <> 0) then - условный оператор. В условии используется операция mod - определение остатка от целочисленного деления. (i mod 13 = 0) - это условие будет выполняться для чисел, которые делятся на 13 без остатка; (i mod 2 <> 0) - это условие будет выполняться для чисел, которые делятся на 2 с остатком (это нечетные числа). Таким образом, условие (i mod 13 = 0) and (i mod 2 <> 0) будет иметь значение true для нечетных чисел, которые делятся на 13 без остатка (это 13, 39, 65, 91). Программа в целом вычисляет произведение нечетных чисел, которые делятся на 13 без остатка. (В программе есть ошибка. Тип переменной s должен быть integer.)
print('Binary version of {} - {}'.format(n, to_bin(n)))
print('Hex version of {} - {}'.format(n, to_hex(n)))
if __name__ == '__main__':
main()
Объяснение:
P.S Внутри функций перевода в системы счисления такая каша из за того, что изначально Python при переводе возвращает число с неким кодом системы счисления. То есть при переводе, например, числа 56, в двоичной версии он выдаст 0b111000, а в шестнадцатиричную - 0x38, что бы убрать код системы счисления, функции возвращают не просто интерпретацию числа в нужной системе, а строковый срез без первых двух символов.
for i := 10 to 99 do - начало цикла с параметром, i - параметр цикла, 10 - начальное значение параметра, 99 - конечное значение параметра. Т.е. цикл будет выполняться 90 раз, параметр i будет принимать последовательно значения 10, 11, 12, ..., 99.
if (i mod 13 = 0) and (i mod 2 <> 0) then - условный оператор. В условии используется операция mod - определение остатка от целочисленного деления. (i mod 13 = 0) - это условие будет выполняться для чисел, которые делятся на 13 без остатка; (i mod 2 <> 0) - это условие будет выполняться для чисел, которые делятся на 2 с остатком (это нечетные числа). Таким образом, условие (i mod 13 = 0) and (i mod 2 <> 0) будет иметь значение true для нечетных чисел, которые делятся на 13 без остатка (это 13, 39, 65, 91).
Программа в целом вычисляет произведение нечетных чисел, которые делятся на 13 без остатка.
(В программе есть ошибка. Тип переменной s должен быть integer.)
def to_bin(n):
return str(bin(n))[2:len(str(bin(n)))]
def to_hex(n):
return str(hex(n))[2:len(str(hex(n)))]
def main():
n = int(input())
print('Binary version of {} - {}'.format(n, to_bin(n)))
print('Hex version of {} - {}'.format(n, to_hex(n)))
if __name__ == '__main__':
main()
Объяснение:
P.S Внутри функций перевода в системы счисления такая каша из за того, что изначально Python при переводе возвращает число с неким кодом системы счисления. То есть при переводе, например, числа 56, в двоичной версии он выдаст 0b111000, а в шестнадцатиричную - 0x38, что бы убрать код системы счисления, функции возвращают не просто интерпретацию числа в нужной системе, а строковый срез без первых двух символов.