YUYANE

Python/ 문자열에서 특정 인덱스 값 다음의 문자를 찾을 때 유의 본문

Programming Languages/PYTHON

Python/ 문자열에서 특정 인덱스 값 다음의 문자를 찾을 때 유의

YUYA 2021. 1. 6. 16:20

전체 코드

T = int(input())
nums = []


def detect(a):

    if '.' in a:
        idx = a.find('.')
        try:
            float(a)
            return a[idx+1]
        except:
            return False
    else:
        return False


for i in range(T):
    num = input()
    nums.append(num)

for i in range(len(nums)):
    print(detect(nums[i]))

 

필요한 값

 

입력 받은 값 a 는 string이다.

1) a가 '.'을 포함하는 지 확인한 후에

2) '.'을 포함 한다면, '.' 다음에 오는 문자를 출력하고 싶었다. 

 

 

오류 내용

 

1) try 구문 안에서 float(a)까지는 ok

2) return a[idx+1] 에서 곧바로 except으로 넘어가버린다.

 

 

오류 원인

 

a[idx+1] 값이 존재하지 않을 수도 있다.

예를 든다면 a = '.'

 

 

해결 방법

 

문자열의 길이가 '.'의 인덱스 값보다 크다는 조건을 걸어주었다.

 

T = int(input())
nums = []


def detect(a):

    if '.' in a:
        idx = a.find('.')
        try:
            float(a)
            if len(a) > idx:
                return a[idx+1]
        except:
            return False
    else:
        return False


for i in range(T):
    num = input()
    nums.append(num)

for i in range(len(nums)):
    print(detect(nums[i]))

'Programming Languages > PYTHON' 카테고리의 다른 글

Python / for와 range  (0) 2021.01.19
Python / Regular Expression(Regex)  (0) 2021.01.13
Python/ format() Method  (0) 2021.01.04
Python/ 환경변수(Path)  (0) 2020.12.24
Python/ Beautiful Soup  (0) 2020.12.18
Comments