Как ввести числа в 1 строке
Перейти к содержимому

Как ввести числа в 1 строке

  • автор:

Типы данных. Ввод-вывод.

В настоящее время существует две версии языка Python: более старая версия 2 и современная версия 3. Они не вполне совместимы друг с другом: программа, написанная для одной версии языка может оказаться невыполнимой для другой версии. Но в основном обе версии очень похожи.

Мы будем использовать версию 3 данного языка, некоторые из используемых примеров не будут работать с версией 2. Последняя версия языка, доступная в сентябре 2019 года — 3.7.4, именно её необходимо установить дома, скачав данную версию с сайта www.python.org.

Типы данных

Итак, мы видим, что Питон умеет работать как минимум с двумя видами данных — числами и строками. Числа записываются последовательностью цифр, также перед числом может стоять знак минус, а строки записываются в одинарных кавычках. 2 и '2' — это разные объекты, первый объект — число, а второй —строка. Операция + для целых чисел и для строк работает по-разному: для чисел это сложение, а для строк —конкатенация.

Кроме целых чисел есть и другой класс чисел: действительные (вещественные числа), представляемые в виде десятичных дробей. Они записываются с использованием десятичной точки, например, 2.0. В каком-то смысле, 2 и 2.0 имеют равные значение, но это—разные объекты. Например, можно вычислить значения выражения 'ABC' * 10 (повторить строку 10 раз), но нельзя вычислить 'ABC' * 10.0.

Определить тип объекта можно при помощи функции type:

>>> type(2) >>> type(‘2’) >>> type(2.0)

Обратите внимание —type является функцией, аргументы функции указываются в скобках после ее имени.

Вот список основных операций для чисел:
A + B — сумма;
A - B — разность;
A * B — произведение;
A / B — частное;
A ** B — возведение в степень. Полезно помнить, что квадратный корень из числа x — это x ** 0.5, а корень степени n это x ** (1 / n).

Есть также унарный вариант операции -, то есть операция с одним аргументом. Она возвращает число, противоположное данному. Например: -A.

В выражении может встречаться много операций подряд. Как в этом случае определяется порядок действий? Например, чему будет равно 1 + 2 * 3 ** 1 + 1? В данном случае ответ будет 8, так как сначала выполняется возведение в степень, затем – умножение, затем — сложение.

Более общие правила определения приоритетов операций такие:

  1. Выполняются возведения в степень справа налево, то есть 3 ** 3 ** 3 это .
  2. Выполняются унарные минусы (отрицания).
  3. Выполняются умножения и деления слева направо. Операции умножения и деления имеют одинаковый приоритет.
  4. Выполняются сложения и вычитания слева направо. Операции сложения и вычитания имеют одинаковый приоритет.

Основные операции над строками:
A + B — конкатенация;
A * n — повторение n раз, значение n должно быть целого типа.

Преобразование типов

Иногда бывает полезно целое число записать, как строку. И, наоборот, если строка состоит из цифр, то полезно эту строку представить в виде числа, чтобы дальше можно было выполнять арифметические операции с ней. Для этого используются функции, одноименные с именем типа, то есть int, float, str. Например, int('123') вернет целое число 123, а str(123) вернет строку '123'.

>>> str(2 + 2) * int('2' + '2') '4444444444444444444444'

Результатом будет строка из числа 4, повторенная 22 раза.

Запуск простейшей программы

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

a = 179 b = 197 c = (a ** 2 + b ** 2) ** 0.5 print (c)

Здесь мы используем переменные — объекты, в которых можно сохранять различные (числовые, строковые и прочие) значения. В первой строке переменной a присваивается значение 179, затем переменной b присваивается значение 971, затем переменной c присваивается значение арифметического выражения, равному длине гипотенузы.

После этого значение переменной c выводится на экран.

Сохраните этот текст в файле с именем hypot.py . Запустите терминал, перейдите в каталог, где лежит этот файл и выполните эту программу:

$ python3 hypot.py

Интерпретатор языка Питон, запущенный с указанием имени файла, запускается не в интерактивном режиме, а выполняет ту последовательность команд, которая сохранена в файле. При этом значения вычисленных выражений не выводятся на экран (в отличии от интерактивного режима), поэтому для того, чтобы вывести результат работы программы, то есть значение переменной c , нам понадобится специальная функция print .

Ввод данных: функция input()

Пример выше неудобен тем, что исходные данные для программы заданы в тексте программы, и для того, чтобы использовать программу для другого треугольника необходимо исправлять текст программы. Это неудобно, лучше, чтобы текст программы не менялся, а программа запрашивала бы у пользователя данные, необходимые для решения задачи, то есть запрашивала бы значения двух исходных переменных a и b . Для этого будем использовать функцию input() , которая считывает строку с клавиатуры и возвращает значение считанной строки, которое сразу же присвоим переменым a и b :

a = input() b = input()

Правда, функция input возвращает текстовую строку, а нам нужно сделать так, чтобы переменные имели целочисленные значения. Поэтому сразу же после считывания выполним преобразование типов при помощи фунцкии int , и запишем новые значения в переменные a и b .

a = int(a) b = int(b)

Можно объединить считывание строк и преобразование типов, если вызывать функцию int для того значения, которое вернет функция input :

a = int(input()) b = int(input())

Далее в программе вычислим значение переменной c и выведем результат на экран.

Теперь мы можем не меняя исходного кода программы многократно использовать ее для решения различных задач. Для того нужно запустить программу и после запуска программы ввести с клавиатуры два числа, нажимая после кажого числа клавишу Enter . Затем программа сама выведет результат.

Вывод данных: функция print()

Функция print может выводить не только значения переменных, но и значения любых выражений. Например, допустима запись print(2 + 2 ** 2) . Также при помощи функции print можно выводить значение не одного, а нескольких выражений, для этого нужно перечислить их через запятую:

a = 1 b = 2 print(a, '+', b, '=', a + b)

В данном случае будет напечатан текст 1 + 2 = 3 : сначала выводится зание переменной a , затем строка из знака “+”, затем значение переменной b , затем строка из знака “=”, наконец, значение суммы a + b .

Обратите внимание, выводимые значение разделяются одним пробелом. Но такое поведение можно изменить: можно разделять выводимые значения двумя пробелами, любым другим символом, любой другой строкой, выводить их в отдельных строках или не разделять никак. Для этого нужно функции print передать специальный именованный параметр, называемый sep , равный строке, используемый в качестве разделителя (sep — аббревиатура от слова separator, т.е. разделитель). По умолчанию параметр sep равен строке из одного пробела и между значениями выводится пробел. Чтобы использовать в качестве разделителя, например, символ двоеточия нужно передать параметр sep , равный строке ‘:’ :

print(a, b, c, sep = ':')

Аналогично, для того, чтобы совсем убрать разделитель при выводе нужно передать параметр sep , равный пустой строке:

print(a, '+', b, '=', a + b, sep = '')

Для того, чтобы значения выводились с новой строке, нужно в качестве параметра sep передать строку, состоящую из специального символа новой строки, которая задается так:

print(a, b, sep = '\n')

Символ обратного слэша в текстовых строках является указанием на обозначение специального символа, в зависимости от того, какой символ записан после него. Наиболее часто употребляется символ новой строки ‘\n’ . А для того, чтобы вставить в строку сам символ обратного слэша, нужно повторить его два раза: ‘\\’ .

Вторым полезным именованным параметром функции print является параметр end , который указывает на то, что выводится после вывода всех значений, перечисленных в функции print . По умолчанию параметр end равен ‘\n’ , то есть следующий вывод будет происходить с новой строки. Этот параметр также можно исправить, например, для того, чтобы убрать все дополнительные выводимые символы можно вызывать функцию print так:

print(a, b, c, sep = '', end = '')

Целочисленная арифметика

Для целых чисел определены ранее рассматривавшиеся операции + , — , * и ** . Операция деления / для целых чисел возвращает значение типа float . Также функция возведения в степень возвращает значение типа float , если показатель степени — отрицательное число.

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

>>> 17 // 3 5 >>> -17 // 3 -6

Другая близкая ей операция: это операция взятия остатка от деления, обозначаемая % :

>>> 17 % 3 2 >>> -17 % 3 1

Как ввести числа в 1 строке

Python 3 — это современный язык, на котором просто и приятно писать программы.

Для печати значений в Питоне есть функция print(). Внутри круглых скобок через запятую мы пишем то, что хотим вывести. Вот программа, которая делает несколько вычислений:

print(5 + 10) print(3 * 7, (17 - 2) * 8) print(2 ** 16) # две звёздочки означают возведение в степень print(37 / 3) # один слэш — это деление с ответом-дробью print(37 // 3) # два слэша считают частное от деления нацело # это как операция div в других языках print(37 % 3) # процент считает остаток от деления нацело # это как операция mod в других языках

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

Вот программа, которая считывает имя пользователя и приветствует его:

Пётр
print('Как вас зовут?') name = input() # считываем строку и кладём её в переменную name print('Здравствуйте, ' + name + '!')

Мы будем писать программы, которые считывают данные, перерабатывают их и выводят какой-то результат. При запуске на компьютере такие программы считывают данные, которые пользователь вводит с клавиатуры, а результат выводят на экран.

Попробуем написать программу, которая считывает два числа и выводит их сумму. Для этого считаем два числа и сохраним их в переменные a и b , пользуясь оператором присваивания = . Слева от оператора присваивания в программах на Питоне ставится имя переменной — например, строка из латинских букв. Справа от оператора присваивания ставится любое выражение. Имя станет указывать на результат вычисления выражения. Проиграйте эту программу и посмотрите на результаты её работы:

a = input() b = input() s = a + b print(s)

Мы видим, что программа выводит 57 , хотя в реальной жизни 5 + 7 будет 12 . Это произошло потому, что Питон в третьей строчке «сложил» две строки, а не два числа. В Питоне две строки складываются так: к первой строке приписывается вторая.

Обратите внимание, что в визуализаторе содержимое переменных a и b заключено в кавычки. Это означает, что в a и b лежат строки, а не числа.

В Питоне все данные называются объектами. Число 2 представляется объектом «число 2», строка ‘hello’ – это объект «строка ‘hello’ ».

Каждый объект относится к какому-то типу. Строки хранятся в объектах типа str , целые числа хранятся в объектах типа int , дробные числа (вещественные числа) — в объектах типа float . Тип объекта определяет, какие действия можно делать с объектами этого типа. Например, если в переменных first и second лежат объекты типа int , то их можно перемножить, а если в них лежат объекты типа str , то их перемножить нельзя:

first = 5 second = 7 print(first * second) first = '5' second = '7' print(first * second)

Чтобы преобразовать строку из цифр в целое число, воспользуемся функцией int() . Например, int(’23’) вернет число 23 .

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

a = int(input()) b = int(input()) s = a + b print(s)

Ввод нескольких переменных в одной строке

Добрый день. Можно ли сделать так, чтобы вместо списка вводилось 3 разных переменных, но в одной строке?
Так не получается
a, b, c = int(input())
Нужно ввести 3 числа в одной строке без использования списка, массива и т.п. Чтобы каждое число записалось в отдельную переменную.
Допустим
a, b, c = int(input())
Я ввожу «5 2 3»
И при
print(a)
print(b)
print(c)
пользователь получает
5
2
3

Лучшие ответы ( 3 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Ввод нескольких переменных в одной строке
Всем здравствуйте. Не давно начал изучать питон и решил порешать задачи. И буквально на первой.

Инициализация нескольких переменных в одной строке
Привет. Иногда нужно инициализировать переменные, иначе программа не запускается. Я сейчас так.

Ввод нескольких значений в одной строке
#include <iostream> #include <vector> using namespace std; int main() < int count; cin >>.

Как можно сделать ввод 3 переменных в одной строке?
Как можно сделать ввод 3 переменных в одной строке, чтобы программа была компактней? using.

Написать программу, которая обеспечивает ввод значений дробных переменных (типа float) u и r. Предполагается, что пользователь будет набирать числа в одной строке.
Немного непонятная задачка. Тут пользователь может вводить данные "значение пробел значение".

Эксперт по компьютерным сетям

5890 / 3348 / 1034
Регистрация: 03.11.2009
Сообщений: 9,977

Лучший ответ

Сообщение было отмечено corpdid как решение

Решение

a, b, c = map(int, input().split())

Ввод чисел в одну строку

Ниже представлена задача. Помогите разобраться. Не получается вывести в консоль Визуал Студио в одну строку ввод и вывод
чтобы получилось именно так:
Введите три различных целых числа: 13 27 14.
Получается так:
Введите три различных числа : 13
27
14.
Где ошибка никак не пойму.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
/*Напишите программу, которая вводит три целых числа * с клавиатуры и печатает сумму, среднее значение * произведение, меньшее и большее из этих чисел. * Диалог на экране должен выглядеть следующим * образом: * Введите три различных целых числа: 13 27 14 * сумма равна 54 * среднее значение равно 18 * произведение равно 4914 * наименьшее равно 13 * наибольшее равно 27 */ #include using namespace std; int main() { setlocale(LC_ALL, "rus"); int a, b, c; cout  "Введите три различных целых числа :"; cin >> a >> b >> c; cout  "Сумма равна : "" "  a + b + c; cout  "\n"; cout  "Среднее значение равно : "" "  (a + b + c) / 3; cout  "\n"; cout  "Произведение равно : "" "  a * b * c; cout  "\n"; if (a  b && a  c) { cout  "Наименьшее равно : "" "  a; cout  "\n"; } if (b  a && b  c) { cout  "Наименьшее равно : "" "  b; cout  "\n"; } if (c  a && c  b) { cout  "Наименьшее равно : "" "  c; cout  "\n"; } if (a > b && a > c) { cout  "Наибольшее равно : "" "  a; cout  "\n"; } if (b > a && b > c) { cout  "Наибольшее равно : "" "  b; cout  "\n"; } if (c > a && c > b) { cout  "Наибольшее равно : "" "  c; cout  "\n"; } if (a == b == c) { cout  """\n"; } system("pause"); return 0; }

Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как сделать ввод в одну строку?
как сделать ввод в одну строку, через нажатие ентера и отступа на N расстояние, такого типа.

Ввод переменных через пробел в одну строку
на олимпиаде по информатике сегодня лажанулся капец как. хотел написать все на c++, пришлось.

Ввод чисел в одну строку
Здравствуйте, подскажите пожалуйста, как вводить числа в одну строку. если писать так: int array.

1980 / 1098 / 693
Регистрация: 25.04.2016
Сообщений: 3,120

Лучший ответ

Сообщение было отмечено igorent как решение

Решение

так и вводите 13 27 14 — три числа одной строкой через пробел

1 2 3 4 5 6 7 8 9 10 11 12 13 14
#include int main (void) { int a, b, c; std::cout  "Введите три различных целых числа: "; std::cin >> a >> b >> c; std::cout  "Сумма равна: "  a+b+c  std::endl  "Среднее значение равно: "  (a+b+c)/3.0  std::endl  "Произведение равно: "  a*b*c  std::endl  "Наименьшее равно: "  std::min(std::min(a, b), c)  std::endl  "Наибольшее равно: "  std::max(std::max(a, b), c)  std::endl; system("pause"); return 0; }

Введите три различных целых числа: 13 27 14
Сумма равна: 54
Среднее значение равно: 18
Произведение равно: 4914
Наименьшее равно: 13
Наибольшее равно: 27

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *