if bool(re.search(r'\d', oz)) == 1:
pounds, ounces = oz.split(':')
pounds = float(pounds)
ounces = float(ounces)
pounds = pounds * 16
oz = pounds + ounces
oz = float(oz)
print(oz)
else:
print("You must enter a digit\n")
main()
所以,当我使用split将用户输入拆分为lb和oz时,输入就变成了一个字符串。有没有什么分裂函数可以处理整数和浮点数?这种做法似乎有点阴暗。什么是更干净、更优雅的处理方式?你知道吗
你的密码很好。至少转换成float是好的。有很多问题是不相关的-你假设字符串是
number:number
,你称之为盎司磅(pounds = pounds * 16
这些不再是磅)等等。你知道吗像以前一样,转换为浮动是很好的。你知道吗
我会使用
list-comprehension
:它的效率和你的代码是一样的,但是看起来很整洁,我个人觉得它更干净。如果由于某种原因,
oz
字符串中会有更多的:
,那么它的伸缩性也会更大(我说,unpacking
需要修改,所以它的伸缩性会更大)。你知道吗作为旁注,你可以把你的
code
的整个部分塞进一个one-liner
,如果你不必把pounds
乘以16
,这将是非常整洁的sum
。这并不是说这是不可能的(下文),但它取决于你喜欢什么!你知道吗试试这个:
map
实际对指定的iterable应用一个函数,在本例中是oz.split(':')
相关问题 更多 >
编程相关推荐