7から10の範囲の整数を乱数により一つ発生させ,それを次に発生させる乱数の桁数とします.得られた数を文字列に変換して3桁ごとのカンマ区切りで表示するプログラムを作成しましょう.
Digits of number: 9 A random number with 9 digits: 382378690 Separate with comma: 382,378,690 |
手順 必要な桁数の乱数を作るには 10 ** n のような基準となる数を用意する 乱数を文字列に変換する 文字列を逆順に変換する(スライス使用が簡単) for 文とスライスの活用により文字列中に3桁区切りでカンマ (,) を入れる 逆順にした場合にはカンマが入るのはインデックス i を使用して 3 + 3 * i + iの位置になる 文字列をもう一度逆順にする 9桁の数の場合には先頭の文字が , になってしまうので,strip で除去する(if 文不要) |
アルファベットの小文字をランダムに500文字発生させ,それを文字列にします.次に小文字2文字がランダムに並んだ文字列を作り,先ほどの文字列に含まれるか,最初に出てくるのはどの位置にあるかを答えるプログラムを作成しましょう.
pmepfnmpwhiuwzuwgqltjdzddzdbuvfrbfilbvlmamvkjhdrvssxdnmrfwbojvodhverwq jqjpevjoezzedrxcrwqvjecomstlmpgkhovddnqighnframqylvpumzihxbyiwhfgjgrgu ykulbidifrhowxsmhgtmrfhtrpfoqwhdznltbvkvrzukojtggfqslhrxvgiaearjzvjxac hzdgmufonyciixrkpkgowzeojvfiyaiwfvgmdosqixhuqqdesbqlpuusnzwfvgzbihhzln utppkqwqkcgbuzsxsyvlvkosmyewkvvspptqvdxfaefviewzvopkhwuripddsshpcqlflp etidagdderxrboizlwyxmpbmkioljbksgtsdtkkvobdszpynzmrpdavcbvxhmujwhzpqlk qboufnrwuwzrvnyqfbcyzzgeqvoojekclwvilimksoffuhpuxtbvrxfseitnxrpypdtnbc lcejqiibez Target string: wy String 'wy' appears at 367. | 文字列が含まれる場合 |
hxtwtmfksciwkiuyfcfivrucfcjtbkqkkpvhgdjknhpgyzpktcocbzvdcbvgywluihlhcv yhgjqavaagsvwnacjdmajsbkwehvotiksydjbbtqtiovyccllasfotepcemxnsjepczkou vqiahmwzxjqycxpbudutqmjssaltyvheqwlrplougoqxidcwxyiklhuqsfvbhssbfslirq ixjhyvitzmvxjdvspopvacumouatixigrczpghzyhqtlngwmcbmdwyqibvygzcvbuynvpl dfabsgvqmdbrtjrvecxqpccluooobmutsomotcoavwjatyarmgmnafrfjtbuxxofuxvhjr xlltiqcreewhlvagtlmyvujxqhwvysowlkbcwtttbvakrlsbhniqeloytukvpnbqlfclxb gcuwkasqosxkwhuiuufmlldfegedtlnskarulfezqxhentrhigwojhtjioynnfzhlfokij bgegwksauy Target string: xr String 'xr' is not included. | 文字列が含まれない場合 |
解答例1(単純に find 使用)
解答例2(List 6-13 の try 文と index メソッドの組み合わせ)
前回12月15日の演習問題の ii. を count メソッドを用いて変更しましょう.
jlDjFOagsnWNtfjPgcgv A: 0, a: 1 CaFmQtPwgBlmlBXvixxP A: 0, a: 1 xYbOxdQyIaLxGJpMUItT A: 0, a: 1 ckCzQeEhpBRnJukmuRtH A: 0, a: 0 jjBfxDvjWkexodXGlkAJ A: 1, a: 0 CGbRSBiZZcpFFzAWhjpw A: 1, a: 0 pRyAYWyieZpijAEvrtXh A: 2, a: 0 NpdfmOTAEVGdBftGkQJb A: 1, a: 0 OYLMRYlQxykAcsYZRjyC A: 1, a: 0 IEWbLtUIenGkwicObmvQ A: 0, a: 0 |
教科書の List 6-14 のように検索する文字列を ptn のような変数にすることもありますし,教科書 p.14 の文字列リテラルを参考に引用符を工夫して行うこともできます.
アルファベットの大文字がランダムに10文字並んだ文字列を作成して表示し,次にアルファベット順に並べ変えた文字列にして表示するプログラムを作成しましょう.
Original: LOKCDGFZMO Sorted: CDFGKLMOOZ |
sorted 関数は教科書の p.72 にありますが,ソートした後はリストになってしまいます.それをもう一度文字列にするために join メソッドを使用します.
前問を改造して,3行目には逆順に表示したものを追加したプログラムを作成しましょう.
Original: RAERIRQRKV Sorted: AEIKQRRRRV Reversed: VRRRRQKIEA |