Python/기초

6. 파이썬의 함수, 입출력

frcn 2019. 9. 22. 16:58
반응형

함수

 

1. 함수의 구조


 

1) 입력인수가 있고, 리턴값도 있음

def 함수명(입력 인수) :
	내용
	return 


2) 입력 인수가 있고, 리턴값은 없음

def 함수명(a,b):
	내용

 

3) 입력인수가 없지만, 리턴값만 있음

def 함수명():
	내용
	return


4) 입력 인수가 없고, 리턴값도 없음

def 함수명():
	내용



2. 입력 값이 여러개일 경우


 

1) *args를 사용

def sum(*args):
	
    sum=0
	
    for i in args:
		sum += i
	
    return sum


2) 일반 인수랑 *args를 동시에 사용할 수도 있다.

def calc(what, *args):

	result = 0 

	if what == 'sum':
		if i in args:
			result += i

	elif what == 'sub':
		if i in args:
			result -= i

	return result 	


3) return 값이 여러개일 수도 있다.

def cal(a,b):
	return a+b, a-b, a*b, a/b


print(cal(10,2)) 		#(12, 8, 20, 5.0)


여러개의 값을 리턴하면 튜플 값 하나에 모두 넣어서 값을 돌려준다.

만약 4개의 결과값으로 분할하여 받고 싶다면 다음과 같이 하면된다.

def cal(a,b):
	return a+b, a-b, a*b, a/b


a,b,c,d=cal(10,2)

#a=12, b=8 c=20 d=5


3. 입력인수 디폴트값 설정하기.

def call_parents(parent_name, child_name, man=True):

	print("저는 %s이며 %s의 부모입니다." %(parent_name, child_name))

	if man == True:
		print("저는 아버지입니다")
	else:
		print("저는 어머니입니다")


call_parents("갑","을")

#저는 갑이며 을의 부모입니다.
#저는 아버지입니다


※ 디폴트 값은 항상 맨 뒤로 들어가야 한다. 중간에 대입되면 default argument에러가 뜸


사용자 입출력

 

1. input 함수

a=input("내용")

#내용에 입력한 문장이 먼저 나오고, 사용자의 입력을 기다림.

input은 입력되는 모든 것을 문자열로 취급.


2. print 함수

for i in range(10):
	
	print(i,end=' ')

 

print함수는 자동적으로 줄바꿈을 한다.

만약 한 줄에 모든 결과 값을 출력하고 싶다면 end =' '를 하면된다.


3. open 함수

f = open(파일이름, 파일모드)


파일모드는 r(읽기), w(쓰기-기존에 있던 내용은 모두 사라짐), a(추가-파일 마지막부분에 내용추가)가 있음

파일 사용 종료 후에는 웬만해서는 close()를 해주자.

자동으로 해주기는 하지만, 가끔 오류가 발생할 수도 있다.

#C:/Python/에 있는 test라는 텍스트 파일을 읽기모드로 불러옴.
f = open("C:/Python/test.txt",'w')

#test.txt에 데이터 입력
for i in range(10):
	data = '*' * i
	f.write(data)

#열었던 텍스트 파일을 종료. 
f.close()

#기존의 데이터는 모두 사라지고 내가 입력한 값만 남게됨.


a모드를 사용하게 되면 기존의 데이터를 유지하면서, 뒤에 내용을 추가로 넣을 수 있다.

f = open("C:/Python/test.txt",'a')

for i in range(10):
	data = '*' * i
	f.write(data)

f.close()



4. readline()

#한 줄씩 읽어서 모든 줄 읽어들이기 

f = open("C:/Python/test.txt",'r')

	while 1:
		line = f.readline()
		if not line:
			break
		print(line)

f.close()

 

파일에서 한 줄만 읽어오는 함수.


5. readlines()

f = open("C:/Python/test.txt",'r')

ls = readlines()
for l in ls:
	print(l)

f.close()

 

파일에서 모든 줄을 읽어오는 함수


6. read()

f = open("C:/Python/test.txt",'r')

data = f.read()
print(data)

f.close

 

파일의 내용 전체를 문자열로 리턴.


7. with

with open("C:/Python/test.txt",'r') as f:

	data = f.read()
	print(data)

 

with문을 벗어나면, 자동으로 문서를 닫아준다.

f = open("C:/Python/test.txt",'r')

data = f.read()
print(data)

f.close

 

with문 코드와 위의 코드는 동일하다.

반응형