2017-03-05 22 views
-6

の文字数例えば
制限私は、その後、すべての3桁の数字の後にスペースを持つ出力を印刷7,8,9桁に入力の数を制限プログラムを書きたい入力

input(1234567) 
output(1 234 567) 
+0

は、家庭の仕事のように見えます。これまでに試したことを教えてください。 –

+0

ここには2つの質問があるようです。あなたの「割り当て」を小さなステップに分けてください。 –

+0

http://mattgemmell.com/what-have-you-tried/ –

答えて

0

一般に、整数を文字列に変換し、最後から最後まで繰り返す必要があります。新しいStringを作成し、その新しい番号を毎回追加します。毎回カウンタが割り切れるトラフ3 (counter%3 == 0)あなたは1つの空白を追加する必要があります(カウンターは1から始まります)。

コードに関する質問がある場合は、コードを投稿して特定の質問をしてください。

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桁の数字を使用している場合、それは厄介かもしれません。例えば、1 000 000 0

として10000000が出力されますが、私はそれに合った少し私のコードを変更:

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) 
+0

"1 234 567"の代わりに "123 456 7"が出力されるので、戻り値のdigitStrを使用して出力を構築する必要があります... –

+0

私のコードは "1 234 567"を期待通りに出力します。最初の要素はi = 0、0%3 = 0なので、最初の要素の後に ''を追加します。 –

+0

私の悪い、私は '私はインデックスの代わりに値ですと思っていた。それは私のタイムゾーンで午前中に1だから私はちょうど寝るだろうと思う... –

関連する問題