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=''
?
答案 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))
虽然有更简单的方法来编写这段代码。