python-3.x - 不知道我在这里做错了什么(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”,但转换很好
解决方案
它始终显示“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()
推荐阅读
- amazon-web-services - 使用 SSM 的 CloudWatch 代理,其中实例未显示在托管实例中
- c# - 为什么此应用程序尝试连接到 SQL Server 而不是 SQLite?
- xamarin.forms - 如何在listview xamarin表单中实现复选框
- javascript - 使用带有 multiremote 的 WebDriverIO 在 chrome 和 firefox 上串行执行测试用例
- kotlin - 具有通量的 Thymeleaf StringTemplateResolver 不起作用
- java - Java程序未将对象保存到HashMap
- swift - NSTableRowView 在拖放操作期间未正确调用 DrawBackground
- vue.js - VueJs - 我怎么知道 DIV 的滚动条何时到达底部
- c# - 使用 asp.net MVC 持久化数据库更改
- firebase - Firebase 设置事务异常