• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

31분 영상에서 질문있습니다

22.01.23 20:34 작성 조회수 110

0

if (length % 2) == 1:
ch = str_1[length//2]
print("중앙에 있는 한 글자는 ", ch)
else: # 문자열의 길이가 짝수라는 것.
ch1 = str_1[length//2-1]
ch2 = str_1[length//2]
print("중앙에 있는 두 글자는 ", ch1, ch2)

ch 구하는 곳에서 []괄호를 사용한게 이해가 안됩니다. (인덱싱이라서 [] 사용한거 아닌거 같은데..)

그리고 문자열을 weekday로 입력한 경우, str_1 = "weekday", length = 7, 7//2 =3 그러면

ch는 세번째인 k가 아니라 e인거 아닌가요..?

아! 인덱스 기호? [ 와 ]를 사용했기때문에 [length]는 인덱스로 표현 즉 문자 하나를 추출하기 위해

w=0, e=1, e=2, k=3, d=4, a=5, y=6

3번째인 k가 나온거 맞나요 선생님??

답변 1

답변을 작성해보세요.

0

길동님의 프로필

길동

2022.10.19

저도 이부분이 잘 이해가 안가서 제 부족한 지식으로나마 주석을 달아둔게 있거든요. 혹시 도움이 될까 적어봅니다.

# 자 이게 이해가안되는 나를 위해 설명을 마저 적는다
# input에 5글자를 적었어. 그럼 인덱스는 4고 길이는 5지? 저거는
# 길이를 구하는 함수(len)이니까 length == 5 인거야. 그리고 이 length가
# 나누기 2를 했을때 나머지가 1이 있지? 그럼 홀수고, if에 해당하는 함수로
# 진행이 돼. 그리고 지금 저 str_1은 index하나하나 저장되어있겠지?
# 예를 들어, 내가 print(str_1[3]) 이렇게하면 0 1 2 3 으로 진행되어서
# 4번째에 있는 글자가 print가 될거야. 그것과 같은 원리로
# str_1의 index값을 length//2로써 출력하는거야. 이게 어떻게 가능하냐면
# str_1[ -- ] 저 대괄호(리스트)안에는 어차피 숫자로 구성이 되어야하는거고
# 여기서 숫자가 담겨져 있는 함수의 값인 length가 들어가는게 문제가 없는거지.
# 그리고 ch에는 str_1[ ]에서 인덱스값이 저장되는거야.