2017-03-03 3 views
0

저는 솔루션이 쉽지만 어떻게 든 보통 float은 작동하지 않는다고 확신합니다. 떠 문자열을 변환 할 수 없습니다 :float - Python 3을 사용하여 문자열을 변환 할 수 없습니다.

output = open('output.txt', 'wt') 
with open('input.txt', 'r') as file: 
    file = file.readlines() 
    for x in range(0,len(file)): 
     if file[x][0:6] == 'NUMBER': 
      print(file[x][11:18]) 
      float(file[x][11:18]) 

인쇄이 날 줄 것이다 '11111'은 하지만 플로트 날에 ValueError 에러 제공 여기서 무슨 일이 벌어지고. 나는 수학 연산을하기 위해서 부동으로 필요합니다.

업데이트. 나는 빈 공간을 변환하려고하기 때문에 그것이라고 생각한다. 첫 번째 줄에서이 오류가 발생합니다. float ('') 오류가 발생합니다.

NUMBER 
* 
NUMBER 111111111111111111111 
+0

어떤 언어입니까? 태그를 달아주세요. –

+0

고마워요. 죄송합니다. 처음 게시했습니다. – kacangputih

+0

내 파이썬의 오류 메시지는 변환 할 수없는 문자열의'repr'을 포함합니다. 그것이 인쇄되지 않는다면,'print (repr (file [x] [11:18]))'를 사용하여'repr'을보십시오. 문자열에 포함 된 일부 인쇄되지 않는 문자 (예 :'\ ​​0 ') 일 수 있습니다. 'float'은 앞뒤 공백을 무시하지만 숫자가 아닌 임의의 텍스트 나 공백을 포함하지 않습니다. – ShadowRanger

답변

1

@Bijoy이 코멘트에 준 아이디어의 버전 : 문제가 'NUMBER' 다음 문자열이 때로는 비어 있고 이러한 경우는 항상 부동 0.0에 매핑해야하는 경우가 트래핑 오류를 사용할 수 있습니다 float()의 특수 목적 버전을 쓰기 :

이 상황에 작동
def getfloat(s): 
    try: 
     return float(s) 
    except ValueError: 
     return 0.0 

하지만 반 직관적 인 동작을 갖는 경우 예를 들어, getfloat("hello world") == 0.0

+0

감사합니다. 이것이 제가 찾고있는 것입니다. – kacangputih