我是一名初学者程序员,我需要帮助从列表中提取数字并将它们转换回整数。该程序接受一个数字输入(如 305.67)并拆分为 305 和 67。附件是显示未完成部分的代码。任何帮助表示赞赏,谢谢!
def getDollarFormatText(dolAndCent):
separateDolCent = str(dolAndCent).rsplit('.',1)
return separateDolCent
我是一名初学者程序员,我需要帮助从列表中提取数字并将它们转换回整数。该程序接受一个数字输入(如 305.67)并拆分为 305 和 67。附件是显示未完成部分的代码。任何帮助表示赞赏,谢谢!
def getDollarFormatText(dolAndCent):
separateDolCent = str(dolAndCent).rsplit('.',1)
return separateDolCent
你是如此接近!
def getDollarFormatText(dolAndCent):
separateDolCent = [int(x) for x in str(dolAndCent).split('.')]
return separateDolCent
我在 [int(x) for x in dolAndCent.split('.')] 中所做的事情是列表推导式(列表推导式在 python中是一个非常常见的习语,一旦你熟悉了它们就非常强大)。本质上,它将您的字符串拆分为“。” (就像你之前所做的那样),然后创建一个小循环来遍历每个元素('.' 之前和之后的部分)。对于其中的每一个,它都转换为带有int
. 功能。
我改成rsplit
是split
因为你从字符串的哪一边分开并不重要,我删除了1
因为只有一个 '.' 反正。
作为旁注,没有理由创建separateDolCent
变量:
def get_dollar_format_text(dol_and_cent):
'''Returns the dollar and cents part of a money amount as
a two element list of integers, where the first element is
dollars and the second is cents.
'''
return [int(x) for x in str(dol_and_cent).split('.')]
请注意我如何将您的变量从 更改camelCase
为using_underscores
。这是 python 社区中函数和变量名称的首选。我还使用文档字符串向您的函数添加了一些文档。
如果您需要处理2
,3.4
或之类的数字345.4311
,可以对代码进行以下编辑:
def get_dollar_format_text(dol_and_cent):
'''Returns the dollar and cents part of a money amount as
a two element list of integers, where the first element is
dollars and the second is cents.
'''
return [int(x) for x in '{0:.2f}'.format(dol_and_cent).split('.')]
这样做是强制数字始终以两位小数格式化,因此2
变为2.00
、3.4
变为3.40
和345.4311
变为345.43
。这样,您总是得到两位小数的美分。
您快到了:
def getDollarFormatText(dolAndCent):
separateDolCent = map(int,str(dolAndCent).rsplit('.',1))
return separateDolCent
如何能够将每个整数保存到一个新变量中?
只需将它们提取到两个变量中(例如a
和b
):
def getDollarFormatText(dolAndCent):
a,b = map(int,str(dolAndCent).rsplit('.',1))
print a
print b
getDollarFormatText("5.70")
这将打印:
5
70