본문 바로가기
Python

[Python] 함수, 입출력

by 0xe82de 2023. 2. 6.
반응형

'점프 투 파이썬' 책의 예시를 정리했습니다.

자세한 내용은 아래 링크에서 확인할 수 있습니다.

 

참고 및 출처 : https://wikidocs.net/book/1

 

점프 투 파이썬

이 책은 파이썬이란 언어를 처음 접해보는 독자들과 프로그래밍을 한 번도 해 본적이 없는 사람들을 대상으로 한다. 프로그래밍을 할 때 사용되는 전문적인 용어들을 알기 쉽게 풀어서 …

wikidocs.net

 

함수

# 사용법
# def 함수명(매개변수):
#     <수행할 문장1>
#     <수행할 문장2>
#     ...

def add(a, b):
    return a + b

a = 3
b = 4
c = add(a, b)
## c = 7

# 매개변수와 인수
# 매개변수 : 함수에 정의된 변수
# 인수 : 함수로 전달하는 값
def hello(name):
    print("%s님 안녕하세요." % name)
hello("kim")
## name : 매개변수
## "kim" : 인수

# 일반적인 함수
def inputOutput(input):
    return "output"
result = inputOutput("input")
## result = "output"


# 입력값이 없는 함수
def output():
    return "output"
result = output()
## result = "output"

# 리턴값이 없는 함수
def input(input):
    print(input)
result = input("input")
## result = None

def noInputOutput():
    print('')
result = noInputOutput()
## result = None

# 매개변수 지정하여 호출
def sub(a, b):
    return a - b

result = sub(a = 1, b = 2)
## result = -1

result = sub(b = 2, a = 3)
## result = 1

# 여러 개의 입력값을 받는 함수
# 입력값을 모아서 튜플로 만든다.
# args = (first, second, ...)
def add_many(*args):
    result = 0
    for i in args:
        result += i
    return result
result = add_many(1, 2, 3)
## result = 6

def add_mul(choice, *args):
    if choice == "add":
        result = 0
        for i in args:
            result += i
    elif choice == "mul":
        result = 1
        for i in args:
            result *= i
    return result

result = add_mul("add", 2, 3, 4)
## result = 9

result = add_mul("mul", 2, 3, 4)
## result = 24

# 키워드 매개변수 kwargs
# 입력값을 모아 딕셔너리로 만든다.
def print_kwargs(**kwargs):
    print(kwargs)

print_kwargs(a=1)
## 출력 결과
## {'a': 1}

print_kwargs(name='foo', age=3)
## 출력 결과
## {'name': 'foo', 'age': 3}

# 함수의 리턴값은 언제나 하나다!!!!!!
def add_and_mul(a, b):
    return a + b, a * b
result = add_and_mul(3, 4)
## result = (7, 12)
## 튜플로 반환된다.

result1, result2 = add_and_mul(3, 4)
## result1 = 7
## result2 = 12

# 함수 즉시 종료
def return_test(number):
    if number % 2 == 0:
        return
    print("홀수입니다.")

return_test(3)
## 출력 결과
## 홀수입니다.

return_test(2)
## 출력 결과 없음

# 매개변수 초깃값 설정
def say_myself(name, age, man=True):
    print("나의 이름은 %s입니다." % name)
    print("나이는 %d살입니다." % age)
    if man:
        print("남자입니다.")
    else:
        print("여자입니다.")

say_myself("kim", 4)
## 출력 결과
## 나의 이름은 kim입니다.
## 나이는 4살입니다.
## 남자입니다.

say_myself("kim", 4, True)
## 출력 결과
## 나의 이름은 kim입니다.
## 나이는 4살입니다.
## 남자입니다.

say_myself("kim", 4, False)
## 출력 결과
## 나의 이름은 kim입니다.
## 나이는 4살입니다.
## 여자입니다.

# 초기값 error 예제
# 초기값을 설정할 매개변수는 항상 뒤에 있어야 한다
# def say_myself(name, man=True, age):
#     print("나의 이름은 %s입니다." % name)
#     print("나이는 %d살입니다." % age)
#     if man:
#         print("남자입니다.")
#     else:
#         print("여자입니다.")

# 함수 내에 선언된 변수의 범위
# 함수 내에 선언된 변수는 함수 안에서만 사용된다.
number = 1
def scope_test(number):
    number += number
    print(number)

scope_test(2)
print(number)
## 출력 결과
## 4 : 함수 내의 number 값 4
## 1 : 함수 밖의 number 값 1

# 함수 안에서 함수 밖의 변수를 변경하는 방법
# 1. return 사용
number = 1
def scope_test(number):
    number += number
    return number

number = scope_test(number)
## number = 2

# 2. global 사용
number = 1
def scope_test2():
    global number
    number += number

scope_test2()
## number = 2

# lambda
add = lambda a, b: a + b
result = add(3, 4)
## result = 7

 

사용자 입출력

# 사용법
str = input() # hello 입력
## str = "hello"

name = input("이름을 입력하세요: ") # kim 입력
## name = "kim"

# print 자세히 알기
# 1. 큰따옴표(")로 둘러싸인 문자열은 + 연산과 동일하다
print("hello" "world")
## 출력 결과
## helloworld

# 2. 문자열 띄어쓰기는 콤마로 한다
print("hello", "world")
## 출력 결과
## hello, world

# 3. 한 줄로 출력하기
for number in range(1, 11):
    print(number, end=' ')
## 출력 결과
## 0 1 2 3 4 5 6 7 8 9 10

 

반응형

 

파일 입출력

# 파일 생성
f = open("새파일.txt", 'w')
f.close()

# 파일 열기 모드
# r : 읽기 모드
# w : 쓰기 모드. 파일이 이미 존재하면 기존 내용은 삭제된다.
# a : 추가 모드. 파일의 마지막에 새로운 내용을 추가한다.

# 특정 경로에 파일 생성
f = open("C:/path/새파일.txt", 'w')
# f.close()

# 내용 쓰기
f = open("새파일.txt", 'w')
for number in range(1, 11):
    data = "%d번째 줄입니다.\n" % number
    f.write(data)
f.close()
## 새파일.txt 파일 내용
## 1번째 줄입니다.
## 2번째 줄입니다.
## 3번째 줄입니다.
## 4번째 줄입니다.
## 5번째 줄입니다.
## 6번째 줄입니다.
## 7번째 줄입니다.
## 8번째 줄입니다.
## 9번째 줄입니다.
## 10번째 줄입니다.

# 파일을 읽는 여러 가지 방법
# 1. readline 함수
f = open("새파일.txt", 'r')
line = f.readline()
print(line)
f.close()
## 출력 결과
## 1번째 줄입니다.
##

f = open("새파일.txt", 'r')
while True:
    line = f.readline()
    if not line:
        break
    print(line)
f.close()
## 출력 결과
## 1번째 줄입니다.
##
## 1번째 줄입니다.
##
## 2번째 줄입니다.
##
## 3번째 줄입니다.
##
## 4번째 줄입니다.
##
## 5번째 줄입니다.
##
## 6번째 줄입니다.
##
## 7번째 줄입니다.
##
## 8번째 줄입니다.
##
## 9번째 줄입니다.
##
## 10번째 줄입니다.
##

# 2. readlines 함수
f = open("새파일.txt", 'r')
lines = f.readlines()
## lines = ['1번째 줄입니다.\n', '2번째 줄입니다.\n', '3번째 줄입니다.\n', '4번째 줄입니다.\n', '5번째 줄입니다.\n', '6번째 줄입니다.\n', '7번째 줄입니다.\n', '8번째 줄입니다.\n', '9번째 줄입니다.\n', '10번째 줄입니다.\n']

for line in lines:
    print(line)
f.close()
## 출력 결과
## 1번째 줄입니다.
##
## 1번째 줄입니다.
##
## 2번째 줄입니다.
##
## 3번째 줄입니다.
##
## 4번째 줄입니다.
##
## 5번째 줄입니다.
##
## 6번째 줄입니다.
##
## 7번째 줄입니다.
##
## 8번째 줄입니다.
##
## 9번째 줄입니다.
##
## 10번째 줄입니다.
##

# 줄 바꿈 문자 \n 제거
f = open("새파일.txt", 'r')
lines = f.readlines()
for line in lines:
    line = line.strip()
    print(line)
f.close()
## 출력 결과
## 1번째 줄입니다.
## 2번째 줄입니다.
## 3번째 줄입니다.
## 4번째 줄입니다.
## 5번째 줄입니다.
## 6번째 줄입니다.
## 7번째 줄입니다.
## 8번째 줄입니다.
## 9번째 줄입니다.
## 10번째 줄입니다.

# 3. read 함수
f = open("새파일.txt", 'r')
data = f.read()
f.close()
print(data)
## 출력 결과
## 1번째 줄입니다.
## 2번째 줄입니다.
## 3번째 줄입니다.
## 4번째 줄입니다.
## 5번째 줄입니다.
## 6번째 줄입니다.
## 7번째 줄입니다.
## 8번째 줄입니다.
## 9번째 줄입니다.
## 10번째 줄입니다.

# 4. 파일 객체를 for문과 함께 사용
f = open("새파일.txt", 'r')
for line in f:
    print(line)
f.close()
## 출력 결과
## 1번째 줄입니다.
##
## 1번째 줄입니다.
##
## 2번째 줄입니다.
##
## 3번째 줄입니다.
##
## 4번째 줄입니다.
##
## 5번째 줄입니다.
##
## 6번째 줄입니다.
##
## 7번째 줄입니다.
##
## 8번째 줄입니다.
##
## 9번째 줄입니다.
##
## 10번째 줄입니다.
##

# 파일에 새로운 내용 추가
f = open("새파일.txt", 'a')
for number in range(11, 21):
    data = "%d번째 줄입니다.\n" % number
    f.write(data)
f.close()
## 새파일.txt 파일 내용
## 1번째 줄입니다.
## 2번째 줄입니다.
## 3번째 줄입니다.
## 4번째 줄입니다.
## 5번째 줄입니다.
## 6번째 줄입니다.
## 7번째 줄입니다.
## 8번째 줄입니다.
## 9번째 줄입니다.
## 10번째 줄입니다.
## 11번째 줄입니다.
## 12번째 줄입니다.
## 13번째 줄입니다.
## 14번째 줄입니다.
## 15번째 줄입니다.
## 16번째 줄입니다.
## 17번째 줄입니다.
## 18번째 줄입니다.
## 19번째 줄입니다.
## 20번째 줄입니다.

# with문
# 파일을 자동으로 닫아준다.
with open("새파일.txt", 'w') as f:
    f.write("hello, world")
## 새파일.txt 파일 내용
## hello, world

 

프로그램 입출력

import sys

args = sys.argv[1:]
for i in args:
    print(i)
## python filename.py hello world 실행
## 결과 출력
## hello
## world

for i in args:
    print(i.upper(), end=' ')
반응형

'Python' 카테고리의 다른 글

[Python] 내장 함수  (0) 2023.02.13
[Python] 제어문  (0) 2023.02.06
[Python] 자료형  (2) 2023.01.31

댓글