본문 바로가기
Hello World/Python

Python - 문자열 처리 / 반복문 / 함수 function : 인수 매개변수 [개발스터디 기몬]

by 기몬 2023. 3. 21.
728x90
반응형

문자열 처리
- 문자열도 시퀀스의 일종 sequence 
값 수정 가능  mutable   참조주소는 하나고 새로 초기화 시 새로운 참조와 값이 생성되는 것 
값 수정 불가  immutable 


In [32]: s = "Hello World"

In [33]: vowals = 'aieouAIEOU'

In [34]: result = ''

In [35]: for ch in s:
    ...:     print (ch)
    ...:
H
e
l
l
o

W
o
r
l
d

In [36]: for ch in s:
    ...:     if ch in vawals:
    ...:          print (ch)
    ...:
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[36], line 2
      1 for ch in s:
----> 2     if ch in vawals:
      3          print (ch)

NameError: name 'vawals' is not defined

In [37]: for ch in s:
    ...:     if ch in vowals:
    ...:          print (ch)
    ...:
e
o
o

In [38]: for ch in s:
    ...:     if ch not in vowals:
    ...:          print (ch)
    ...:
H
l
l

W
r
l
d

반복문에는 for문 과 while문이 있다
for문은 리스트에서 한 항목씩 가져와서 처리한다
range() 함수를 이용하면 정수들의 리스트를 생성할 수 있다.
while 문은 조건이 만족되는 동안 , 반복을 계속한다.''

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


함수
- 함수(funtion)는 특정 작업을 수행하는 
명령어들의 모음에 이름을 붙인 것.
- 함수는 작업에 필요한 데이터를 전달받을 수 있으며, 
작업이 완료된 후에는 작업의 결과를 호출자에게 반환할 수 있다.
: 수학에서의 함수는 반드시 값을 리턴한다. 
프로그래밍에서는 두가지의 함수가 종류가 있다 . :  값을 리턴하는 함수 (= 리터럴 함수_)
값을 리턴하지 않는 함수 (= 프로시져 함수)

함수의 예 ) 
print()
input()
abs(), ...

- 함수 안의 명령어들은 실행하려면 함수를 호출(call)하면 된다
함수 사용 하는 것을  함수 사용이라 함. 
 
함수 작성
def  함수 이름 ( 매개변수 이름1, 2 ):
문장
문장

def gugudan(dan): # 매개변수 (parameter)
    pass        # 함수를 완정하기 전에 임시로 컴파일 에러를 중지 시키는 용

gugudan(2) # argumen : 함수를 실행 할 때 넘겨주는 값
gugudan(3)



함수 Function 
 - 특정 작업을 수행하는 명령어들의 모음에 이름을 붙인 것 
 - 함수는 작업에 필요한 데이터를 전달받을 수 있으며, 작업이 완료된 후에는 작업의 결과를 호출자에게 반환할 수 있다.

입력 함수 출력 
함수를 호출할 때 사용하는 변수 : 매개변수 . 
argument 전달인자 연산자  //
모든 연산자는 하나 이상의 매개변수가 있고 
연산을 하면 항상 값을 리턴한다. 
prameter  매개변수 
함수안에서의 정의 및 사용에 나열되어 있는 변수 
argument  전달인자 
함수를 호출할 때 전달되는 실제 값 의미

함수의 예 
print()
input()
abs(), ....
- 함수 안의 명령어들을 실행하려면 함수 호출 (call) 하면 된다. 
    
>>> value = abs (-100)
>>> value 
100

함수를 왜 사용하나 
중복된 반복적인 코드를 피하고 
재사용이 가능해서 더 편리하기 위해..

함수 작성 

def 함수 이름 (매개변수1, 매개변수2) : 
문장1 
문장1 (함수의 몸체

함수를 정의하는 키워드 def 
매개변수는 외부로부터 작업에 필요한 데이터를 받는다. 없어도 된다. 
: 콜른을 찍어서 함수 정의가 끝나지 않았음을 표시한다. 

함수 사용의 장점 
- 프로그램 안에서 중복된 코드를 제거한다. 
- 복잡한 프로그래밍 작업을 더 간단한 작업들로 분해할 수 있다. 
- 함수는 한번 만들어지면 다른 프로그램에서도 재사용 될 수 있다. 
- 함수를 사용하면 가독성이 증대되고 , 유지 관리도 쉬워진다. 

함수의 이름 
- 함수의 목적을 설명하는 동사 또는 동사 + 명사를 사용

함수호출 
- 함수를 사용하려면 함수를 호출 (call) 하여야 한다. 

함수는 여러번 호출 할 수있다. 

함수를 이용할 때 주의 할 점 
- 파이썬 인터프리터는 함수가 정의되면 함수 안의 문장들은 즉시 실행하지 않는다 
- 함수 정의가 아닌 문장들은 즉시 실행하게 된다.

소수를 판별하는 함수 is_prime()을 작성하여 사용. 


인수와 매개 변수 
- 인수 (argument) 는 호출 프로그램에 의하여 함수에 실제로 전달되는 값이다. 
- 매개 변수 (praameter)는 이 값을 전달받는 변수이다. 

디폴트 인수  (* 자바에는 없다 ) 
- 파이썬에서는 함수의 매개변수가 기본값을 가질 수 있다 
이것을 디폴드 인수 (default arugument) 라고 한다 

키워드 인수 
- 인수들이 위치가 아니고 키워드에 의하여 함수로 전달되는 방식
   (숫서가 바뀌어도 전달이 된다. )

참조값에 의한 인수 전달
- 함수를 호출할 때 , 변수를 전달하는 2가지 방법 
: 값에 의한 호출 (call-by-value)
: 참조에 의한 호출

이뷰터블 객체 전달 (수정불가객체)
def modify1(s): 
s += "To You"

msg = "Happy Birthday"
print("msg = " , msg)
modify1(msg)
print("mdg=", msg)


지역 변수와 전역 변수 
함수의 외부에 있는 전역변수 : 모든 함수에서 참조 할 수 있는 변수 
함수의 내부에 있는 지역변수 

매개변수 = 지역변수 

상수 
- 상수 변하지 않는 수  : 변수를 한번 할당하면 변경 할 수 없는 수 


무명함수 
- 무명 함수는 이름은 없고 몸체만 있는 함수이다. 
파이썬에서 무명함수는 lambda 키워드로 만들어진다 
lambda 인수1, 인수2 : 수식 

모듈이란 ?> 
- 함수나 변수들을 모아 놓은 파일을 모듈 (module)

핵심정리 
- 함수는 동일한 코드를 재사용하기 위한 것이다. 함수는 def로 작성된다..
- 함수 안에서 선언되는 변수는 자역변수이고 함수의 외부에서 선언되는 변수는 전역변수이다. 
- 함수나 변수들을 모아 놓은 파일을 모듈(module)이라고 한다.  


python 함수 

함수모형 Math 함수 . 

def factorial(n):
    value = 1;
    for i in range(1, n+1):
        value *= i
        
    return value

Function 함수 

def gugudan(dan): # 매개변수 (parameter)
    for i in range(1, 10):
        print(f"{dan} X {i} = {dan*i:2}")
    pass

def power(a, b):
    c = a**b
    return c
    pass


for i in range(2, 10):
    print(f"{i}단")
    gugudan(i) # 아규먼트(argument)
    print()

Function 함수2 

def power(a, b):
    c = a**b
    return c
    pass

print(power(2, 3))

def totalSum(limit):
    sum = 0
    for i in range(1, limit+1):
        sum += i
    
    return sum    

value = totalSum(235)
print(value)

for i in range(1, 101):
    print(f'{i} = {totalSum(i)}')

 

Default Argument 디폴트 인수 

def multifly(a, b=2): # default 인수
    return a * b


print(multifly(10, 20), multifly(10), multifly(5))


print("Hello", "World", sep='@', end='\n\n\n')  # keyword 인수
print("Hello", "World", '@', end='\n\n\n')


print("Program End...")

 

Mutable Immutable 뮤터블 / 이뮤터블 

def modify1(v):
    print("v : ", v, id(v))
    v += "###"
    print("v : ", v, id(v))
    
value = "Hello"

print("전 :", value, id(value))
modify1(v=value) 
print("후 :", value, id(value))

print("#"*20)

def modify2(v):
    v += [10]*3
    
value = [1,2,3,4]

print("전 :", value, id(value))
modify2(v=value)
print("후 :", value, id(value))

def modify3(v):
    v += 20
    
value = 10

print("전 :", value, id(value))
modify3(v=value)
print("후 :", value, id(value))


    







    


print("Program End...")

 

 

Global Variable_NonLocalVariable _ 전역변수 지역변수


num = 100 # 전역변수

def xxx():
    # print(num) # 
    global num
    
    num = 200 # 지역변수
    
    print(num) # 지역변수 참조
    
    
xxx()

print(num)    

print("Program End...")

 

TupleAssingment 튜플대입

x = 1
y = 2

x1, y1 = 10, 20 # tuple 대입

print(x1, y1)

x1, y1 = y1, x1

print(x1, y1)

tmp = x1
x1 = y1
y1 = tmp

print(x1, y1)


print("Program End...")

 

import example

from time import sleep
import time as t

def sleep(millis):
    print("%d millis" % millis)


sleep(10)
print("호출전...")
t.sleep(5)
print("호출후...")


print("End...")
728x90
반응형

댓글