appendとべき乗
コードは以下になります。
1 2 3 4 5 6 7 8 9 |
def culc(a, b=1, squares=[], cubes=[]): squares.append(a ** 2) cubes.append(b ** 3) return squares, cubes print(culc(1)) print(culc(2, 3)) print(culc(3, 4)) print(culc(4, 5)) |
■ 実行結果
1 2 3 4 |
([1], [1]) ([1, 4], [1, 27]) ([1, 4, 9], [1, 27, 64]) ([1, 4, 9, 16], [1, 27, 64, 125]) |
まず変数aとbにそれぞれ1が入ります。
後はprint文で呼び出される引数でべき乗されるだけです。
appendになっていますので、呼び出されるたびに
右側にappendの結果が入ります。
print(culc(1)) ← 1**1,1**1 = ([1], [1])
print(culc(2, 3)) ← 2**2,3**3 = ([1, 4], [1, 27])
print(culc(3, 4)) ← 3**3,4**4 = ([1, 4, 9], [1, 27, 64])
print(culc(4, 5)) ← 4**4,5**5 = ([1, 4, 9, 16], [1, 27, 64, 125])
文字列操作
コードは以下になります。
1 2 3 4 5 6 7 |
def culc(a, b=1, squares=[], cubes=[]): Zen = 'SimpleIsBetterThanComplex' print(Zen[:]) print(Zen[1000:]) print(Zen[5:1000]) print(Zen[:1000] + 'A') Zen[0] = 'B' |
■ 実行結果
1 2 3 4 5 6 7 8 |
SimpleIsBetterThanComplex eIsBetterThanComplex SimpleIsBetterThanComplexA Traceback (most recent call last): File "c:/work/PythonTest/KisoSample/test.py", line 6, in <module> Zen[0] = 'B' TypeError: 'str' object does not support item assignment |
1行目:print(Zen[:])
zenが全て表示されます。
2行目:print(Zen[1000:])
zenの要素[1000]の位置から表示されます。実際には1000文字も入っていないので、空白が表示されます。
3行目:print(Zen[5:1000])
zenの要素[5]の位置から表示されます。Simpleのeから最後まで表示されます。
4行目:print(Zen[:1000] + ‘A’)zenの要素[0]から[1000]まで表示されます。実際に1000文字ない場合は、最後の文字が表示され、+Aの文字が後ろに追加されます。
5行目:Zen[0] = ‘B’
NGです。一つの要素に対して変更を加えようとするとエラーとなります。