Учебно-методические материалы для студентов кафедры АСОИУ

Учебные программы » Информационные технологии » Программирование

Python 3. Процедуры и функции. Оператор def

Здесь приведены возможные варианты решения ряда задач из учебника информатики К.Ю. Полякова и Е.А. Еремина. Дополнительную информацию об этом учебнике можно получить на авторском сайте (http://kpolyakov.spb.ru).

Задача: Напишите программу, которая выводит в столбик цифры введённого числа, начиная с первой. Используйте процедуру. Входная строка содержит неотрицательное число N.

Решение

n = int(input())
n = abs(n)

def printDigits (n):
    n = str (n)
    for i in range (0, len(n)):
        print (n[i])

printDigits(n)

Задача: Напишите программу, которая выводит в одну строчку все делители переданного ей числа, разделяя их пробелами.

Решение

def deviders(n):
    res, r1, r2 = "","",""
    d1, d2 = 1, n
    while d1 != d2:
        if n%d1 == 0:
            d2 = n//d1
            r1 = r1 + str(d1) + " "
            r2 = str(d2) + " " + r2
        d1 += 1
    res = res + r1 + r2
    return res.strip()

n = int(input())
n = abs(n)

print(deviders(n))

Задача: Напишите программу, которая переводит переданное ей неотрицательное целое число в 10-значный восьмеричный код, сохранив лидирующие нули.

Решение

def dec2oct(n):
    m = ""
    while n != 0:
        m = str(n%8) + m
        n //= 8
    return "{0:0>10}".format(m)

a = int(input())
print(dec2oct(a))

Задача: Напишите программу, которая переводит переданное ей неотрицательное целое число в четырёхзначный шестнадцатеричный код, сохранив лидирующие нули. Используйте прописные латинские буквы.

Решение

def dec2(n):
    h, m = "", ""
    while n != 0:
        if n%16 == 15: h = "F"
        elif n%16 == 14: h = "E"
        elif n%16 == 13: h = "D"
        elif n%16 == 12: h = "C"
        elif n%16 == 11: h = "B"
        elif n%16 == 10: h = "A"
        else: h = str (n%16)
        m = h + m
        n //= 16
    return "{0:0>4}".format(m)    
a = int(input())
print(dec2(a))

Задача: Простое число называется гиперпростым, если любое число, получающееся из него откидыванием нескольких последних цифр, тоже является простым. Например, число 733 – гиперпростое, так как и оно само, и числа 73 и 7 – простые. Напишите программу, которая определяет, верно ли, что переданное ей число N – гиперпростое. Программа должна вывести слово 'YES', если переданное её число – гиперпростое, и слово 'NO', если это число не гиперпростое. Учтите, что число 1 не считается простым. Используйте функции.

Решение

def isPrime(N):
  res = 1
  for i in range(2, N):
    if N%i == 0: 
      break
  else: # for...else - is a valid python costruction
    res = 0
  return res

a = int(input())
out = 0

while a > 0:
  if a == 1: 
    out += 1
    break
  out += isPrime(a)
  a //= 10

if out == 0:
  print("YES")
else:
  print("NO")

anonymous, 01.06.2017

Постоянный адрес этой страницы:

↑ В начало страницы