파이썬(python) - 함수에서 구조화된 데이터 반환
아래 코드에서 사용할 surfing_data.csv 파일
데이터가 더 복잡해지면 ?
함수에서 구조화된 데이터를 반환
함수에서 데이터를 넘겨주기 위한 방법은 두가지 있다.
- 스트링으로
- 해시로
스트링으로 반환하면 호출한 코드가 데이터를 더 처리해서 필요한 정보를 추출해야 한다. 할 수는 있겠지만 호출하는 코드가 split() 메소드를 사용해서 스트링을 분할해야하므로 복잡해진다. 이런 것은 함수 안에 처리하는 것이 좋다. 이렇게 하면 함수 안에서 처리하는 복잡한 과정을 호출하는 코드에서 숨길 수 있기 때문이다. 데이터를 해시로 반환하면 호출하는 코드는 더 이상 처리할 필요 없이 필요한 데이터만 바로 골라 쓸수 있게 된다.
def find_details(id2find):
surfers_f = open("c:\\surfing_data.csv") //데이터를 읽기 위해서는 파일을 열어야 한다.
for each_line in surfers_f: //for루프를 사용하여 파일의 각 라인을 반복한다.
s= {} // 빈해시로 시작해야 한다.
(s['id'], s['name'],s['country'],s['average'],s['board'],s['age']) =each_line.split(";") //split()메소드를 사용하여 데이터를 분활하고,
다중 할당으로 각 해시에 대이터를 저장한다.
if id2find == int(s['id']): // 인자로 받은 ID와 파일에서 읽은 ID가 같으지 비교한다.
surfers_f.close()
return(s) //인자가 동일하다. 그로므로 파일을 닫고 현재의 해시를 반환한다.
surfers_f.close
return({}) 파일 끝까지 검색했지만 해당 ID를 찾지 못했다. 파일을 닫고 빈 해시를 반환한다.
s= {} // 빈해시로 시작해야 한다.
(s['id'], s['name'],s['country'],s['average'],s['board'],s['age']) =each_line.split(";") //split()메소드를 사용하여 데이터를 분활하고,
다중 할당으로 각 해시에 대이터를 저장한다.
if id2find == int(s['id']): // 인자로 받은 ID와 파일에서 읽은 ID가 같으지 비교한다.
surfers_f.close()
return(s) //인자가 동일하다. 그로므로 파일을 닫고 현재의 해시를 반환한다.
surfers_f.close
return({}) 파일 끝까지 검색했지만 해당 ID를 찾지 못했다. 파일을 닫고 빈 해시를 반환한다.
lookup_id = int(input("Enter the id of the surfer: ")) //사용자에게 ID를 물어본다.
surfer = find_details(lookup_id) // 입력받은 ID로 find_details()를 호출한다.
if surfer:
print("ID: " + surfer['id'])
print("Name: " + surfer['name'])
print("Country: " + surfer['country'])
print("Average: " + surfer['average'])
print("Board type: " + surfer['board'])
print("Age: " + surfer['age'])
surfer = find_details(lookup_id) // 입력받은 ID로 find_details()를 호출한다.
if surfer:
print("ID: " + surfer['id'])
print("Name: " + surfer['name'])
print("Country: " + surfer['country'])
print("Average: " + surfer['average'])
print("Board type: " + surfer['board'])
'' 카테고리의 다른 글
파이썬(python) - 스트링을 사용하여 스트링을 포멧 (0) | 2011.10.29 |
---|---|
파이썬(python) - 데이터베이스 (0) | 2011.10.28 |
파이썬(python) - 함수에서 구조화된 데이터 반환 (1) | 2011.10.28 |
파이썬(python) - 해시(데이터 제자리에 넣기) (0) | 2011.10.27 |
파이썬(python) - 이터레이터(iterator), 제너레이터(generator) (0) | 2011.10.27 |
파이썬(python)-배열 & 메소드(데이터 정렬하기) 2 (0) | 2011.10.26 |
댓글을 달아 주세요
비밀댓글입니다