2017-03-18 11 views
1

ユーザーはタイムスタブ・グラフを作成したいものを入力する必要があります。その後、プログラムはうまく配置されたグラフを生成します。ユーザーは1未満の数字を入力するべきではありません。後で別のタイムスタブチャートを実行するかどうかを尋ねる必要があります。ネストされたループである必要があることに注意してください。書式設定に細心の注意を払う。グラフを生成する(Pythonループ)

Example input/output 


What timestables do you want to do? 5 

    1 2 3 4 5 
    ---------------------------------- 
1 * 1 2 3 4 5 
2 * 2 4 6 8 10 
3 * 3 6 9 12 15 
4 * 4 8 12 16 20 
5 * 5 10 15 20 25 

Do you want to do another timestables chart (y for yes)? y 

What timestables do you want to do? -3 

Not a valid number. 
What timestables do you want to do? 7 

    1 2 3 4 5 6 7 
    -------------------------------------------------- 
1 * 1 2 3 4 5 6 7 
2 * 2 4 6 8 10 12 14 
3 * 3 6 9 12 15 18 21 
4 * 4 8 12 16 20 24 28 
5 * 5 10 15 20 25 30 35 
6 * 6 12 18 24 30 36 42 
7 * 7 14 21 28 35 42 49 

Do you want to do another timestables chart (y for yes)? nooo 

Hope you got smarter! 

出力を上記のようにするコードを作成しようとしていますが、私は何をすべきかについて完全に固執しています。一番下には私が現在持っているものがあります。誰かがこのコードを書く方法を理解できるかどうか疑問に思っていました。ありがとう

あなたは print関数に渡すことができ end=引数はあり
column = int(input("What timestables do you want to do? ")) 
for x in range(1, column+1): 
    print(x, sep="\t") 

答えて

0

。通常printは、最後に\nを追加します。あなたのケースでは、タブを渡すことは良い選択です:

print(x, end='\t') 
0

これは正しくテーブルの主要部分を生成する必要がありますが、大規模な数字でtimestableを印刷しようとした場合、それはなぜかわからない(厄介になります〜:))

size = int(input("Please enter the size of the table: ")) 
# list comprehension to make 2d list 
arr = [[i for i in range(1, size+1)] for j in range(size)] 
# this multiplies all the numbers in the 2d list so they can be printed later 
for i in range(len(arr)): 
    for j in range(len(arr[i])): 
     arr[i][j] = (i+1)*(j+1) 
# print list 
for i in range(len(arr)): 
    print(str("{:2.2g}".format(i+1)) + " * " + str("{:2.2g}".format(i+1)) + " ", end="") 
    for j in range(len(arr[i])): 
     print(str("{:2.2g}".format(arr[i][j])) + " ", end="") 
    # newline 
    print() 

重要な部分はstr("{:2.2g}".format(i+1))です。小数点以下を2桁にフォーマットし、gはゼロを削除します。チェックアウトPython Decimals format

0

デフォルトでは、印刷機能は"\n"を追加します。引数, end ="")または, end ="\t")を変更することができます。これを確認してくださいlink

関連する問題