30.09.2023

Как ввести с клавиатуры в питоне несколько чисел. Метод split и функция map

Задача. Участники парусной регаты стартовали одновременно. На финише фиксировалось время прохождения маршрута каждой яхтой (в часах и минутах). Определите время победителя регаты (в часах и минутах). Известно, что соревнования проходили в течение 12 часов.

Программа получает на вход количество яхт, принимавших участие в регате N (1<=N<=50), затем для каждой яхты вводится два числа: часы и минуты, затраченные на прохождение маршрута.

Входные данные:

4

2 55

3 40

2 35

3 10

Выходные данные:

2 35

Исходные данные: N - количество яхт

h, m - количество часов и минут

Выходные данные: 

hw, mw - результат победителя

Как будем решать задачу

  1. Введем с клавиатуры число N.
  2. В цикле от 0 до N-1 введем пары чисел, переведем введенное время в минуты, определим минимум в минутах.
  3. Выполним перевод найденного минимального времени в часы и минуты.

Как ввести с клавиатуры несколько чисел? В нашей задаче в каждой строке вводится пара чисел.

Мы знаем, что input вводит строку. Мы также понимаем, что пара чисел разделена в строке одним пробелом. Необходимо разделить строку на две по пробелу. Для этого будем использовать метод split.

input().split()

Затем функцией map применим int к полученным строкам и сохраним в переменных h и m.

h, m = map(int, input().split())

Программа решения задачи на языке Python

n = int(input())

tmin = 12*60

for k in range(n):

    h, m = map(int, input().split())

    t = h*60+m

    if t < tmin:

        tmin = t

hw = tmin // 60

mw = tmin % 60

print(hw, mw)

Результат запуска программы





24.09.2023

Как ввести с клавиатуры целое число. Функция input. Python

Для ввода данных с клавиатуры будем использовать функцию input.

n = input()

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

Для того, чтобы увидеть текстовый комментарий, сделаем так:

n = input('Введи строку ')

Можно вывести строку на экран:

print('Вы ввели строку ',n)

Убедимся, что это строка:

n = n + ', а не число' #выполним сложение строк

print('Вы ввели строку ',n)



Но, как ввести число в Python?

Необходимо использовать функцию int для преобразования введенной строки к числу.

n = int(input('Введи число '))

Можно вывести число на экран:

print('Вы ввели число ',n)

ввод целого числа. Python

Убедимся, что это число:

n = n + 100  #увеличим число на 100

print('Введенное число увеличили на 100  и получилось: ',n)




19.07.2023

Дано три целых числа. Определить, сколько из них отрицательных? (Паскаль, Python)

Задача. Дано три целых числа. Определить, сколько из них отрицательных?

Приведем решение задачи на языках программирования Паскаль и Python.

Как будем решать задачу

  • введем с клавиатуры три целых числа (a, b, c)
  • обнулим счетчик отрицательных чисел (k)
  • над каждым числом выполним проверку: если число отрицательно (строго меньше 0), то счетчик k увеличим на 1 (будем использовать ветвление и соответственно условный оператор в краткой форме)
    if a<0 then k:=k+1;
  • выведем ответ на экран

Программа решения задачи на языке Паскаль

var a,b,c,k:integer;

begin

  println('Введите три целых числа:');

  readln(a,b,c);

  k:=0;

  if a<0 then k:=k+1;

  if b<0 then k:=k+1;

  if c<0 then k:=k+1;

  println('Количество отрицательных чисел:',k);

end.

Результат запуска программы

Запуск программы

Программа решения задачи на языке Python

a,b,c = map(int, input('Введите три целых числа: ').split())

k = 0

if a<0: k+=1

if b<0: k+=1

if c<0: k+=1

print('Количество отрицательных чисел:',k)

Заметим, что по сути нужно повторить три одинаковых действия: ввести число и выполнить проверку, поэтому можно использовать следующий код (это позволит приблизиться к теме Циклы)

k = 0

a = int(input('Введите целое число: '))

if a<0: k+=1

a = int(input('Введите целое число: '))

if a<0: k+=1

a = int(input('Введите целое число: '))

if a<0: k+=1

print('Количество отрицательных чисел:',k)

Результат запуска программы


Дано натуральное число N. Есть ли в нем четная цифра

Читать

Определить, одинаков ли рост трех человек

Читать

Определить, делителем каких целых чисел является целое число

Читать

07.07.2023

ЕГЭ по информатике. Задание 8. Сколько существует шестнадцатеричных трехзначных чисел, в которых все цифры различны и никакие две четные или две нечетные цифры не стоят рядом? Решение на языке Python

Задача. Сколько существует шестнадцатеричных трехзначных чисел, в которых все цифры различны и никакие две четные или две нечетные цифры не стоят рядом?

Приведем решение задачи на языке Python

Как будем решать задачу

Получим все возможные трехзначные шестнадцатеричные числа функцией product - кортеж цифр x:

abc = '0123456789ABCDEF'

for x in product(abc, repeat = 3):

Функция product аналогична функции cartesian в PascalABC.NET.

Выполним проверку

  • первая цифра числа не равна 0 (число должно быть трехзначным): x[0]!='0'
  • все цифры числа различны (длина множества цифр равна количеству цифр в числе): len(set(x)) == len(x)
  • четность у соседних цифр различна: int(x[0],16) % 2 != int(x[1],16) % 2 and int(x[1],16) % 2 != int(x[2],16) % 2

Если все условия выполняются, будем копить счетчик k

Программа решения задачи на языке Python

from itertools import *

abc = '0123456789ABCDEF'

k = 0

for x in product(abc, repeat = 3):

    if x[0]!='0':

        if len(set(x)) == len(x):

            if int(x[0],16) % 2 != int(x[1],16) % 2 and int(x[1],16) % 2 != int(x[2],16) % 2:

                k+=1

print(k)

Ответ: 840


Как решить комбинаторную задачу про слова. Валя составляет шестибуквенные слова из букв слова ГРОЗА

Читать

Лера составляет 5-буквенные слова из букв слова ЛОГАРИФМ (перестановки)

Читать

Все шестибуквенные слова, составленные из букв МАНГУСТ, записаны в алфавитном порядке и пронумерованы (декартово произведение)

Читать

04.07.2023

Все шестибуквенные слова, составленные из букв МАНГУСТ, записаны в алфавитном порядке и пронумерованы. Комбинаторная задача. ЕГЭ по информатике. Решение на Python

Задача. Все шестибуквенные слова, составленные из букв МАНГУСТ, записаны в алфавитном порядке и пронумерованы.

Вот начало списка:

1. АААААА

2. АААААГ

3. АААААМ

4. АААААН

5. АААААС

6. АААААТ

7. АААААУ

...

Под каким номером в списке стоит последнее слово, которое не начинается с буквы У, содержит только две буквы М и не более одной буквы Г?

 Приведем решение данной задачи на языке Python.

Из букв алфавита МАНГУСТ составляются шестибуквенные слова. На каждом месте может встретиться любая буква. Получим все возможные слова функцией product (декартово произведение). 

Заведем счетчик - порядковый номер слова t. И если слово подходит под условие, то в переменную k сохраним значение порядкового номера слова. Таким образом значение переменной k будет обновляться и в итоге сохранит необходимый номер последнего подходящего слова.

Программа решения задачи на языке Python

from itertools import *

s = 'АГМНСТУ'

k = t = 0

for x in product(s, repeat = 6):

    t+=1 #порядковый номер слова

    if x[0]!='У' and x.count('М')==2 and x.count('Г')<=1:

        k = t #номер подходящего слова

print(k)

Ответ: 100810

Сколько существует шестнадцатеричных трехзначных чисел, в которых все цифры различны и никакие две четные или две нечетные цифры не стоят рядом

Читать

Настя составляет коды из букв слова НАСТЯ. Код должен состоять из 7 букв, буква Н должна встречаться в нём ровно два раза, буква А – как минимум один раз. Сколько различных кодов может составить Настя

Читать

Алексей составляет 5-буквенные слова из букв М, А, Г, И, С, Т, Р. Каждую букву можно использовать не более одного раза, при этом в слове нельзя использовать более одной гласной. Сколько различных кодов может составить Алексей

Читать