0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

問題概要

A, B, C, D, Eのいずれかの文字が与えられ、アルファベットの何番目なのか答える。

解法と実装

1. if文

一番基本的な、if文による解法です。
if文を5つ書き、入力で与えられた文字がどの文字なのか判定し、答えを出力します。
5つしかないので、それぞれ書いてもあまり時間はかかりません。

この問題では同じ文字を入力として受け取ることはないので、B以降はifでもelifでも正解できます。

X = input() # 入力をXとして受け取る

if X == 'A': # XがAである
  print(1)
if X == 'B': # XがBである
  print(2)
if X == 'C':
  print(3)
if X == 'D':
  print(4)
if X == 'E':
  print(5)

elifを使った書き方

X = input()

if X == 'A': # XがAである
  print(1)
elif X == 'B': # Xが「Aでない」かつ「Bである」
  print(2)
elif X == 'C': 
  print(3)
elif X == 'D': 
  print(4)
else:
  print(5)

2. リストや文字列

リストにAからEまでを保管し、for文で順番に確かめ、何番目と等しいか出力します。

X = input()
ABC = ['A', 'B', 'C', 'D', 'E'] # リストにAからEまでの文字を入れる

for i in range(5):
  if X == ABC[i]: # XがABCのi番目の文字と等しい
    print(i+1) # iは0始まりなので、1足して出力する

enumerateを使うとリストのインデックス番号と要素をまとめて取ってくることができます。

X = input()
ABC = ['A', 'B', 'C', 'D', 'E']

for i, a in enumerate(ABC): # iは0から4まで、aはAからEまで
  if X == a: # aはABCのi番目の文字
    print(i+1)

リストでなく、文字列でも同じようなことができます。

X = input()
ABC = "ABCDE" # リストにAからEまでの文字を入れる

for i in range(5):
  if X == ABC[i]: # XがABCのi番目の文字と等しい
    print(i+1) # iは0始まりなので、1足して出力する

3. 文字コード

アルファベットは連続した文字コードなので、ord()を用いて差を求めることで答えを簡単に出力できます。
文字数が増えたときに便利な書き方です。

X = input()
print(ord(X) - ord('A') + 1) # 文字コードの差

文字コードでAの前の文字は@なので、@との差を求めるとそのまま答えになります。

X = input()
print(ord(X) - ord('@'))

備考

よくある間違い

これでは、elseが効いているのがX == 'D':の時のみなので、Xが'A', 'B', 'C'のいずれかの時は、その数字と5が出力されてしまいます。

X = input()

if X == 'A':
  print(1)
if X == 'B':
  print(2)
if X == 'C':
  print(3)
if X == 'D':
  print(4)
else:
  print(5)

例えば、XがAの時は

1
5

と出力されます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?