점프 투 파이썬 3

김지용·2022년 8월 24일
0

독서

목록 보기
5/11
post-thumbnail

입력과 출력 그리고 함수(140p~)

1. 일반적인 함수(생략) -> 우리가 아는 그 함수임.

2. 입력값이 없는 함수

def say():
    return 'Hi'

a = say()
print(a)
결과 >>> Hi

3. 결과값이 없는 함수

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

# sum(3,4)
결과 >>> 3, 4의 합은 7입니다.

a = sum(3,4)
print(a)
>>> None          # print는 결과값을 리턴하며, 참고로 None는 거짓이다.

4. 입력값도 결과값도 없는 함수

def say()
    print("Hi")

say()
결과 >>> Hi

4번의 쓰임 방법은 단 하나이다 / 함수명()

입력값이 몇개가 될지 모를 때! (147p)

def 함수명(*입력변수):
수행할 문장

입력 인수가 아닌 입력 변수로 값이 변하게 들어올 때

def sum_many(*args):
    sum = 0
    for i in args:
        sum = sum + i
    return sum
ex)
print(sum_many(1,2))
결과 >>> 3
print(sum_many(1,2,3,4,5,6,7,8,9,10))
결과 >>> 55

*args 처럼 입력변수명 앞에 *을 붙이면 입력값들을 전부 모아서 튜플로 만들어준다.
args 말고 다른 단어를 써도 무방하나 arguments의 약자로 관례적으로 자주 사용된다.
*abc 나 *anyword 같이 *를 붙여서 아무 이름이나 써도 된다.

함수의 결과값은 언제나 하나다 (149p)

예를 들어 결과값이 return 1, 3 처럼 2개가 나오는 상황이라면 튜플 (1, 3)을 반환한다.

return의 또 다른 쓰임새

return 하고 뒤에 아무것도 안 적으면 값을 출력하지않고 함수를 즉시 빠져나간다.

입력 인수에 초깃값 미리 설정하기 / (man=True) 부분 (152p)

def say_myself(name, old, man=True):
    print("나의 이름은 %s입니다." % name)
    print("나이는 %d살입니다." % old)
    if man:
        print("남자입니다.")
    else:
        print("여자입니다.")

say_myself("박응용", 27)
say_myself("박응용", 27, True)
결과 >>>
나의 이름은 박응용입니다.
나이는 27살입니다.
남자입니다.

say_myself("박응선", 27, False)
결과 >>>
나의 이름은 박응선입니다.
나이는 27살입니다.
여자입니다.

주의할점 초깃값 설정의 위치를 가운데로 넣으면 첫번째 케이스의 경우 True가 적용되지 않아 에러가 남.

함수 내부선언된 변수를 바깥으로 꺼내는 법(155p~156p)

  1. return 값에 넣어줘서 빼낸다.
  2. 함수내부에서 global a 를 선언해준다. (외부 변수에 종속적인 함수는 나중에 버그를 야기할 수 있으므로 1번째 방법을 권장한다)

print("a" "b" "c d")
결과 >>>abc d
print("a"+"b"+"c d")
결과 >>>abc d
큰따옴표(")로 둘러싸인 문자열은 + 연산과 동일하다

print("a", "b", "c d")
결과 >>> a b c d
문자열 띄어쓰기는 콤마로 한다.

for i in range(10):
print(i, end=" ")
결과 >>> 0 1 2 3 4 5 6 7 8 9

한 줄에 결과값을 계속 이어서 출력하려면 입력인수 end를 이용해 끝문자를 지정해야한다. 안 그러면 반복문을 돌며 세로로 하나씩 출력할 것이다.

파일 읽고 쓰기

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

open이라는 내장 함수

파일 객체 = open(파일 이름, 파일 열기모드)
r 읽기모드 / w 쓰기모드 / a 추가모드 / w 쓰기모드 사용이 기존에 있던 내용이 사라짐.

만약 새파일.txt라는 파일을 C:/Python이라는 디렉토리에 생성하고자 하면 다음과 같이 작성해야한다.

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

write(입력인수) 해당 파일에 입력인수의 내용을 쓴다 / f.write(data)
해당파일.readline() 해당파일의 1번째 줄을 출력한다. / f.readline()
해당파일.readlines() 해당 파일의 줄들을 리스트로 출력한다. / f.readlines()
해당파일.read() 해당 파일의 내용 전체를 문자열로 리턴한다. / f.read()

(166p~~~)

with open("foo.txt", "w") as f:
    f.write("Life is too short, you need python")

위처럼 with 블록을 쓰면 열린 파일객체 f가 자동으로 close 되어 편리하다.

169(피보나치 수열),170(파일 읽고 쓰기) 문제풀이

profile
김죵입니당 ^^

0개의 댓글