Python-код не работает должным образом и не показывает ошибки в VS Code - PullRequest
1 голос
/ 23 марта 2019

Screenshot of Code & output Я использую код Vs (Charm не работал гладко на моем ПК) для разработки на python, он завис после отладки, не показывая ошибок или вывода.

Я искал в переполнении стека подходящее решение

weight = int(input("Enter weight: "))
unit   = input("(K)kilograms or (P)pounds? ")

if unit.upper == "P":
    (weight*=1.6)
    print("Weight in kilograms: " + weight)
else if Unit=="K":
    (weight*=1.6)
    print("Weight in pounds: " + weight)
else:
    print("ERROR INPUT IS WRONG!")

Я ожидаю, что он примет ввод и выдаст преобразованный вывод

1 Ответ

1 голос
/ 23 марта 2019

Ваш скрипт:

  • отсутствует ()
  • использует неизвестное имя Unit
  • пытается добавить строку и цифры: print("Weight in pounds: " + weight)
  • неверно рассчитывает фунт
  • использует () где не применимо
  • использует else if ... :

weight = int(input("Enter weight: "))
unit   = input("(K)kilograms or (P)pounds? ")

if unit.upper == "P":                         # unit.upper()
    (weight*=1.6)                             # ( ) are wrong, needs /
    print("Weight in kilograms: " + weight)   # str + float?
else if Unit=="K":                            # unit  ... or unit.upper() as well
    (weight*=1.6)                             # ( ) are wrong
    print("Weight in pounds: " + weight)      # str + float
else:
    print("ERROR INPUT IS WRONG!")

Вы можете просто использовать .upper() непосредственно со своим вводом:

# remove whitespaces, take 1st char only, make upper 
unit   = input("(K)kilograms or (P)pounds? ").strip()[0].upper() 

Еще лучше, наверное:

weight = int(input("Enter weight: "))
while True:
    # look until valid
    unit = input("(K)kilograms or (P)pounds? ").strip()[0].upper()
    if unit in "KP":
        break
    else: 
        print("ERROR INPUT IS WRONG! K or P")

if unit == "P":                          
    weight /= 1.6                           # fix here need divide
    print("Weight in kilograms: ", weight)  # fix here - you can not add str + int
else:  
    weight *= 1.6                        
    print("Weight in pounds: ", weight) 

Вы должны посмотреть в str.format:

    print("Weight in pounds: {:.03f}".format(weight))  # 137.500

см. Например Использование мини-языка спецификации формата Python для выравнивания поплавков

...