首页 > 解决方案 > 不知道我在这里做错了什么(python3)

问题描述

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

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”,但转换很好

标签: python-3.xif-statement

解决方案


它始终显示“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() 

推荐阅读