プログラミング入門I
2025.12.22
文字列1
今回の確認テストについてはだいたいできているようだったのでそれなりに安心しました.引き続き基本的な部分の理解についてしっかりと確認していきたいと思います. さて,今回以下のようなものが出てきました.昨年度までも何度か出てきたものですが,下線文字 '_' は変数を置く必要が無い,すなわち他の部分では使用しないというときのための特例です.他で使うのなら変数を使用してください.
for i in range(1, 11):
for _ in range(10):
print(f'{i+_:3}', end='')
print()
今回は問題の意味をきちんと把握していない人が何人かいました.大文字と小文字がランダムに並んだ文字列をそれぞれ作り,それらの文字列を統合するというのが題意です.文字列の統合になっていない人が何人かいました.きちんと問題文を読んでから取り組むようにしましょう.
以下は例によって問題のあるプログラムの例です.参考にしてください.
for k in range(10):
print(u[k]+ l[k],end='')
else:
print()
|
上のものは文字列を作らないで,ただ画面に表示させているだけです.
for i in range(20):
if i % 2 == 0:
mixed += chr(random.randint(65, 90))
else:
mixed += chr(random.randint(97, 122))
print(f'Mixed letters: {mixed}')
|
最初に作った文字列と関係なく,新たに大文字と小文字が並んだ文字列を作っているので,以下のように関係ない文字列になっています.
Random uppercase letters: JTJXYGBSPF Random lowercase letters: duwnssqcrj Mixed letters: BuJnXjJwVeZqOeLoGzPc |
for _ in range(10):
large = chr(random.randint(65,90))
upp += large
mix += large
small = chr(random.randint(97,122))
low += small
mix += small
|
文字列同士の結合ではなく,文字が生成されるたびに追加しています.題意と違います.
文字列について学習しました.文字列は個々の文字が順番に並んでいる特殊なデータ形式(プログラミング入門IIで扱うリストなど配列形式)で,インデックスにより個々の文字にアクセスできます.また,インデックスを使ってスライスという方法を使うと,文字列の切り出しなどが行えます.
自分でプログラムを作る機会というのは卒業研究や大学院の研究で数値解析を行ったり,実験データをコンピュータに取り込んだりというようなときにありますが,その際に,画面に結果の数値などを表示するだけでは自分にしか結果を理解できないことになり,研究の引継ぎなどに問題が生じる可能性があります.誰が見ても理解できるような結果の表示を行うためには,きちんと整形された文字列を適切に表示する必要があります.文字列の学習は重要ですので,引き続き今回も学習していきましょう.
前回の演習問題 i. でその場で解答例2を追加しましたが,その際に不要な変数 j を用いて良くない解答例となっていました.現在は修正してありますので,そちらを参考にしてください.
in や not in 演算子を用いて,文字列の中に特定の文字列があるかどうかを判定したり,find 系メソッドによりさらに詳しい文字列に関する探索が可能になります.find などはメソッドなので,ピリオドでつなげて操作を行います.
str.find('ABC')
|
教科書にもあるように文字列 str の中に文字列 ABC が含まれているかどうかを調べます.詳しくは演習問題で確認しましょう.
文字列を操作するメソッドはたくさんあります.教科書に出ている join などのメソッドを演習問題で確認しましょう.また,文字列はリストの一種ですので,教科書 p.72 で出てきた sorted 関数も活躍します.
大文字から小文字に変換するなどの文字種の変更を行うメソッドも用意されています.これまで数値としての文字コードに32に加えることで大文字を小文字に変換するなどしていましたが,upper メソッドを使用することで同じような操作が可能です.
他の言語でも必ず用意されている % 記号を用いた表現です.Python ではあまり使用しないようですが,それには % の使い方が他の言語に比べて面倒なことがあるのかもしれません.
% 記法が面倒なため用意されていた format メソッドですが,記述が長くなる傾向にありますので,現時点では f 文字列が主流になったので,使う意味はもうほとんど無いようです.
これまでさんざん使ってきた f 文字列ですが,この機会に教科書の List 6-17 をしっかり確認して今後も自由に使えるようになりましょう.
今回の演習問題です.
宿題が公開されるのは明日火曜日10:00の予定で,締切りは1月5日の13:00です.Moodle を使用します.
新年早々申し訳ありませんが,次回は文字列に関する確認テストを授業の最初に実施しますので,しっかり復習をしておいてください.