正在查找以浮点形式强制转换的python.split()类型函数

正在查找以浮点形式强制转换的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

因此,当我使用split将用户输入拆分为lb和oz时,输入变成一个字符串。是否有任何类型的拆分函数可以处理整数和浮点数?这种做法似乎有点可疑。什么是一种更干净、更优雅的处理方式?

我会使用
列表理解

 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(':'))