4-1 함수
def 함수_이름(매개변수):
수행코드1
수행코드2
return ~~
파이썬에서 함수의 구조이다.
def를 이용해 함수를 만들고 들여쓰기로 함수에서 수행할 코드를 작성해야 한다.
return은 함수가 반환하는 값을 의미한다.
def add(a, b): // a, b는 매개변수
return a+b
c = add(3,4) // 3, 4는 인수
이렇게 return을 통해 반환한 값을 변수에 저장할 수 있다.
여기서 매개변수는 함수에 입력으로 전달된 값을 받는 변수이고,
인수는 함수를 직접 사용할 때, 즉 호출할 때 전달하는 실제 값을 의미한다.
<매개변수 지정해서 호출>
def add(a, b):
return a+b
c = add(a=3,b=4)
d = add(b=4,a=3)
이렇게 매개변수의 값을 미리 지정해서 함수를 만들 수도 있다.
이 경우에는 매개변수의 순서를 고려하지 않고 쓸 수 있다는 장점이 있다.
<입력값이 몇개인지 모를 때>
함수의 입력값이 정확히 몇개인지 모를 때는 *를 이용해 해결할 수 있다.
def 함수_이름(*매개변수):
수행코드
def add_many(*args):
result = 0
for i in args:
result += i
return result
print(add_many(1,2,3,4,5))
이런 식으로 매개변수 앞에 *을 붙이면 여러 개의 입력값을 동시에 받을 수 있다.
<키워드 매개변수, kwargs>
키워드 매개변수는 매개변수 앞에 **을 붙여서 사용한다.
def print_kwargs(**kwargs):
print(kwargs)
print_kwargs(a=1)
{'a':1}
이렇게 **kwargs로 입력을 받으면 kwargs에는 입력값이 딕셔너리의 형태로 저장이 되고
key = value 형식이 된다.
<함수 안에서 함수 밖의 변수를 변경하는 방법>
함수 안에서 사용하는 변수는 함수 밖에서 같은 이름의 변수가 있더라도 값이 같지 않다.
안에서 변수를 사용하는 것은 밖의 변수와는 관계가 없다는 뜻이다.
하지만 함수 안에서 함수 밖의 변수를 조작하는 2가지 방법이 있다.
1. return 사용하기
a = 1
def vart(a):
a = a + 1
return a
a = vart(a)
이렇게 return을 이용해 변수에 함수의 반환값을 대입시켜 버리는 방법이 있다.
2. global 명령어 사용하기
a = 1
def vart():
global a
a = a + 1
vart()
이렇게 global 명령어를 사용하면 바깥의 a변수가 함수 안으로 들어오게 된다.
<lambda 예약어>
lambda는 함수를 생성하는 예약어로, 간단한 함수를 한 줄로 표현할 때 쓰인다.
함수_이름 = lambda 매개변수1, 매개변수2 ... : 매개변수를_이용한_표현식
add = lambda a, b: a+b
result = add(3,4)
이런식으로 def를 이용하지 않고도 한 줄로 간단하게 함수를 만들 수 있다.
4-2 사용자 입출력
<사용자 입력 활용하기>
a = input()
사용자가 키보드로 입력한 모든 것을 변수 a에 문자열로 저장한다.
a = input('num: ')
num: 3
input안에 담긴 값은 사용자의 입력 전에 출력되는 문자열이다.
4-3 파일 읽고 쓰기
<파일 생성하기>
파일_객체 = open(파일_이름, 파일_열기_모드)
f = open("새파일.txt", 'w')
f.close()
open 함수를 이용해 파일을 생성하고 열 수 있다.
r 읽기 모드: 파일을 읽기만 할 때 사용한다.
w 쓰기 모드: 파일에 내용을 쓸 때 사용한다.
a 추가 모들: 파일의 마지막에 새로운 내용을 추가할 때 사용한다.
파일 열기 모드에는 이렇게 3가지가 있다.
파일을 쓰기 모드로 열면 파일이 이미 존재할 경우 원래 있던 내용이 모두 사라지고,
파일이 존재하지 않을 경우에는 새로운 파일이 생성된다.
새파일.txt로 파일 이름을 지정할 때 파일의 경로도 함께 지정할 수 있다.
<파일 내용 쓰기>
f = open('새파일.txt', 'w')
for i in range(1,11):
data = "%d번째 줄입니다.\n" % i
f.write(data)
f.close()
data를 f.write 함수를 이용해 작성할 수 있다.
<파일 읽는 방법>
1. readline 함수
f = open("새파일.txt", 'r')
line = f.readline()
print(line)
f.close()
readline 함수를 사용해 파일의 첫 번째 줄 내용을 읽어올 수 있다.
f = open("새파일.txt", 'r')
while True:
line = f.readline()
if not line: break
print(line)
f.close()
파일의 모든 줄을 읽어오고 싶다면 이렇게 하면 된다.
2. readlines 함수
f = open("new.txt", 'r')
lines = f.readlines()
for line in lines:
line = line.strip()
print(line)
f.close()
readlines 함수는 파일의 모든 줄을 읽어서 각 줄을 담은 리스트를 반환해준다.
line.strip()은 \n문자를 제거해주는 기능을 한다.
3. read 함수
f = open("new.txt", 'r')
data = f.read()
print(data)
f.close()
read 함수는 내용 전체를 문자열로 반환한다.
<파일에 새로운 내용 추가하기>
쓰기 모드로 파일을 열면 이미 있던 내용이 전부 사라지기 때문에 내용을 추가하려면 추가 모드(a)로 열어야 한다.
f = open("new.txt", 'a')
for i in range(1, 10):
data = "%d" % i
f.write(data)
f.close()
a로 파일을 열고 write 함수를 사용하면 파일에 내용이 추가된다.
<with문과 함께 사용하기>
open 함수로 파일을 열고 나면 항상 close로 닫아주어야 한다.
with문을 사용하면 이를 자동으로 해준다.
with open("new.txt", "w") as f:
f.write("ddddd")
이렇게 with와 함께 open을 하면 블록을 벗어나는 순간 자동으로 close가 된다.
4-4 프로그램의 입출력
<sys 모듈 사용하기>
import sys
args = sys.argv[1:]
for i in args:
print(i)
sys 모듈을 사용하려면 import를 통해 모듈을 가져와야 한다.
이렇게 하면 프로그램 실행 시 전달된 인수가 argv로 저장된다.
python app.py a b c
이렇게 프로그램을 실행시켰다면, argv에 a, b, c가 저장된다.
'웹개발' 카테고리의 다른 글
flask (0) | 2023.10.20 |
---|---|
점프 투 파이썬 5장 - 파이썬 날개 달기 (0) | 2023.10.19 |
점프 투 파이썬 3장 - 제어문 (0) | 2023.10.19 |
점프 투 파이썬 2장 - 자료형 (0) | 2023.10.17 |
MySQL-Sequelize (0) | 2023.10.15 |