最初のメッセージ
最初のメッセージ
文字列の切り出し問題です。
user_id: は、文字列 S の前に必ず付きます。問題文に『文字列 'user_id:' と 文字列 S が空白区切りで与えられるので』とありますので、user_id: と 文字列 S を分割して文字列 S だけを取得する方法で組み上げてみましょう。
入力時に分割する場合は この方法 で入力し、また、input() 関数で一行全てを入力してから分割する場合は このメソッド を使うとよいでしょう。
もう1つ、input() 関数で入力後に スなんとか という機能を使い、文字列の欲しい部分だけを切り出す方法があります。user_id: と、その次の半角スペースの文字数は固定です。ならばその文字数を数えて、それ以降を文字列 S として切り出すとよいでしょう。
最後に取得した文字列 S を使って画面に出力します。
一般的には文字列と文字列を + で繋げる方法で出力できます。
また、print() 関数の () 内で文字列ごとにカンマで区切ると自動で半角スペースが付く特性を利用することもできます。
攻撃力の計算
攻撃力の計算
問題文に N を 5回掛けると書かれていますので、単純にこれを式にすると、
N × N × N × N × N
と書けます。そしてこれは N の 5乗と同等です。
累乗(べき乗)の書き方は こちら を見て参考にしてください。
2 ケタで表示
2 ケタで表示
こういうのを 0埋め と言いますが、これが意外と地味に難しいのです。😓
まずは簡単な方法としては 文を使って、数が1桁か2桁かで出力形式を変えます。数が1桁の時は先頭に0を付ける、2桁の時はそのまま表示するという感じです。0を付ける時は型に注意してください。
他に f文字列 を使って書くこともできます。f はフォーマット(formatted)の f です。書式が難しいので詳しく説明するのも困難なのですが、とりあえずこの問題を f文字列形式で書くと次のようになります。
n = '1'
print(f"{n:0>2}")
01
変数を {} で囲うと、型に関係なく文字列として扱われます。
n = 1
print(f"{n}")
print(type(f"{n}"))
1<class 'str'>
{n:0>2} は、左から『「nを {n}」「0埋めして 0」「(nを)右寄せで >」「2桁 2」の書式で出力する』という意味になっています。変数と書式の間はコロン : で区切ります。書式の書き順は決まっています。
0 を別の文字に変えるとその文字で埋められます。
n = 1
print(f"{n:%>2}")
%1
2 を他の数に変えると表示する桁数(文字数)が変えられます。
n = 123
print(f"{n:*>10}")
*******123
n は文字列に変換されるので、数や数字でなくても使えます。
n = 'abc'
print(f"{n:@^11}") # ^ は中央寄せ
@@@@abc@@@@
今は理解するのは難しいかもしれませんが、これだけでも知っておくと今後役に立つところがありますので、いじりまくって試してみてください。😊 もちろん他にもたくさんの機能がありますので、興味がありましたらネットなどでぜひ調べてみてください。👍
他にも文字列で使える zfill()メソッドというのもあります。
この関数を使う場合、次のように書きます。
n = '3'
print(n.zfill(2))
03
文字列専用のメソッドなので、整数型(int)の時は文字列型に変換する必要があります。
使い方はリンク先を読みつつ、たくさんいじってみてください。😊
N 番目のアルファベット
N 番目のアルファベット
まず整数 N が 1 〜 5 の範囲内で与えられます。(条件 1 ≦ N ≦ 5)
問題文の『辞書順における N 番目のアルファベットを大文字で』とはつまり、
1 → A
2 → B
3 → C
4 → D
5 → E
ということでしょう。
まずは と を使って書く方法があります。この方法で組む場合はもうこれ以上のヒントは不要でしょう。😉
次は、予め文字列で 'ABCDE' を作っておく方法です。位置番号が 0 から始まりますので、N番目の N から 1 を引いて合わせます。あとは添字を使って出力します。
Cランクレベルの解き方ですが、辞書を使って組む方法もあります。
dic = {'1': 'A', '2': 'B', '3': 'C', '4': 'D', '5': 'E'}
print(dic[input()])
今はまだわからなくても大丈夫ですが、Cランクでは使うと捗るようになりますので、その時が来たら頑張って学習しましょう!🎉
辞書は「2章 - 辞書型」で学習できます。