問題のプログラムと出力です.
Python
1B = [2, 2, 2, 5, 5, 6] 2K = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 3 4for j in range(10): 5 print(B) 6 index = 0 7 flag = 0 8 C = B 9 10 if K[j] <= B[0]: 11 print('a') 12 elif K[j] > B[-1]: 13 print('c') 14 else: 15 16 while flag == 0: 17 k = int(len(C)/2) 18 if C[k-1] < K[j] <= C[k]: 19 flag = 1 20 elif C[k-1] >= K[j]: 21 del C[k:] 22 else: 23 del C[0:k] 24 index += k 25 else: 26 print('b')
[2, 2, 2, 5, 5, 6]
a
[2, 2, 2, 5, 5, 6]
a
[2, 2, 2, 5, 5, 6]
b
[2, 2, 2, 5, 5, 6]
b
[2, 2, 2, 5, 5, 6]
b
[2, 2, 2, 5, 5, 6]
b
[5, 6]
c
[5, 6]
c
[5, 6]
c
[5, 6]
c
となります.
出力から分かるようにリストBの中身が変わっていますが, コードにおいてBの中身を変える操作は含まれていないハズです.
なぜBが変わってしまうのでしょうか.
具体的にはB=[5, 6]となってしまう理由を教えていただきたいです.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。