连接新字符串中的字符然后将它们转换为整数

时间:2016-12-07 19:14:04

标签: python python-3.x

number="0123,456,789,"
cleanedNumber=''

for i in range(0,len(number)):
    if number[i] in '0123456789':
        cleanedNumber = cleanedNumber + number[i]


newNumber = int(cleanedNumber)
print("The number is {}".format(newNumber))

我不明白为什么我们使用变量cleanedNumber=''

3 个答案:

答案 0 :(得分:1)

for循环中,number中存储的原始字符串逐个字符循环。

cleanedNumber字符串仅用于存储数字。不是数字的所有内容(即0到9之间的字符)都不会添加到cleanedNumber字符串中。在for循环结束时,只有数字字符才会保留在此新变量中。

最后,它被转换为整数并显示。

答案 1 :(得分:1)

比这更容易。只是做:

newNumber = int(filter(str.isdigit, number))

或者,或者:

newNumber = int(number.replace(",", ""))

答案 2 :(得分:0)

原始代码只是创建一个新的字符串变量来存储"已清理的"或"清洁"原始输入的版本。

我们从一个字符串开始:

number="0123,456,789,"
然后发起人决定复制"数字"到另一个字符串变量:

cleanedNumber=''

为实现这一目的,编写for循环只是为了读取每个字符串成员:

  for i in range(0,len(number)):
    if number[i] in '0123456789':
        cleanedNumber = cleanedNumber + number[i]

对于每个" i"在从0到原始字符串长度的范围内,我们检查" i"的值是否为0。来自"数字"字符串变量出现在' 0123456789'中。如果它存在,那么我们将它复制到" cleaningNumber"变量

最后,代码将其转换为int并打印出来:

newNumber = int(cleanedNumber)
print("The number is {}".format(newNumber))

虽然有更简单的方法来编写这段代码。