[점프 투 파이썬] Chapter 05 : 프로그램의 입력과 출력은 어떻게 해야 할까?

iGhost·2021년 8월 26일
0

점프 투 파이썬

목록 보기
5/8
post-thumbnail

함수란?

특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합

  • 인풋, 아웃풋이 있음,(없는경우도 있다)
def 함수명 (매개변수):
	수행할문장
	....
	return 리턴값
  • 정의후 → 호출(사용) 해야함
  • 매개변수랑, 인자의 순서는 잘 맞춰야 한다→안맞출려면, 인자에 매개변수 값을 매핑해줘야함

예시

def sum(a,b):
	c = a + b
	return c

# 입력값 없는 경우
def say():
	return Hi

# 출력값이 없는 경우
def say(a,b):
	print("%d %d" (a,b))

# append?
myList = [1,2,3]
print(myList.append(4)) // none => append는 입력은 하지만, 출력은 없다

# pop
print(myList.pop()) // 3 -> 입력값은 없지만, 출력은 없다

# 입출력 둘다 없는
def say():
	print("HI")

# 매개 변수를 정하기 어려울떄
def sum_many(*매개변수): #개수 상관없이

-> sum_many(숫자 상관없이)

# 키워드 바라미터
def sum_many(**매개변수):# 딕셔너러 개수 상관없이

# 함수의 결과값은 언제나 하나이다
def sum_and_mul(a,b):
	return a+b, a*b ,a/b # => 여러개 처럼 보이지만 튜플 형식으로 하나로 나타낸다

# 기본값 설정 (맨끝에만 가능)
def say_myself(name, old, man=True): # 기본값 설정, man에 다른값이 나올경우 바뀜, 안넣어도 인자로 안넣어줘도 ㄱㅊ

# 매개변수 매핑
def aaaa( a, b, c):
aaaa(a=1,c=3,b=3) # 가능

함수의 스코프

함수 내에 정의된 변수는 지역변수, 함수가 끝나면 라이프사이클이 끝난다

a = 1 # 전역 변수 a

def add(a)
	a = a +1 # 지역 변수 a

add(a) # -> 2
print(a) # ->1

# a의 라이프사이클을 늘릴려면?

# 1.값의 재할당
a = add(a) # 결과값을 a에 재할당

# 2. global로 전역변수로 선언
def add(a)
	global a = a+1

# lambda 함수의 축약형
def add(a,b)
	return a+b 
# == 같다
lambda a, b : a+b #리스트에서도 사용가능해서 좋다

# lambda 함수 응용
myList = [lambda a,b: a+b, lambda a,b:a*b]
pirnt(myList[0](1,2)) # lambda a,b: a+b이걸 가져와서 사용

사용자 입력과 출력

빌트인 함수(내장함수) 인 input(), print()를 이용해 입력과 출력을 한다

print()기능

# 자동 +
print("life""is""too short")

# 자동 space
print("life","is","too short")

# end 정하기
print("life""is""too short" end = '') # 출력하고 엔터가 아니라, 빈공간=스페이스 로 하겠다

파일 읽고 쓰기

txt 파일을 읽고 쓴다

open()

f = open("새파일.txt", 'W')
f.close()

# 쓰기모드

f = open("새파일.txt","w",encoding = "UTF-8")  # w는 기존에 있는 데이터 지우고 새로 씀
for i in range(1,11):
	data = "%d번째 줄입니다.\n" %i
	f.write(data)
f.close()

# 읽기모드

f = open("새파일.txt","r",encoding = "UTF-8")
line = f.readline() # 한줄씩 읽어옴
print(line)
f.close()

# 여러줄 읽기

f = open("새파일.txt","r",encoding = "UTF-8")
while True:
	line = f.readline() # 한줄씩 읽어옴
	if not line: break
	print(line)
f.close()

# readlines 함수 읽기

f = open("새파일.txt","r",encoding = "UTF-8")
lines = f.readlines() # 한줄씩 모든 라인을 읽어옴
for line in lines:
	print(line) # strip("\n"): 양쪽 끝에서 특정 문자를 제거해주는 함수
f.close()

# read 함수 읽기

f = open("새파일.txt","r",encoding = "UTF-8")
data = f.read() # 전부 읽음
print(data)
f.close()

# 추가모드 , 추가하는거임

f = open("새파일.txt","a",encoding = "UTF-8") 
for i in range(11,20): # 10번쨰 이후에 계속 추가
	data = "%d번째 줄입니다.\n" %i
	f.write(data)
f.close()

# close를 안쓰고

with open("foo.txtm "w") as f: # 쓰기 모드로 열어서 f에 저장
	f.write("Life is too short, you need ptyhgon") # f는 지역변수

profile
인터벌로 가득찬

0개의 댓글

관련 채용 정보