公式:Python チュートリアル
Python3エンジニア基礎試験の参考書
スライスの問題
fibo = [0,1,1,2,3,5,8,13,34,55,89]
fibo[-3:-3]= [21]
print(fibo)
# [0,1,1,2,3,5,8,13,21,34,55,89]
※スライスでは、開始インデックスは含まれますが、終了インデックスは含まれません。
したがって、開始と終了が同じ場合、スライス範囲は要素を含まない空の範囲となります。
print文の問題
total = 780
print("「お会計は", total, "円です。」")
# 「お会計は 780 円です。」
・他の選択肢にあった、"print(‘「お会計は’ + total + ‘円です。」’)"は誤り。
strとintの混合となり、TypeErrorとなる。
この場合は、"print(‘「お会計は’ + str(total) + ‘円です。」’)"とする。
スライスの問題
letters = ['a','b','c','d', 'e']
letters[-4:-2] = []
print(letters)
# ['a', 'd', 'e']
・まず、リスト letters には文字列 'a', 'b', 'c', 'd', 'e' の5つの要素が含まれています。
次に、スライスを使用して要素の一部を指定しています。
letters[-4:-2] は、リストの後ろから4番目の要素 'b' と3番目の要素 'c' を含む部分リストを取得します。
そして、[] を使用してこの部分リストを空のリストで置き換えます。
つまり、['b', 'c'] の要素が削除され、リスト letters は ['a', 'd', 'e'] となります。
最後に、print(letters) を使用して変更後のリスト letters を出力します。
出力結果は ['a', 'd', 'e'] となります。
while文の問題
a = 0
b = [2,3,4,5,6]
while a < len(b):
print(a, end=',')
a = b[a]
# 0, 2, 4
- 処理の流れ
- 変数 a に初期値 0 を代入します。
- リスト b の要素数を取得し、その値と a を比較します。
- a が b の要素数より小さい場合、以下の処理を繰り返します:
- a の値を出力します(print(a, end=','))。
- b[a] の値を a に代入します。つまり、b の a 番目の要素を取得して a に格納します。
- a が b の要素数以上になった場合、ループを終了します。
- 例えば、与えられたリスト b の要素が [2, 3, 4, 5, 6] の場合、以下のように処理が進行します:
- a の初期値は 0 なので、最初に 0 を出力します。
- b[0] の値は 2 なので、a に 2 を代入します。
- a の値は 2 なので、次に 2 を出力します。
- b[2] の値は 4 なので、a に 4 を代入します。
- a の値は 4 なので、次に 4 を出力します。
- b[4] の値は 6 なので、a に 6 を代入します。
- a の値は 6 なので、次に 6 を出力します。
- b[6] のインデックスは存在しないため、ループを終了します。
while文の問題
a, b = 0, 2
lst = []
while a < b ** 2:
lst.append(1)
a = a + 1 # aはwhile文の真偽を判断する材料の役割
print(lst, end=',')
# [1],[1, 1],[1, 1, 1],[1, 1, 1, 1],
- 変数 a と b を定義し、lst という空のリストを作成します。その後、a が b の2乗よりも小さい間、
以下の処理を繰り返します。
- lst に値 1 を追加します。
- a の値を1増やします。
- lst の内容を表示します。
具体的には、lst の要素が 1 になりながら、繰り返し処理が行われます。
ループの終了条件は a < b ** 2 ですので、a が b の2乗以上になった時点でループが終了します。
ループの各イテレーションで、lst に要素が追加され、それが表示されます。
最終的には、lst の要素が表示されることになります。