プログラミング入門I 実習課題 2025.12.22

Back to text page


解答例は後日アップしますので,それまでお待ちください.

  1. 数値のカンマ区切り(文字列化とスライスの利用)
  2. 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 文不要)
    

    解答例

  3. find 系メソッド
  4. アルファベットの小文字をランダムに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 メソッドの組み合わせ)

  5. count メソッド
  6. 前回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 の文字列リテラルを参考に引用符を工夫して行うこともできます.

    解答例1

    解答例2

  7. sorted 関数と join メソッド
  8. アルファベットの大文字がランダムに10文字並んだ文字列を作成して表示し,次にアルファベット順に並べ変えた文字列にして表示するプログラムを作成しましょう.

    Original: LOKCDGFZMO
    Sorted:   CDFGKLMOOZ
    

    sorted 関数は教科書の p.72 にありますが,ソートした後はリストになってしまいます.それをもう一度文字列にするために join メソッドを使用します.

    解答例

  9. 降順への変更
  10. 前問を改造して,3行目には逆順に表示したものを追加したプログラムを作成しましょう.

    Original: RAERIRQRKV
    Sorted:   AEIKQRRRRV
    Reversed: VRRRRQKIEA
    

    解答例1

    解答例2 (スライス使用)


Back to text page