我正在使用Vs代码(Charm无法在我的PC上正常工作)进行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!")
我希望它接受输入并提供转换后的输出
答案 0 :(得分:1)
您的脚本:
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
请参阅f.e. Using Python's Format Specification Mini-Language to align floats