기초 물방울/Python

파이썬 입출력~함수 #4

Weeding 2022. 6. 3. 12:24
반응형
SMALL

함수

  • 입력값을 가지고 어떤 일을 수행한 다음에 그 결과물을 내어놓는 것.
  • "반복적으로 사용되는 가치 있는 부분" 을 묶어서
    '어떤 입력값을 주었을 때 어떤 결과값을 돌려준다' 라는 식의 함수로 작성
    (프로그램 흐름을 일목요연하게 볼 수 있기 때문에 함수가 중요함★)
  • Input / Output / 입출력이 없는 경우도 있음
  • def 함수명 (매개변수):
    <수행할 문장>
    ...
    return 리턴 값

함수의 정의

 

 

 

 

입력값이 없는 함수

 

 

 

결과값이 없는 함수

 

 

 

 

append 함수를 사용할 때 None / 즉, 출력이 없는 함수(리턴값이 x)

 

 

 

Pop 함수 사용 / (리턴값 o 출력이 있는 함수)

 

 

 

 

 

입력/출력이 없는 함수

 

 

 

여러 개의 입력값(*args)

*args

 

 

 

키워드 파라미터 (**kwargs)

**kwargs

 

 

 

 

함수의 결과값은 언제나 하나이다.

앞에 결과값만 뽑아 쓰고 싶다면 이런식으로도 활용

 

 

 

 

 

매개 변수에 초깃값 미리 설정하기

 

기본값을 man=True로 해놨고, 만약 False를 입력하면 여자로 출력이 되게 됨! / 함수 위치는 꼭 맞춰야함!

 

 

 

 

함수 매개 변수에 초깃값을 설정할 때 주의할 사항

기본값을 설정하는것은 맨 뒤에 사용해야함!

 

 

 

 

 

 

함수 안에서 선언된 변수의 효력 범위 1/2

왜 1이 나올까? / 지역변수 = 함수 안에서만 쓰임. 고로 출력은 X
global = 전역변수

 

 

 

 

Lambda

= 함수를 간단하게 표현하는 방법

lambda  = 축약모드

 

List나 어디에든 넣어서 쓸 수 있고 정말 편리한 lambda

 

 

 


 

 

사용자 입력과 출력

  • 인자가 없는 함수
  • 대표적인 예로 게시판에 글을 작성한 후 '확인' 버튼을 눌러야만 올라가는(출력)것을 확인할 수 있음.

 

input은 미리 정의되어있는 내장 함수(입력을 받는 함수)

 

 

 

 

 

print문

,를 넣으면 띄어쓰기가 됨.
end의 활용

 

 

 

 

 

파일 읽고 쓰기

  • r = 읽기모드 
  • w = 쓰기모드
  • a = 추가모드
  • 절대주소 : 처음부분(C:/)부터 주소를 써주는 것
  • 상대주소 : 현재 실행하는 파일을 기준으로 상대적인 경로를 써주는 것

 

 

파일을 쓰기 모드로 열어 출력값 얻기

utf-8이 없으면 한글이 깨지기 때문에 유의해야함!

 

 

 

readline() 함수

끝에 f.close() 를 통해 꼭 닫아줘야함!

 

여러줄읽기

readline
readlines 활용

 

end=" "  ///  .strip("\n")  두가지를 활용하여 줄띄움을 없애줌

 

end와 strip 둘 다 활용해서 한줄로 만드는 방법

 

 

 

 

read() 함수 이용하기

'a' 로 추가를 해주면
아까 입력해놓은 1~10번째 줄에 이어 11~19번째까지 추가된 입력값들을 확인할 수 있다!

 

 

 

with문과 함께 사용하기

 

 

 

 

 

 

※  immutable

  • 정수, 실수, 문자열, 튜플(변하지않음)
  • 변하지 않는 자료형

  • a = 1 
    def vartest(a):
          a = a + 1

    vartest(a)
    print(a)

 

  Mutable

  • 리스트, 딕셔너리, 집합
  • 변하는 자료형

  • b = [1, 2, 3]
    def vartest2(b):
          b = b.append(4)

    vartest2(b)
    print(b)

 

 

 


 

Q. 주어진 자연수가 홀수인지 짝수인지 판별해 주는 함수(is_odd)를 작성해 보자.

람다와 조건부 표현식을 사용하여 간단하게 만들수 있다.

 

 

 

 

Q. 입력으로 들어오는 모든 수의 평균 값을 계산해 주는 함수를 작성해 보시오.

(단, 입력으로 들어오는 수의 개수는 정해져 있지 않다.)

def avg_numbers(     ):       
    result = 0
    for i in args:
        result += i
    return

avg_numbers(1, 2)            # 1.5 출력
avg_numbers(1,2,3,4,5)       # 3.0 출력
 
 

 

 

 

 

 

Q. 다음은 두 개의 숫자를 입력받아 더하여 돌려주는 프로그램이다.

 

 

여기에서 3과 6을 입력했을 때 9가 아닌 36이라는 결과값을 돌려주었다면 

이 프로그램의 오류를 수정해 보시오.

 

 

 

 

 

 

 

Q. 다음 중 출력 결과가 다른 것 한개를 골라 보시오.

  1. print("you" "need" "python")
  2. print("you"+"need"+"python")
  3. print("you", "need", "pytyon")
  4. print("".join(["you", "need", "python"]))

 

 

 

 

 

Q. 다음은 "test.txt"라는 파일에 "Life is too short" 문자열을 저장한 후 다시 그 파일을 읽어서 출력하는 프로그램이다.

 

f1 = open("test.txt", 'w')

f1.write("Life is too short")

 

f2 = open("test.txt", 'r')

print(f2.read())

 

이 프로그램은 우리가 예상한 "Life is too short" 라는 문장을 출력하지 않는다. 우리가 예상한 값을 출력할 수 있도록 프로그램을 수정해 보자. 

 

close로 닫아줘야함~!
with 구문을 사용하는 방법

 

 

 

 

 

Q. 사용자의 입력을 파일(test.txt)에 저장하는 프로그램을 작성해 보자.

(단, 프로그램을 다시 실행하더라도 기존에 작성한 내용을 유지하고 새로 입력한 내용을 추가해야 한다.)

 

user_input = input("저장할 내용을 입력하세요:")

f = open('test.txt',           )    

f.write(user_input)

f.write(                )               

f.close()

 

, 안넣어서 오류난부분.....
정상적으로 파일에 추가되었다. (UTF-8 넣어줘야 한글 깨지지 않음)

 

 

 

 

Q. 다음과 같은 내용을 지닌 파일 test.txt가 있다.

이 파일의 내용 중 'java'라는 문자열을 'python'으로 바꾸어서 저장 해보시오.

 

Life is too short

you need java

 

f = open('test.txt', 'r')

body =

f.close()

 

body = 

 

f = open('test.txt',          )

f.write(body)

f.close()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
LIST