[Python] ABC011 B

問題

B – 名前の確認

回答

S = input()

ans = S.capitalize()
print(ans)

str.capitalize() というメソッドで、先頭の文字のみ大文字に変換できます。

組み込み関数のみで書く

解説のスライドに従い、組み込み関数のみを使います。

chr(i) ord(c) を使います。

S = input()

# 文字の大小関係は文字コード表の順番により判定される。
# 文字コード表中で、アルファベットは連番。
def is_upper(c):
    if c >= 'A' and c <= 'Z':
        return True
    return False

def is_lower(c):
    if c >= 'a' and c < 'z':
        return True
    return False

# chr(i)Unicode コードポイントが整数 i である文字を表す文字列を返します。
# 1 文字の Unicode 文字を表す文字列に対し、
# その文字の Unicode コードポイントを表す整数を返します。
def make_upper(c):
    if is_lower(c):
        return chr(ord(c) + ord('A') - ord('a'))
    return c

def make_lower(c):
    if is_upper(c):
        return chr(ord(c) + ord('a') - ord('A'))
    return c


ans = ''
for i in range(len(S)):
    if i == 0:
        ans += make_upper(S[i])
        continue
    ans += make_lower(S[i])

print(ans)