본문 바로가기
문법관련/python

파이썬 중급 문법 (함수~with)

by print_soo 2024. 9. 13.

함수

def add(a, b): # 전달값 - a, b
    return a + b # 반환값 - return 키워드

result = add(3, 5)

 

 

기본값

: 기본값이란 함수의 인수에 미리 값를 설정해 두는 것이다. 따라서 함수 호출 시 값을 전달하지 않아도 기본값으로 출력되어 오류가 생기지 않는다.

 

def greet(name="Guest"):
    return f"Hello, {name}!"

print(greet())  # Hello, Guest!
print(greet("John"))  # Hello, John!

 

 

키워드값

매개변수가 여러 개이고, 기본값으로 모두 설정된 상태에서 특정 매개변수의 값만 변경하고 싶다면 키워드 값을 사용하면 된다.

def get_price(is_vip=False,
              birthday="2001.10.23",
              is_membership=False,
              card=False,
              review=False):
    print(f"vip {is_vip}, birthday: {birthday}, membership: {is_membership}, car: {card}, review: {review}")

price = get_price(birthday="2001.01.11")
# vip False, birthday: 2001.01.11, membership: False, car: False, review: False

 

 

가변인자

def visit(today, *customers): # customers는 튜플로 저장됨
    print(today)
    for customer in customers:
        print(customer)

visit("2024.09.15", '김준수', '강치훈', '장온주')

# 2024.09.15
# 김준수
# 강치훈
# 장온주

 

가변인자는 한번만 호출이 된다. 

 

사용자 입력

# 1. 문자열 입력 받기
name = input("이름을 입력하세요: ")  # 사용자로부터 문자열을 입력받음
age = input("나이를 입력하세요: ")  # 사용자로부터 나이를 입력받음

# 2. 입력받은 내용을 출력하기
print(f"안녕하세요, {name}님. 나이는 {age}살이군요.")

# 3. 숫자 입력 받기 (형변환)
num1 = int(input("첫 번째 숫자를 입력하세요: "))
num2 = int(input("두 번째 숫자를 입력하세요: "))

# 4. 입력받은 숫자들을 더한 결과를 출력
print(f"두 숫자의 합은 {num1 + num2}입니다.")

# 5. 여러 값 입력 받기 (split 사용)
numbers = input("공백으로 구분된 숫자들을 입력하세요: ").split()

# 6. 입력받은 값을 숫자로 변환하기 (리스트 내포 사용)
numbers = [int(num) for num in numbers]

# 7. 입력받은 숫자들의 합을 출력
print(f"입력받은 숫자들의 합은 {sum(numbers)}입니다.")

 

 

파일입출력(with)

with를 사용하면 해당 구문을 넘어가면 파일이 자동으로 닫겨서 close 함수를 굳이 호출할 필요 없다. 

# 1. 파일 쓰기 (write)
with open("example.txt", "w") as file: # w는 쓰기모드로 파일을 여는 것 
    file.write("이것은 파일에 쓰는 첫 번째 줄입니다.\n") # 파일에 작성하는 것
    file.write("이것은 파일에 쓰는 두 번째 줄입니다.\n")


# 2. 파일 읽기 (read)
with open("example.txt", "r") as file:
    content = file.read()
    print("파일 읽은 내용:")
    print(content)


# 3. 파일에 여러 줄 쓰기 (writelines)
lines = ["첫 번째 줄\n", "두 번째 줄\n", "세 번째 줄\n"]
with open("example_lines.txt", "w") as file:
    file.writelines(lines)


# 4. 파일 여러 줄 읽기 (readlines)
with open("example_lines.txt", "r") as file:
    lines = file.readlines()
    print("파일에서 여러 줄 읽은 내용:")
    for line in lines:
        print(line.strip())


# 5. 파일에 추가 쓰기 (append)
with open("example.txt", "a") as file:
    file.write("이것은 추가로 쓰는 줄입니다.\n")


# 6. 추가된 내용 확인
with open("example.txt", "r") as file:
    content = file.read()
    print("파일에 추가된 내용:")
    print(content)



코드 설명

1. **파일 쓰기** (`write`):  
   - `open("파일명", "w")`로 파일을 열고, `write()`로 내용을 작성해.
   - `"w"` 모드는 파일이 없으면 새로 생성하고, 기존 파일이 있으면 내용을 덮어써.
   - `with` 구문을 사용하면 파일이 자동으로 닫혀.

2. **파일 읽기** (`read`):  
   - `open("파일명", "r")`로 파일을 읽기 모드로 열어 `read()`로 전체 내용을 읽어.
   - `"r"` 모드는 파일을 읽기 전용으로 열어.

3. **여러 줄 쓰기** (`writelines`):  
   - `writelines()`는 리스트에 있는 문자열을 파일에 한 번에 쓸 수 있어.
   - 각 줄 끝에 `\n`을 직접 추가해야 줄바꿈이 적용돼.

4. **여러 줄 읽기** (`readlines`):  
   - `readlines()`는 파일의 내용을 한 줄씩 리스트로 읽어와.
   - 각 줄 끝에 `\n`이 포함되어 있으므로, 출력할 때 `strip()`으로 제거할 수 있어.

5. **파일에 추가 쓰기** (`append`):  
   - `open("파일명", "a")`로 파일을 열고, `write()`를 사용해 내용을 추가해.
   - `"a"` 모드는 기존 파일 내용에 새로 추가하고, 파일이 없으면 새로 생성해.