공부/Python

[점프 투 파이썬 ] 04장 입력과 출력

순제로 2023. 4. 9. 00:19
728x90

출처: https://wikidocs.net/book/1

 

점프 투 파이썬

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

wikidocs.net

함수
# 파이썬 함수 구조
def 함수명(매개변수):
    <수행할 문장1>
    <수행할 문장2>
    ...
# 매개변수와 인수
def add(a,b): # a, b는 매개변수
    return a+b

print(add(3,4)) # 3, 4는 인수

7

 

매개변수 - 함수에 전달된 값을 저장하는 변수
인수 - 함수에 전달하는 값
# 일반적인 함수 형태태
def add(a, b): 
    result = a + b 
    return result

a = add(3,4)
print(a)

7

# 입력값이 없는 함수
def say():
    return 'HI'

print(say())

HI

# 리턴값이 없는 함수
def add(a, b): 
    print("%d, %d의 합은 %d입니다." % (a, b, a+b))

add(3,4)

print(add(3,4))

3, 4의 합은 7입니다.

3, 4의 합은 7입니다.

None

# 입력값도 리턴값도 없는 함수
def say():
    print("hi")

say()

hi

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

print(sub(7,3))

4

# 입력이 몇개가 될 지 모를때
def add_maney(*args):
    result = 0
    for i in args:
        result += i
    return result

print(add_maney(1,2,3))

print(add_maney(1,2,3,4,5,6,7,8,9,1))

6

46

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

print(add_mul('add', 1,2,3,4,5,6,7,8,9,10))
print(add_mul('mul', 1,2,3,4,5,6,7,8,9,10))

55

3628800

# 키워드 매개변수 kwargs
# 키워드 매개변수를 사용할 때는 매개변수 앞에 별 두 개(**)를 붙인다.
# 매개변수 이름 앞에 **을 붙이면 매개변수 kwargs는 딕셔너리가 되고 모든 key=value 형태의 입력값이 그 딕셔너리에 저장
def print_kwargs(**kwargs):
    print(kwargs)

print_kwargs(a=1)

{'a': 1}

print_kwargs(name='foo', age=3)

{'name': 'foo', 'age': 3}

# 함수의 리턴값은 언제나 하나이다. -> 아래와 같이 2개의 return 값을 주게 된다면 (7,12)로 하나의 튜플 값으로 나온다.
def add_and_mul(a,b):
    return a+b, a*b

result = add_and_mul(3,4)
result

(7, 12)

# 만약 이 하나의 튜플 값을 2개의 값으로 분리하여 받고 싶다면 다음과 같이 함수를 호출
result1, result2 = add_and_mul(3,4)

result1

7

# return이 두 개인 경우우
def add_and_mul(a,b): 
    return a+b 
    return a*b 

add_and_mul(3,4)

7

# 매개변수에 초깃값 미리 설정하기
# 초기화시키고 싶은 매개변수는 항상 뒤쪽에 놓아야 함
def say_myself(name, age, man=True):
    print("나의 이름은 %s 입니다." %name)
    print("나이는 %s 살입니다." %age)
    if man:
        print("남자 입니다.")
    else:
        print("여자 입니다.")

나의 이름은 박응용 입니다.

나이는 27 살입니다.

남자 입니다.

==============================

나의 이름은 박응용 입니다.

나이는 27 살입니다.

남자 입니다.

==============================

나의 이름은 박응용 입니다.

나이는 27 살입니다.

여자 입니다.

# 함수 안에서 선언한 변수의 효력 범위
# 함수 안에서 사용하는 매개변수는 함수 밖의 변수 이름과는 전혀 상관이 없다
a = 1
def vartest(a):
    a = a+1

vartest(a)
print(a)

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)

2

# 람다: 함수를 생성할 때 사용하는 예약어로 def와 동일한 역할
# 사용법 = lambda 매개변수1, 매개변수2, ... : 매개변수를 이용한 표현식
add = lambda a, b: a+b
print(add(3,4))

7

 

 

사용자 입력과 출력
# 사용자 입력: input
a = input()
# 프롬프트를 띄워서 사용자 입력 받기
a = input(" 숫자를 입력하세요. ")
# print 자세히 알기
a = 123
print(a)

123

a = "Python"
print(a)

Python

a = [1,2,3]
print(a)

[1, 2, 3]

# 큰따옴표(")로 둘러싸인 문자열은 + 연산과 동일하다
print("life" "is" "too short")
print("life" + "is" + "too short")
# 문자열 띄어쓰기는 콤마로 한다
print("life", "is", "too short")
# 한 줄에 결괏값 출력하기
for i in range(10):
    print(i, end='')

lifeistoo short

lifeistoo short

life is too short

0123456789

 

 

파일 읽고 쓰기

# C:/doit 디렉터리에 새파일.txt 생성
f = open("C:/doit/새파일.txt", 'w')
f.close()

'''
만약 역슬래시(\)를 사용한다면 "C:\\doit\\새파일.txt" 처럼 역슬래시를 2개 사용하거나 
r"C:\doit\새파일.txt"와 같이 문자열 앞에 r 문자(Raw String)를 덧붙여 사용해야 한다.
 "C:\note\test.txt"처럼 파일 경로에 \n과 같은 이스케이프 문자가 있을 경우 
 바꿈 문자로 해석되어 의도했던 파일 경로와 달라지기 때문
 '''

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90