큐범
Just do debug
큐범
전체 방문자
오늘
어제
  • 전체보기 (128)
    • 회고 (4)
    • JAVA (16)
      • JAVA 기초 (18)
      • JAVA Algorithm, Datastruct (13)
    • Spring (11)
    • Micro Service Architecture (3)
    • JPA (6)
    • gRPC (4)
    • Network (8)
    • Process (7)
    • Cloud (4)
    • Python (10)
    • Web(vue) (2)
    • UMC (1)
    • DB (9)
    • CS (1)
    • Clean Code (1)
    • TDD (9)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
큐범

Just do debug

[python] 파이썬 함수 정리
Python

[python] 파이썬 함수 정리

2021. 7. 4. 16:32

Life is too short

프로그램의 입력과 출력


입출력은 프로그래밍 설계와 관련이 있다. 프로그래머는 프로그램을 만들기 전에 어떤 식으로 동작하게 될 것인지 설계부터 하게 되는데 그때 가장 중요한 부분이 입출력의 설계이다.

 

함수

일반적인 함수

def 함수명(입력 인수):

수행할 문장

...

return 결과값

​

아래와 같이 함수로 선언을 하며 아래의 리턴값을 받는다

def sum(a,b):

result = a+b

return result

a=3

b=4

c=sum(a,b)

print(c)

결과값을 받을 변수 = 함수명(입력 인수1, 입력인수 2,,,)

​

​

입력값이 없는 함수

아래와 같이 a로 say()를 받고 a를 출력해주면 된다.

def say():

return 'HI'

a=say()

print(a)

결과값을 받을 변수 = 함수명()

​

​

결과값이 없는 함수

def sum(a,b):

print("%d,%d의 합은 %d입니다."%(a,b,a+b))

여기까지는 입력값이 없음.

sum(3,4)

>>>3,4의 합은 7입니다.

함수명(입력 인수1, 입력 인수2,,,)

​

​

입력값이 몇개인지 모를 경우

여러 개의 입력값을 받는 함수 만들기

def sum_many(*args):

sum=0

for i in args:

sum = sum+i

return sum

입력 변수앞에 *를 붙이면 입력값들을 전부 모아서 튜플로 변환시켜준다.

result=sum_many(1,2,3)

print(result)

>>>6

result=sum_many(1,2,3,4,5,6,7,8,9,10)

print(result)

>>>55

​

함수의 결과값은 항상 한개이다.

def sum_and_mul(a,b):

return a+b,a*b

result=sum_and_mul(3,4)

이 문장을 보면 a+b,a*b 두개이나 결과값은 하나를 묶은 (7,12)로 출력된다.

즉, 함수는 return을 만나는 순간 결과값을 반환 후 빠져나간다.

def say_nick(nick):

if nick == "바보":

return

print("나의 별명은 %s입니다."%nick)

say_nick("키키")

>>>나의 별명은 키키입니다.

say_nick("바보")

>>> (바보라면 리턴을 만나 바로 빠져나온다)

​

def say_myself(name,old, man=True)

정상적인 선언

def say_myself(name,man=True,old)

오류가 발생, 초기화시키고 싶은 입력 변수들을 항상 뒤쪽에 위치시키는 것을 잊이말자.

​

함수 안에서 선언된 변수의 효력 범위

a=1

def vartest(a):

a=a+1

vartest(a)

print(a)

>>> 1

a=1를 선언하고 함수안에서 a=a+1이라서 vartest(a)를 선언하면 함수안에서 2가 되지만 print(a)는 함수 안에서 이루어진 a를 출력하는게 아니라 a=1를 출력해서 1이 출려됨.

​

함수 안에서 함수 밖의 변수를 변경하는 방법

1.return 이용하기

a=1

def vartest(a):

a=a+1

return a

a=vartest(a)

print(a)

2. global 명령어 이용하기

a=1

def vartest():

global a

a=a+1

vartest()

print(a)

이 방법은 권장하지않음. 함수는 독립적으로 존재하는 것이 좋기 때문에 가급적이면 return방법을 선호.

​

사용자 입력과 출력

사용자입력

1.input의 사용

a=input()

print(a)

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

​

2.프롬포트를 띄워서 사용자 입력 받기

number=input("숫자를 입력하세요")

"숫자를 입력하세요: "

​

print 자세히 알기

a=123

print(a) <- 숫자 출력하기

a="Python"

print(a) <- 문자열 출력하기

a=[1,2,3]

print(a) <- 리스트르 출력하기

​

큰따옴표(")로 둘러싸인 문자열은 + 연산과 동일하다

print("life""is""too short")

print("life"+"is"+"too short")

>>>lifeistoo short

문자열 띄어쓰기는 콤마(,)로 한다.

print("life","is","too short")

>>>life is too short

한 줄에 결과값 출력하기

​

파일 읽고 쓰기

파일 생성하기

파일 객체 = open(파일 이름, 파일 열기 모드)

파일열기 모드 설명
r 읽기 모드 - 파일을 읽기만 할 때 사용
w 쓰기 모드- 파일에 내용을 쓸 때 사용
a 추가 모드 - 파일의 마지막에 새로운 내용을 추가할 때 사용

f=open("D:/새파일.txt",'w')

f.close()

D드라이브에 새파일.txt를 생성

f=open("D:/새파일.txt",'w')

for i in range(1,11):

data = "%d번째 줄입니다.\n"%i

f.write(data)

f.close()

D드라이브에 이와 같은 메모장이 생선된다

​

프로그램의 외부에 저장된 파일을 읽는 여러 가지 방법

readline()함수 이용하기

f=open("D:/새파일.txt",'r')

line=f.readline()

print(line)

f.close()

>>>1번째 줄입니다. (첫 번째 줄을 읽음)

f=open("D:/새파일.txt",'r')

while True:

line=f.readline()

if not line: break

print(line)

f.close()

만약 모든 라인을 읽어서 화면에 출력하고 싶다면 while문을 사용 가능

​

readlines()함수 이용하기

f=open("D:/새파일.txt",'r')

lines = f.readlines()

for line in lines:

print(line)

f.close()

readline과는 다르게 모든 라인이 줄단위로 출력되는 것을 알 수 있음.

​

read()함수 이용하기

f=open("D:/새파일.txt",'r')

data=f.read()

print(data)

f.close

모든 라인이 출력됨.

​

파일에 새로운 내용 추가하기

쓰기모드('w')로 파일을 열 때 이미 존재하는 파일의 경우 파일의 내용이 사라진다.

추가모드('a')로 열 경우 원래 있던 값을 유지하면서 단지 새로운 값만 추가한다.

f=open("D:/새파일.txt",'a')

for i in range(11,20):

data="%d번째 줄입니다.\n" %i

f.write(data)

f.close()

이렇게 추가 된 것을 확인할 수 있다.

​

with문과 함께 사용하기

with open("foo.txt") as f:

f.write("Life is too short, you need python")

with을 사용할 경우 f가 자동으로 close가 되어 편리하다.

​

재귀호출을 통한 피보나치 함수를 다음과 같이 작성

def fib(n):

if n == 0:return 0

if n == 1:return 1

return fib(n-2)+fib(n-1)

​

for i in range(10):

print(fib(i))

​

파일 읽고 쓰기-sample.txt를 불러와 평균과 총합을 result.txt에 입력한다.

f = open("D:/sample.txt", 'r')

lines = f.readlines() readlines()는 줄단위로 모두 읽는다.

f.close

​

total=0

for line in lines:

score = int(line) 줄에 적힌 점수를 숫자형으로 변환

total += score

average = total/len(lines)

​

print(total)

print(average)

​

f=open("result.txt",'w')

f.write(str(average))

f.close()

    'Python' 카테고리의 다른 글
    • [python] 파이썬 예외처리 정리
    • [python] 파이썬 클래스 정리
    • [python] 파이썬 제어문 정리
    • [python] 자료형 정리
    큐범
    큐범

    티스토리툴바