Перейти к содержимому

Как ввести числа через запятую в питоне

  • автор:

Как реализовать ввод двух чисел в одну строку через запятую? [дубликат]

нужно ввести два числа 0,0 как сделать такой строчный ввод через запятую ,причем чтобы в каждую переменную записывалось соответствующее число?

Отслеживать

задан 2 янв 2021 в 15:26

833 1 1 золотой знак 10 10 серебряных знаков 31 31 бронзовый знак

Возможный дубликат вопроса: Как ввести в одной строке n переменных

2 янв 2021 в 15:31

@Sadykhzadeh скажите , в чем интересно дубликат? мне нужно просто реализовать ввод в строку двух переменных через ЗАПЯТУЮ, а то что предложили Вы, там просто вводе определенного кол-ва переменных ,зависящих от введенного числа(кол-ва раз)

Python-сообщество

[RSS Feed]

  • Начало
  • » Python для новичков
  • » Ввод float с запятой или точкой

#1 Май 26, 2016 16:22:30

xenear Зарегистрирован: 2016-05-26 Сообщения: 1 Репутация: 0 Профиль Отправить e-mail

Ввод float с запятой или точкой

r = float(input("Сопротивление испарителя (ом)")) u = 4.1 i = u / r i_string = "%.2f" % i print ("----------------------") print ("Сила тока:", i_string, "А") power = (4.1**2)/r power_string = "%.2f" % power print ("Мощность:", power_string, "Вт") if i  25: print ("Это безопасная намотка!") print ("----------------------") else: print ('Эта намотка не безопасна для одного 18650!') print ("----------------------") M3 = float(input("Длительность затяжки (сек)")) A3 = float(input("Емкость аккумулятора (мАч)")) puff = ((((A3/1000)/i)*60)*60)/M3 puff_string = "%.2f" % puff print ("Количество затяжек:", puff_string) 

Подскажите, как сделать так, что бы можно было вводить не только число с точкой, но и с запятой?

attachment

Прикреплённый файлы:
Screenshot_2.jpg (43,5 KБ)

#2 Май 26, 2016 16:34:45

Stright От: Кострома Зарегистрирован: 2015-01-20 Сообщения: 139 Репутация: 16 Профиль Отправить e-mail

Ввод float с запятой или точкой

r = float(input("Сопротивление испарителя (ом)").replace(',', '.')) 

#3 Май 26, 2016 21:11:05

doza_and От: Зарегистрирован: 2010-08-15 Сообщения: 4138 Репутация: 252 Профиль Отправить e-mail

Ввод float с запятой или точкой

xenear
не только число с точкой, но и с запятой?

) Дополнительно замечу, КРАЙНЕ нежелательно чтобы пользователь мог вводить числа с запятой. Это нарушает огромное количество соглашений принятых при работе с ЭВМ. Человека который не видит разницы между 4.3 и 4,3 вообще нельзя допускать к работе с компьютером.

#4 Май 26, 2016 22:11:38

ZerG Зарегистрирован: 2012-04-05 Сообщения: 2441 Репутация: 70 Профиль Отправить e-mail

Ввод float с запятой или точкой

расскажите ето бухголтерии

Влодение рускай арфаграфией — это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Онлайн

#5 Май 26, 2016 23:00:20

doza_and От: Зарегистрирован: 2010-08-15 Сообщения: 4138 Репутация: 252 Профиль Отправить e-mail

Ввод float с запятой или точкой

ZerG
расскажите ето бухголтерии

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

p.s.
судя по тексту программы она вроде не для бухгалтерии и не для редактора журнала.

Отредактировано doza_and (Май 26, 2016 23:01:16)

#6 Май 27, 2016 01:38:47

py.user.next От: Зарегистрирован: 2010-04-29 Сообщения: 9675 Репутация: 841 Профиль Отправить e-mail

Ввод float с запятой или точкой

xenear
Подскажите, как сделать так, что бы можно было вводить не только число с точкой, но и с запятой?

Нужно ввод вынести в отдельную функцию, которая принимает множество вводов и возвращает один правильный.

#7 Май 27, 2016 05:11:23

PooH От: Зарегистрирован: 2006-12-05 Сообщения: 1948 Репутация: 72 Профиль Отправить e-mail

Ввод float с запятой или точкой

doza_and
Дополнительно замечу, КРАЙНЕ нежелательно чтобы пользователь мог вводить числа с запятой. Это нарушает огромное количество соглашений принятых при работе с ЭВМ. Человека который не видит разницы между 4.3 и 4,3 вообще нельзя допускать к работе с компьютером.

Что за соглашения такие? Вообще то есть локаль и в ней задается и десятичный разделитель. Вот разделителя списка, к сожалению, в ней нет. Вы же не заставляете пользователя вбивать дату в американском формате?

Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

#8 Май 27, 2016 20:10:46

doza_and От: Зарегистрирован: 2010-08-15 Сообщения: 4138 Репутация: 252 Профиль Отправить e-mail

Ввод float с запятой или точкой

PooH
Вы же не заставляете пользователя вбивать дату в американском формате?

) Заставляю, правда не в американском. Это наверное наша специфика. В относительно больших проектах локаль посылается в пень, Поскольку у разных пользователей локаль настроена по разному, а практически все данные передаются в виде файлов, использование запятых в качестве разделителей убъет все и мгновенно.
Дата время делаются похоже на str(datatime), только разделитель в годах по проекту обычно точка. Но коды практически все понимают любой разделитель. Русский или американский стандарт неудобен, поскольку почти все файлы это времянные ряды в которых первая колонка время. Все разработчики и пользователи активно опираются на то, что в этом случае YYYY.mm.DD HH:MM:SS.mks UTC лексиграфическая сортировка и сортировка по времени совпадают.

🙂 Миллион локальных форматов описывающих одинаковые сущности и ничем практически не отличающиеся, это зло которое надо истреблять всеми силами.

Отредактировано doza_and (Май 27, 2016 20:13:10)

Как преобразовать строку в число с плавающей запятой в Python

В Python есть различные функции преобразования типов, которые напрямую меняют один тип данных на другой. В этой статье мы расскажем о том, как преобразовать строку в число с плавающей запятой.

Зачем вообще може понадобиться такое преобразование? В Python, когда входные данные получаются в результате чтения или записи файла или выполнения какой-либо другой операции с файлом, ввод мы получаем в виде строковой переменной. Даже если мы запрашивали число с плавающей запятой, метод input() получает входные данные в виде строки. Поэтому для дальнейшей работы с нужными нам числами придется сначала привести string к float.

Использование метода float()

Чтобы преобразовать строку в число с плавающей запятой, в Python используется функция float(). Эта функция принимает только один параметр — строку или целое число. Если аргументы не переданы, метод возвращает 0.0 .

Если входная строка имеет аргументы за пределами диапазона чисел с плавающей запятой, вы получите ошибку OverflowError .

Для реализации следующих скриптов на Python установите сам Python, а также подходящую IDE (Pycharm, Jupiter, Spyder и т.д.). Создайте новый файл, вставьте туда код и запустите его.

string = '3.4567' number = float(string) print('Float Value is', number) # Output: # Float Value is 3.4567

В данном примере мы берем строку «3.4576» . Мы конвертируем ее, передавая в функцию float(). Дальше строка преобразуется в число с плавающей запятой и возвращается нам.

Как преобразовать строку в число с плавающей запятой, если в строке есть лишние запятые

В следующем примере мы работаем со строкой «3,2.759» . В данной строке есть число, разделенное запятой и точкой.

Важно отметить, что в Python десятичная часть отделяется с помощью точки. И в данном случае запятая – это просто лишний символ, который добавляет нам трудностей при переводе числа из строкового типа в вещественный.

Преобразовать такую строку в число с плавающей запятой сложнее. Вызов функции float() напрямую приведет нас к ошибке. Поэтому, прежде чем вызвать функцию float(), нам нужно избавиться от лишней запятой в строке.

Запятую мы удалим из строки с помощью функции replace(), заменив ее на пустую строку.

string = '3,2.759' number = float(string.replace(',', '')) print('Float Value is', number) # Output: # Float Value is 32.759

После удаления запятой из строки значение нашей строки будет «32.759» . Далее мы можем применить метод float(), чтобы получить число вещественного типа.

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

Допустим, у нас есть список, содержащий числа в строковом формате. Чтобы преобразовать все эти элементы в числа с плавающей запятой, мы перебираем список в цикле for . Каждый элемент мы преобразуем из строкового в вещественный. Делается это при помощи функции float().

str = ['12.23', '45.78', '69.34', '38.65'] number = [] for item in str: number.append(float(item)) print(number) # Output: # [12.23, 45.78, 69.34, 38.65]

В данном примере у нас есть список [‘12.23’, ‘45.78’, ‘69.34’, ‘38.65’] . Мы создаем пустой список number , куда добавим наши числа в формате float. Далее мы используем цикл for для добавления каждого элемента из исходного списка в список number . При этом перед добавлением мы передаем в функцию float() каждый элемент, чтобы преобразовать его из строки в число с плавающей запятой.

В итоге мы получим новый список number , состоящий из исходных элементов, но только теперь это уже не строки, а числа с плавающей запятой.

Задание определенной точности

Иногда нам нужно указать количество знаков после запятой в числе. В такой ситуации мы используем все ту же функцию float(), а после нее — функцию format(), чтобы определить количество десятичных знаков в нашем числе.

В данном примере мы работаем со строкой «6.759104» . Нам нужно преобразовать эту строку в число с плавающей запятой и оставить только 4 цифры после запятой.

str = '6.759104' number = float(str) result = ''.format(number) print(result) # Output: # 6.7591

Здесь метод format() используется для определения количества десятичных знаков в числе с плавающей запятой. В данном случае в исходном числе после запятой больше знаков, чем четыре, поэтому происходит округление. Однако если бы вдруг знаков оказалось меньше, то в конец просто бы добавились нули.

Таким образом, после применения функции format() мы получим 6.7591 .

Заключение

В Python бывают такие случаи, когда для выполнения требуемой операции необходимо заменить один тип данных на другой. Метод input() в Python возвращает нам объект типа string, поэтому для выполнения различных операций с пользовательскими данными необходимо приводить полученные строки к нужному типу. В этой статье мы рассмотрели приведение строк к типу float.

Важно отметить, что для приведения к типу float с помощью функции float() строка должна иметь значение с точкой. То есть преобразовать буквы в число с плавающей запятой не получится. Если попытаетесь, получите ValueError . Если элемент находится за пределами диапазона плавающей переменной, в выводе отображается ошибка OverflowError . Если функции float() не передан аргумент, возвращается 0.0 .

Надеемся, данная статья была для вас полезна. Успехов в написании кода!

Ввод и вывод данных

Мы уже встречались с функцией print() . Она отвечает за вывод данных, по-умолчанию на экран. Если код содержится в файле, то без нее не обойтись. В интерактивном режиме в ряде случаев можно обойтись без нее.

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

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

Можно сказать, что программа – это открытая система, которая обменивается чем-либо с внешней для нее средой. Если живой организм в основном обменивается веществом и энергией, то программа – данными, информацией.

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

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

>>> print(1032) 1032 >>> print(2.34) 2.34 >>> print("Hello") Hello

В скобках могут быть любые типы данных. Кроме того, количество данных может быть различным:

>>> print("a:", 1) a: 1 >>> one = 1 >>> two = 2 >>> three = 3 >>> print(one, two, three) 1 2 3

Можно передавать в функцию print() как непосредственно литералы (в данном случае «a:» и 1), так и переменные, вместо которых будут выведены их значения. Аргументы функции (то, что в скобках), разделяются между собой запятыми. В выводе вместо запятых значения разделены пробелом.

Если в скобках стоит выражение, то сначала оно выполняется, после чего print() уже выводит результат данного выражения:

>>> print("hello" + " " + "world") hello world >>> print(10 - 2.5/2) 8.75

В print() предусмотрены дополнительные параметры. Например, через параметр sep можно указать отличный от пробела разделитель строк:

>>> print("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", sep="-") Mon-Tue-Wed-Thu-Fri-Sat-Sun >>> print(1, 2, 3, sep="//") 1//2//3

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

>>> print(10, end="") 10>>>

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

>>> print(10, end='\n') 10 >>>

Однако, если надо отступить на одну дополнительную строку после вывода, то можно сделать так:

>>> print(10, end='\n\n') 10 >>>

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

Форматирование может выполняться в так называемом старом стиле или с помощью строкового метода format . Старый стиль также называют Си-стилем, так как он схож с тем, как происходит вывод на экран в языке C. Рассмотрим пример:

>>> pupil = "Ben" >>> old = 16 >>> grade = 9.2 >>> print("It's %s, %d. Level: %f" % (pupil, old, grade)) It's Ben, 16. Level: 9.200000

Здесь вместо трех комбинаций символов %s , %d , %f подставляются значения переменных pupil , old , grade . Буквы s , d , f обозначают типы данных – строку, целое число, вещественное число. Если бы требовалось подставить три строки, то во всех случаях использовалось бы сочетание %s .

Хотя в качестве значения переменной grade было указано число 9.2, на экран оно вывелось с дополнительными нулями. Чтобы указать, сколько требуется знаков после запятой, надо перед f поставить точку, после нее указать желаемое количество знаков в дробной части:

>>> print("It's %s, %d. Level: %.1f" % (pupil, old, grade)) It's Ben, 16. Level: 9.2

Теперь посмотрим на метод format() :

>>> print("This is a . It's .".format("ball", "red")) This is a ball. It's red. >>> >>> print("This is a . It's .".format("white", "cat")) This is a cat. It's white. >>> >>> print("This is a . It's .".format("a", "number", 1)) This is a 1. It's a number.

В строке в фигурных скобках указаны номера данных, которые будут сюда подставлены. Далее к строке применяется метод format() . В его скобках указываются сами данные (можно использовать переменные). На нулевое место подставится первый аргумент метода format() , на место с номером 1 – второй и т. д.

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

В новых релизах Питона появился третий способ создания форматированных строк – f-строки. Перед их открывающей кавычкой прописывается буква f . В самой строке внутри фигурных скобок записываются выражения на Python, которые исполняются, когда интерпретатор преобразует строку-шаблон в обычную.

>>> a = 10 >>> b = 1.33 >>> c = 'Box' >>> print(f'qty - , goods - ') qty - 10, goods - Box >>> print(f'price - ') price - 1.5

В примере число 5 после переменной a обозначает количество знакомест, отводимых под вывод значения переменной. В выражении b + 0.2:.1f сначала выполняется сложение, после этого значение округляется до одного знака после запятой.

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

За ввод в программу данных с клавиатуры в Python отвечает функция input . Когда вызывается эта функция, программа останавливает свое выполнение и ждет, когда пользователь введет текст. После этого, когда он нажмет Enter , функция input() заберет введенный текст и передаст его программе, которая уже будет обрабатывать его согласно своим алгоритмам.

Если в интерактивном режиме ввести команду input() , то ничего интересного вы не увидите. Компьютер будет ждать, когда вы что-нибудь введете и нажмете Enter или просто нажмете Enter . Если вы что-то ввели, это сразу же отобразиться на экране:

>>> input() Yes! 'Yes!'

Функция input() передает введенные данные в программу. Их можно присвоить переменной. В этом случае интерпретатор не выводит строку сразу же:

>>> answer = input() No, it is not.

В данном случае строка сохраняется в переменной answer , и при желании мы можем вывести ее значение на экран:

>>> answer 'No, it is not.'

При использовании функции print() кавычки в выводе опускаются:

>>> print(answer) No, it is not.

Куда интересней использовать функцию input() в скриптах – файлах с кодом. Рассмотрим такую программу:

name_user = input() city_user = input() print(f'Вас зовут . Ваш город ')

Использование функции input()

При запуске программы, компьютер ждет, когда будет введена сначала одна строка, потом вторая. Они будут присвоены переменным name_user и city_user . После этого значения этих переменных выводятся на экран с помощью форматированного вывода.

Вышеприведенный скрипт далек от совершенства. Откуда пользователю знать, что хочет от него программа? Чтобы не вводить человека в замешательство, для функции input предусмотрен специальный параметр-приглашение. Это приглашение выводится на экран при вызове input() . Усовершенствованная программа может выглядеть так:

name_user = input('Ваше имя: ') city_user = input('Ваш город: ') print(f'Вас зовут . Ваш город ')

Функция input() с аргументом-приглашением

Обратите внимание, что в программу поступает строка. Даже если ввести число, функция input() все равно вернет его строковое представление. Но что делать, если надо получить число? Ответ: использовать функции преобразования типов.

Преобразование ввода к числу

В данном случае с помощью функций int() и float() строковые значения переменных qty и price преобразуются соответственно в целое число и вещественное число. После этого новые численные значения присваиваются тем же переменным.

Программный код можно сократить, если преобразование типов выполнить в тех же строках кода, где вызывается функция input() :

qty = int(input("Сколько апельсинов? ")) price = float(input("Цена одного? ")) summa = qty * price print("Заплатите", summa, "руб.")

Сначала выполняется функция input() . Она возвращает строку, которую функция int() или float() сразу преобразует в число. Только после этого происходит присваивание переменной, то есть она сразу получает численное значение.

Практическая работа

  1. Напишите программу (файл user.py ), которая запрашивала бы у пользователя:
    — его имя (например, «What is your name?»)
    — возраст («How old are you?»)
    — место жительства («Where are you live?»)
    После этого выводила бы три строки:
    «This is имя »
    «It is возраст »
    «(S)he live in место_жительства »
    Вместо имя , возраст , место_жительства должны быть данные, введенные пользователем. Примечание: можно писать фразы на русском языке, но если вы планируете стать профессиональным программистом, привыкайте к английскому.
  2. Напишите программу (файл arithmetic.py ), которая предлагала бы пользователю решить пример 4 * 100 — 54. Потом выводила бы на экран правильный ответ и ответ пользователя. Подумайте, нужно ли здесь преобразовывать строку в число.
  3. Запросите у пользователя четыре числа. Отдельно сложите первые два и отдельно вторые два. Разделите первую сумму на вторую. Выведите результат на экран так, чтобы ответ содержал две цифры после запятой.

Примеры решения и дополнительные уроки в pdf-версии курса

X Скрыть Наверх

Python. Введение в программирование

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

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