2013-09-04 3 views
0

문자열을 플로트로 변환하려고 시도하기 전에 문자열을 플로트 할 수 있는지 확인하고 싶습니다. 이 방법으로 문자열이 흐트러지지 않으면 프로그램을 중단하는 대신 오류 메시지를 인쇄하고 종료 할 수 있습니다. 그래서 사용자가 무언가를 입력 할 때 나는 그 float가 있는지보고 싶습니다. 그렇다면 충돌이 아닌 "false"를 출력한다면 "true"를 출력 할 것입니다. 나는 이것을 위해 내장 함수를 사용하고 싶지 않다. 나는 이것을 위해 내 자신의 기능을 만들 필요가있다. python : 사용자 입력 오류 검사

내가 시도 : 가져 오기 유형

def isFloat(): 
    x = raw_input("Enter: ") 
    if(x) == float: 
     print("true") 

    if(x) == str: 
     print("false") 

isFloat() 

가 나는 경우 그 사실 여부를 모르고 있지만 못해 늘 아무것도에게 인쇄 작업 중 하나

답변

0

여기에 수행하는 것이 좋습니다 것은 try하는 것입니다 그것은 :

try: 
    f = float(x) 
    print("true") 
except ValueError: 
    # handle error here 
    print("false") 

이것은 파이썬 철학 "그것은 permiss보다 용서를 요청하는 것이 좋습니다을 강조 이온 ".

0

문자열이 부동 소수점을 나타내는 지 알아내는 유일한 방법은 그것을 변환하려고하는 것입니다. 먼저 확인하고 변환 할 수는 있지만 왜 그래야합니까? 필요없이 두 번 할 수 있습니다.

def read_float(): 
    """ 
    return a floating-point number, or None 
    """ 
    while True: 
     s = raw_input('Enter a float: ').strip() 
     if not s: 
      return None 
     try: 
      return float(s) 
     except ValueError: 
      print 'Not a valid number: %r' % s 

num = read_float() 
while num is not None: 
    ... do something ... 
    print 'Try again?' 
    num = read_float() 
:

이 코드를 고려