2017-10-30 2 views
0

그래서 여러 데이터 유형을 입력으로 가져 와서 변수에 저장하는 방법을 찾아야합니다. 내가 3 개 변수가 있다고 가정하자, 그들 각각의 고정 데이터 유형 를 저장해야 - 떠 B - STR C - INT Python 3은 공백으로 구분 된 입력에서 여러 데이터 유형을 가져옵니다.

와 사용자가 잘못 입력하면, 그는 다시 입력하라는 메시지가 표시됩니다

. 사용자가 공백으로 구분하여 입력하면되지만 데이터 유형을 유지하면서 변수에 저장하는 방법을 생각할 수 없습니다. 나는 .split()로 시도했지만 문자열로 변환한다. 그것은 아마 명백한 무언가 일 수도 있지만 지금 당장은 그것을 파악할 수 없습니다. 미리 감사드립니다!

+0

. 아마 네가 뭘 시도 했니? – scharette

+0

각자 캐스팅해야합니다 – yash

+2

질문에 시도해주십시오. 'split'은 그것들을 문자열로 변환하지 않으며, 모든 입력 값은 string이고, split()은 문자열을 다른 문자열로 잘라냅니다. – roganjosh

답변

-1

split() 함수가 제대로 작동하는 경우입니다. 문제는 사용자가 ''로 구분 된 세 개의 값을 줄 것이라고 말하면 문자열을 가져 오는 것입니다. 다음은 문자열입니다. '34 .44 35.45 5 ' 아마도 split을 사용한 후에 할 수있는 일은 반환 된 각 항목을 변수로 캐스팅 할 수 있습니다. 그래도 변수의 유형을 확인해야하는 경우 type() 함수를 사용할 수 있습니다.

희망이 도움이됩니다. 어쩌면

+0

나는 downvoter가 아니지만 이것은 영화에 대한 트레일러와 조금 같다. OP가 자신의 코드를 표시하고이 대답을 적용 할 수 없다면 많은 부분을 설명하지 않습니다. – roganjosh

+0

문제는, 나는 다음을했다. - .split()을 사용하여, 이후에 나는 각 변수의 유형을 원하는 것으로 변경했다. 잠시 동안 작동하지만 사용자가 원하는 값과 일치하지 않는 값을 입력했다고 가정합니다. 변수 a가 부동 소수점이면 사용자가 예를 들어 'w'문자열을 입력하고 변환 할 수 없습니다. 흙손. 그게 내가 해결할 수없는 주요 문제 다. – zauahiri

+0

@zauahiri이 경우에는 ['try' /'except']를 사용해야합니다 (https://wiki.python.org/moin/HandlingExceptions) – roganjosh

0

: 아마 꽤 분명 뭔가하지만 바로보기 _를 알아낼 수 없습니다 _t

def myfucn(vars): 
    vars = vars.split() 
    try: 
     float(vars[0]) 
     if not "." in vars[0]: 
      raise Exception("First var should be INT not Float") 
    except ValueError: 
     print("Error not Float found") 

    try: 
     int(vars[2]) 
    except ValueError: 
     print("Error Int no found") 

    #answer 
    a_float, b_str, c_int = vars 
    print(" Yes ") 

인사

+0

만약 그렇지 않다면. " in vars [0] : 왜? 'float (vars [0])'는 이미 실패했을 것이다. – roganjosh

+0

'float ("45")', return'45.0' 그리고 45 -> int –

+0

충분하게, 나는 float와 int를 구별하는 질문을 잘못 기억하고 편집 할 때까지 예외 메시지를 이해할 수 없었다. 영어. – roganjosh