限制输入中的字符数

时间:2017-03-05 17:42:43

标签: python

我想编写一个程序,将输入数量限制为仅仅7,8,9位数,然后在每3位数后打印输出空格 例如:

input(1234567)
output(1 234 567)

2 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

digits = input("Enter your input: ")

while len(str(digits)) > 9 or len(str(digits)) < 7:
    digits = input("Enter your input: ")

digitsStr = str(digits)
output = ''

for i in range(0,len(digitsStr)):

    output += digitsStr[i]
    if i % 3 == 0:
        output += ' '

print(output)

修改 如果你使用该代码使用8或9位数,它可能会变得混乱;例如,10000000将输出为1 000 000 0。

我修改了我的代码以适应:

digits = input("Enter your input: ")

while len(str(digits)) > 9 or len(str(digits)) < 7:
    digits = input("Enter your input: ")

digitsStr = str(digits)
output = ''

#This function acts like Switch..Case, returns value 1 as a default if x is
#Not in the dict

def fn(x, i):
    return {7: i, 8: i-1, 9: i+1}.get(x, 1);

for i in range(0,len(digitsStr)):
        output += digitsStr[i]

        if fn(len(digitsStr), i) % 3 == 0:            
            output += ','

output = output[:-1]
print(output)

答案 1 :(得分:0)

通常,您只需要将整数转换为字符串,然后从末尾到开头迭代它。您创建一个新的String,并在每次向其添加新数字时附加。每当你的计数器可以分为3 (counter%3 == 0)时,你需要附加一个空格(根据你的计数器从1开始)。

如果您有任何与代码相关的问题,请发布代码并提出具体问题。