質問: 基本情報技術者試験過去問についての質問です。 基本情報技術者試験 Python過去問 設問2のCにおいて自分はどちらでもよさそうなアとイで迷い、2文字目以外の情報は不要であると判断したためアを選びました。 しかし、解答ではイになっており、「2文字目から文字列の最後までを取得できます」と解説されていました。 ここでイを選択しなければならない理由が調べても分からなかったため教えていただきたいです。 よろしくお願いいたします。
回答: (質問の元リンクは正しくはこのページでしょうか) > > 「2文字目以外の情報は不要であると判断したため」 > > > 3文字目以降の文字も必要です。 たとえばここで、命令列が「F300」だったとします。 仮に「ア」(int(x[1]) とした場合: この命令は ("F", "3") と解釈されてしまいます。 これでは「長さ3」を指定したことになってしまいます。(正しくは、長さ「300」) 表1より、parse関数に要求される仕様は、「1文字の命令文字と、その後に続く数値パラメタを返すこと」です。 つまり。さきほどの命令列は("F", "3")ではなく、 ("F", "300") と変換されなければなりません。 「:」は以下のような意味を持ちます。 たとえば、 x="abcdefg"のとき x[0]="a" x[1]="b" x[2:]="cdefg" となります。 したがって、イ(int(x[1:])が正解となります。 (詳しくは、pythonの「スライス」について調べてみてください)