2017-09-24 7 views
0

を合計答えが2桁パイソン - 動的ブラケットの周り私は数を取り、それの周りのブラケットでその回のテーブルを出力プログラムに取り組んでいます

CODEに入るまでは、これはすべて正常に動作します:

number = int(input("Input a number: ")) 

length_of_sum = len(str(number)) 
longest = len(str(number*10)) 
length_of_sum = length_of_sum + 12 + longest 
print('+-' + '-'*(length_of_sum) + '-+') 
i = 1 
for i in range(10): 
    print('| ',number, " X ", i, " = ",number*i, '|') 
    i = i + 1 

print('+-' + '-'*(length_of_sum) + '-+') 

出力:

Input a number:3 
+-----------------+ 
| 3 X 0 = 0 | 
| 3 X 1 = 3 | 
| 3 X 2 = 6 | 
| 3 X 3 = 9 | 
| 3 X 4 = 12 | 
| 3 X 5 = 15 | 
| 3 X 6 = 18 | 
| 3 X 7 = 21 | 
| 3 X 8 = 24 | 
| 3 X 9 = 27 | 
+-----------------+ 

あなたがそれを見ることができるように、すべてが正常に動作しますが、その後の国境が大きくなりすぎ、または私は国境が小さすぎるから始まり言う 必要があります。

(注:あなたは比較的簡単に、私はまだのpythonでその苦手としてこれを答えることができる

答えて

1

あなたは、nがnumber*10の桁数がn桁にすべての数値をフォーマットすることができますすることができます。

number = int(input("Input a number: ")) 

length_of_sum = len(str(number)) 
longest = len(str(number*10)) 
length_of_sum = length_of_sum + 12 + longest 
print('+-' + '-'*(length_of_sum) + '-+') 
i = 1 
m = str(longest)+'d' 
for i in range(10): 
    print('| ',number, " X ", i, " = ",format(number*i, m), '|') 
    i = i + 1 

print('+-' + '-'*(length_of_sum) + '-+') 

ラン1:

Input a number: 3 
+-----------------+ 
| 3 X 0 = 0 | 
| 3 X 1 = 3 | 
| 3 X 2 = 6 | 
| 3 X 3 = 9 | 
| 3 X 4 = 12 | 
| 3 X 5 = 15 | 
| 3 X 6 = 18 | 
| 3 X 7 = 21 | 
| 3 X 8 = 24 | 
| 3 X 9 = 27 | 
+-----------------+ 

ラン2:

Input a number: 18 
+-------------------+ 
| 18 X 0 = 0 | 
| 18 X 1 = 18 | 
| 18 X 2 = 36 | 
| 18 X 3 = 54 | 
| 18 X 4 = 72 | 
| 18 X 5 = 90 | 
| 18 X 6 = 108 | 
| 18 X 7 = 126 | 
| 18 X 8 = 144 | 
| 18 X 9 = 162 | 
+-------------------+ 
+0

%string演算子はpythonで廃止されました3 – Albert

+0

@AlbertこれはPython 3.6.1でも使われていますが、とにかく '%'を 'format()'に変更しました。 –

関連する問題