Уведомления

Группа в Telegram: @pythonsu

#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
Репутация: +  253  -
Профиль   Отправить e-mail  

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

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



Офлайн

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

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

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

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



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

Офлайн

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

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить 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
Сообщения: 9992
Репутация: +  857  -
Профиль   Отправить 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
Репутация: +  253  -
Профиль   Отправить e-mail  

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

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

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



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

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version