正在查找以浮点形式强制转换的python.split()类型函数
因此,当我使用split将用户输入拆分为lb和oz时,输入变成一个字符串。是否有任何类型的拆分函数可以处理整数和浮点数?这种做法似乎有点可疑。什么是一种更干净、更优雅的处理方式?我会使用正在查找以浮点形式强制转换的python.split()类型函数,python,Python,因此,当我使用split将用户输入拆分为lb和oz时,输入变成一个字符串。是否有任何类型的拆分函数可以处理整数和浮点数?这种做法似乎有点可疑。什么是一种更干净、更优雅的处理方式?我会使用列表理解: if bool(re.search(r'\d', oz)) == 1: pounds, ounces = oz.split(':') pounds = float(pounds) ounces = float(ounces) pou
列表理解
:
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()
它的效率和你的代码一样,但是看起来很整洁,我个人觉得它更干净。如果出于某种原因,oz
字符串中会有更多的:
s,那么它的可伸缩性也会更高(我说的更多是因为解包
需要修改)
作为旁注,您可以将
代码的整个部分塞进一行代码中,如果您不必将磅数
乘以16,那么在生成器上使用总和
将非常整洁。这并不是说不可能(见下文),而是取决于你喜欢什么
pounds, ounces = [float(i) for i in oz.split(':')]
试试这个:
oz = float(a[:a.index(":")]) + float(a[a.index(":")+1:]) * 16
map
实际在指定的iterable上应用一个函数,在本例中,该函数是oz.split(“:”)
您的代码很好。至少转换为float还可以。有许多问题是不相关的-您假设字符串是一个number:number
,称为盎司磅(磅=磅*16
这些不再是磅)等等
与以往一样,转换为浮动是可以的。同意您的评估。我打算把它清理干净。这是清理工作的一部分,因为现在天气很恶劣。:)
pounds, ounces = map(float, oz.split(':'))