不确定我在这里做错了什么(python3)

时间:2019-09-21 03:18:50

标签: python-3.x if-statement

首先,我想问用户输入重量,然后问他们输入值是公斤还是磅。如果他们以公斤为单位输入重量,我想以磅为单位输出重量,反之亦然。

weight = input('Enter your weight: ')
unite = input('In kg(k) or lbs(l)? ')
k = 2.2046/float(weight)
l = 0.453592*float(weight)

if weight and k:
  print(l ,'lbs')
elif weight and l:
  print(k ,'kg')

这是我的工作。有人可以解释为什么它的输出值总是显示“ lbs”吗?最初选择(l)时似乎无法显示“ kg”,但转换很好

1 个答案:

答案 0 :(得分:0)

它始终显示“ lbs”,因为第一个条件始终为真。

if weight and k:

它只是检查权重和k值是否同时存在,如果执行,则执行if条件。

因此将条件更改为:

if weight and unite=='k':
  print(l ,'lbs')
elif weight and unite=='l':
  print(k ,'kg')

查看此代码:

weight = input('Enter your weight: ')
unite = input('In kg(k) or lbs(l)? ').strip()
k = 2.2046/float(weight)
l = 0.453592*float(weight)
if weight and unite=='k':
  print(l ,'lbs')
elif weight and unite=='l':
  print(k ,'kg')

如果用户在提供输入的同时提供空间,则将无法使用。因此,我使用strip()删除了空间。

 unite = input('In kg(k) or lbs(l)? ').strip()