kazumalab tech log

流行りとリラックマと嵐が大好きです。技術的ログ。

python勉強〜7日目〜

kazumaです。
今回は少し課題でやってるところをメモ代わりに残しておきます。

2次元配列とその他です。
とりあえずコードを載せます。

#MemoCode
n = input("n >> ")
a = [[0 for j in range(n)] for i in range(n)]

for i in range(n):
        for j in range(n):
                a[i][j] = input("a[%d][%d] >> " %(i,j))

for i in range(n):
        for j in range(n):
                print a[i][j],
        print "\n"
出力:
n >> 2
a[0][0] >> 2   #a[0][0]に2を入力している
a[0][1] >> 3   #a[0][1]に3を入力している
a[1][0] >> 4
a[1][1] >> 3
2 3 
4 3 

まず二次元配列どうやろうかなーって。

a = [[0]*n]*n

はじめにこうゆうコードを書いてみましたが、a[0][0]に数値1を入れてみると出力が。

出力:
a[0][0] = 1  a[0][1] = 0
a[1][0] = 1  a[1][1] = 0

なぜか、a[1][0]までも1が代入されています。
おかしーなってことで、for文を使って書くことにしました。こうすることでnの値によってn*nの行列が生み出されます。あとはここに数値を代入していくだけ!

ここで初めて気づいたこと。

print a,

aの後ろに,をつけることで改行されずに表示されることを知りました。すごい。

あとC言語でも使った%dも使えることをここに来て知る。
ただ少し違うのは、C言語の場合は

printf("%dです。",a);

でよかったのですが、
pythonでは

print "%dです。" %(a)

と書きます。まぁ大丈夫そうですね!

python楽しいです!(恐怖を知らないだけです。笑)


簡単ですが以上です。