我想编写一个程序,将输入数量限制为仅仅7,8,9位数,然后在每3位数后打印输出空格 例如:
input(1234567)
output(1 234 567)
答案 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开始)。
如果您有任何与代码相关的问题,请发布代码并提出具体问题。