У меня странная проблема с питоном, когда я пытаюсь использовать pycharm

1

Я написал конвертер длины с питоном, вот коды:

active = True
while active:
    option = input('please choose:\na:centimetre to inch \nb:inch to centimetre:')
    if option == "a":
        centimetre = input('Please enter centimetre:')
        centimetre= float (centimetre)
        inch = centimetre / 2.54
        print(str(centimetre) + ' centimetre equals' + str(inch) + ' inches')

    elif option == "b": 
        inch = input('Please enter inch:')
        inch = float ( inch )
        centimetre = inch * 2.54
        print(str(inch) + ' inch equals ' + str(centimetre) + ' centimetre')

    else:
        print("sorry you entered wrong option。please enter 'a'or'b': ")
        continue  

    status = input('continue? yes/no :')
    if status == 'no':
        active = False

Это нормально, когда эти коды работают с notepad++ и http://www.pythontutor.com/

но когда я пытаюсь использовать pycharm, он получил ошибку:

line 6, in <module>
centimetre= float (centimetre)
ValueError: could not convert string to float:

не знаю, где проблемы. Кто-нибудь встретил эту проблему?

  • 1
    Я предполагаю, что они настроены на использование разных версий Python. Какие из них вы используете?
  • 0
    pi_float = float(pi_string) ССЫЛКА
Показать ещё 3 комментария
Теги:
string
floating-point
input

3 ответа

0

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

  • 0
    Одно слово (наверное): кодировка :-)
0

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

Вам нужно заменить это или поймать ошибку (или оба вместе). Я предлагаю:

try:
    centimetre = float(centimetre.replace(',', '.'))
except ValueError:
    print('Input is not a valid number or in invalid format!')
  • 1
    Это наверное правильно
  • 0
    Я сам попробовал: >>> a = input () >>> a '1,3' >>> float (a) Traceback (последний вызов был последним): файл "<интерактивный ввод>", строка 1, в <module> ValueError: не удалось преобразовать строку в число с плавающей точкой: '1,3'
-1

Попробуй это:

centimetre = float(input('Please enter centimetre:'))
  • 1
    Вопрос повторен: stackoverflow.com/questions/38350482/…
  • 0
    Нет разницы, если сначала сохранить его в переменную, а затем преобразовать или преобразовать напрямую
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню