回答編集履歴

1

追記

2019/01/15 07:17

投稿

YouheiSakurai
YouheiSakurai

スコア6142

test CHANGED
@@ -3,3 +3,15 @@
3
3
 
4
4
 
5
5
  paramateの値が更新される可能性があるのは赤矢印で示したところだけですが、そこに至るにはその前のif文の条件が真にならなければならないですし、そしてそもそもその前2つのfor文も適切に回ってなければなりません。「paramateの値が更新されないのはどうして」に対する答えは「赤矢印のコードが実行されていないから」になります。
6
+
7
+
8
+
9
+ # 追記
10
+
11
+
12
+
13
+ [このページ](http://pythontutor.com/visualize.html#code=data%20%3D%20%5B%22DDDDDDDDDD%22,%22DDDDDDDDDE%22,%22DDDDDEEEEE%22,%22DDDDDDDDDF%22,%22DDDDDEEEEF%22,%0A%20%20%20%20%20%20%20%20%22DDDDDEEEFF%22,%22IIIILLLLVV%22,%22PPPPWWWWSS%22,%22DVYATKPCRH%22,%22LLLL%22%0A%20%20%20%20%20%20%20%20,%22LLLL------%22%5D%0A%0A%0A%23%281%29%E3%82%A2%E3%83%A9%E3%82%A4%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E9%95%B7%E3%81%95%E3%82%92%E8%A8%88%E6%B8%AC%E3%81%97%E3%80%81%E5%90%84%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E9%85%8D%E5%88%97%E6%95%B0%E3%82%82%E8%A8%88%E4%B8%8A%E3%81%99%E3%82%8B%E3%80%82%0Aalignment_num%20%3D%20len%28data%29%0Anum%20%3D%207%0Astring_1%20%3D%20data%5Bnum%5D%0Asequense_num%20%3D%20len%28string_1%29%0Aprint%28%22%E3%82%A2%E3%83%A9%E3%82%A4%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E9%95%B7%E3%81%95%E3%81%AF%22%2Bstr%28alignment_num%29%2B%22%E3%81%A7%E3%80%81%E3%82%B5%E3%82%A4%E3%83%88%E7%95%AA%E5%8F%B7%E3%81%8C%22%20%2Bstr%28num%29%2B%22%E3%81%AE%E9%85%8D%E5%88%97%E6%95%B0%E3%81%AF%22%2Bstr%28sequense_num%29%2B%22%E5%80%8B%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%22%29%0A%0A%23%282%29%E8%A9%A6%E9%A8%93%E7%9A%84%E3%81%AB%E3%82%B5%E3%82%A4%E3%83%887%E3%81%AE%E4%BF%9D%E5%AD%98%E5%BA%A6%E3%82%92%E7%AE%97%E5%87%BA%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B%E3%80%82%0Aamino_acid_type%20%3D%20%22STYGAVLIFDNEQMCHKPWR%22%0Aamino_acid_frequency%20%3D%20%7B%7D%0Aamino_acid_num%20%3D%20%5B%5D%0Aresult_num%20%3D%20%7B%7D%0Afor%20test%20in%20amino_acid_type%3A%0A%20%20%20%20result%20%3D%20string_1.count%28test%29%0A%20%20%20%20if%20result%20%3E%200%20%3A%0A%20%20%20%20%20%20%20%20frequency%20%3D%20%28result/sequense_num%29%0A%20%20%20%20%20%20%20%20amino_acid_frequency.setdefault%28test,frequency%29%0A%20%20%20%20%20%20%20%20amino_acid_num.append%28test%29%0A%20%20%20%20%20%20%20%20result_num.setdefault%28test,result%29%0A%20%20%20%20%20%20%20%20print%28%22%E3%82%B5%E3%82%A4%E3%83%88%E4%B8%AD%E3%81%AB%22%2Btest%2B%22%E3%81%AE%E3%82%A2%E3%83%9F%E3%83%8E%E9%85%B8%E3%81%8C%22%2Bstr%28result%29%2B%22%E5%80%8B%E5%AD%98%E5%9C%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%A6%E3%80%81%E9%A0%BB%E5%BA%A6%E3%81%AF%22%2Bstr%28frequency%29%2B%22%E3%81%A7%E3%81%82%E3%82%8B%22%29%0A%20%20%20%20%20%20%20%20gap%20%3D%20%22-%22%0A%20%20%20%20%20%20%20%20result_2%20%3D%20string_1.count%28gap%29%0A%20%20%20%20%20%20%20%20if%20result_2%20%3E%200%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20print%28%22%E3%82%B5%E3%82%A4%E3%83%88%E4%B8%AD%E3%81%AEgap%E3%81%AE%E6%95%B0%E3%81%AF%22%2Bstr%28result_2%29%2B%22%E5%80%8B%E3%81%A7%E3%81%99%E3%80%82%22%29%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20continue%0Aprint%28%22%E3%81%93%E3%81%AE%E9%85%8D%E5%88%97%E4%B8%AD%E3%81%AB%E3%81%AF%E3%80%81%22%20%2B%20str%28len%28amino_acid_num%29%29%20%2B%20%22%E5%80%8B%E3%81%AE%E7%A8%AE%E9%A1%9E%E3%81%AE%E3%82%A2%E3%83%9F%E3%83%8E%E9%85%B8%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82%22%29%0Aprint%28%22%E3%81%93%E3%81%AE%E4%B8%8B%E3%81%AE%E8%BE%9E%E6%9B%B8%E3%81%AB%E3%81%AF%E3%80%81%E5%88%86%E6%AF%8D%E3%81%AEk%E3%81%AB%E4%BB%A3%E5%85%A5%E3%81%99%E3%82%8B%E5%90%84%E3%82%A2%E3%83%9F%E3%83%8E%E9%85%B8%E3%81%AE%E5%80%8B%E6%95%B0%E3%81%8C%E8%A8%98%E9%8C%B2%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%22%29%0Aprint%28result_num%29%0Aprint%28%22%E3%81%93%E3%81%AE%E4%B8%8B%E3%81%AE%E8%BE%9E%E6%9B%B8%E3%81%AB%E3%81%AF%E3%80%81%E5%88%86%E6%AF%8D%E3%81%AEn%E3%81%AB%E4%BB%A3%E5%85%A5%E3%81%99%E3%82%8B%E5%90%84%E3%82%A2%E3%83%9F%E3%83%8E%E9%85%B8%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%99%E3%82%8B%E9%A0%BB%E5%BA%A6%E3%81%8C%E8%A8%88%E7%AE%97%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82%22%29%0Aprint%28amino_acid_frequency%29%0Akeys_for_k%20%3D%20%5Be%20for%20e,%20w%20in%20result_num.items%28%29%20%5D%0Akeys_for_n%20%3D%20%5Bk%20for%20k,%20v%20in%20amino_acid_frequency.items%28%29%5D%0Aprint%28keys_for_k%29%0A%0Adenominator_half%20%3D%20%5B%5D%0Afor%20i%20in%20range%20%282%29%3A%0A%20%20%20%20paramate%20%3D%200%0A%20%20%20%20for%20string_2%20in%20string_1%5Bparamate%3Asequense_num-1%5D%3A%0A%20%20%20%20%20%20%20%20for%20string_3%20in%20keys_for_k%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20paramate%20%2B%3D%201%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20string_3%20in%20string_2%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20k_value%20%3D%20result_num%5Bstring_3%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23print%28k_value%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20n_value%20%3D%20amino_acid_frequency%5Bstring_3%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23print%28n_value%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20denominator_1%20%3D%20%20%281/alignment_num%29%20*%20%281/%28k_value%20*%20n_value%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23print%28denominator_1%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20denominator_half.append%28denominator_1%29%0A%20%20%20%20%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20continue%0A%0Aprint%28len%28denominator_half%29%29%0Aprint%28denominator_half%29&cumulative=false&curInstr=123&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false)で動きを見てみるとparamateの値は少なくとも一度は0から1に更新されてますよ。
14
+
15
+
16
+
17
+ ![コード](b9d6317b800a951b279b917991dc1a4f.png)