[プログラマ/python]中間文字を入力


🔒 に質問


単語sの中間文字を返す関数を作成します.単語の長さが偶数の場合は、中間の2文字を返します.
sreturn"abcde""c""qwer""we"

🔑 私の答え

def solution(s):
    if len(s) % 2 == 0 :
        answer = s[len(s)//2-1]+s[len(s)//2]
    else :
        answer = s[len(s)//2]
    return answer

🔐 に答える


この問題で理解する必要がある関数

%:剰余を求める関数//:シェアを求める関数(小数点を捨てる)len():返される文字数

解法

def solution(s):
    if len(s) % 2 == 0 : # 문자의 길이가 짝수라면
        answer = s[len(s)//2-1]+s[len(s)//2] #가운데 숫자 두 개 합치기
    else : # 문자의 길이가 짝수가 아니라면
        answer = s[len(s)//2]
    return answer
文字の個数が偶数の場合、単数はifelseで区別される.
文字数を返すlen()関数を書き出します.
  • 文字の長さが偶数である場合、文字長を2で割ったシェア順の値と前の値を+で加算します.
  • 文字の長さが奇数の場合、文の長さを2の値で割った順序の値を返します.
  • 文字長が奇数の場合の例
    sがabcdeの場合、len(s)=5、5を2で割ると2.5になります.
    ここでpython 3の「//」は小数点を飛ばします.
    だから5/2=2になります.
    したがって,s[2]=「c」である.
    文字長が偶数の場合の例
    sが「qwer」の場合、len(s)=4、4を2で割ると2になります.
    だから4/2=2,4/2-1=1です.
    従って、s[1]+s[2]=「we」となる.