关于字符串索引的简单Python问题

2024-09-29 22:31:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有字符串:

119.95119.95

此字符串并不总是相同的,并且会根据输入而变化。然而,它总是有两个全站,我们总是只想要2.dp

我试图实现的输出是:

119.95,119.95

我相信这很简单。我尝试使用:

'{:,.2f}'.format(int(price))

但是,我尝试的迭代都返回了错误


Tags: 字符串format错误priceintdp全站
2条回答

不能将上述字符串直接转换为格式化整数

请看,该字符串中有2个小数,它们不能出现在任何数字中,因此它必须给出错误

现在,要从输入字符串中获得预期结果,以下是方法:

  1. 查找第一个.的索引
  2. 获取在索引+2之前找到的第一个数字
  3. 第二个数字将是剩余的字符串

@MateenUlhaq在上述评论中也做了同样的事情

以下代码是自解释的,您可以使用:

myString = "119.95119.95"
firstDotIndex = myString.find(".")

number1 = myString[: firstDotIndex+3]
number2 = myString[firstDotIndex+3 : ]

print("{0}, {1}".format(number1, number2))
s = "119.95119.95"

获取第一个.的索引并添加3以获取第二个数字中的第一个字符:

i = s.find(".") + 3

使用索引对字符串进行切片:

first = float(s[:i])
second = float(s[i:])

使用float()可以确保片实际上是浮点数。如果转换失败,将引发ValueError异常

打印切片并在它们之间添加,

print(f"{first:.2f},{second:.2f}")

相关问题 更多 >

    热门问题