23.02.01 Day 03

오윤범·2023년 2월 1일
0

Python

Format / f' 익숙해지기

  • format

n1 = '윤범'
n2 = '창엽'
print('{0}이랑 {1}이는 친구이다'.format(n1, n2))
--------------------출력-----------------------
윤범이랑 창엽이는 친구이다.
--------------------출력-----------------------
n1 = '윤범'
n2 = '창엽'
print('{1}이랑 {0}이는 친구이다'.format(n1, n2))
--------------------출력-----------------------
창엽이랑 윤범이는 친구이다.
--------------------출력-----------------------
  • f'

name='윤범'
print(f'{name}이는 26살 이다')
print('{0}이는 26살 이다'.format(name))
--------------------출력-----------------------
윤범이는 26살 이다
윤범이는 26살 이다

--> f'{name} 과 '{0}이는 26살이다'.format(name) 과 같은 역할임
--> f' 와 Format 자유자재로 다룰 수 있게 연습 필요할듯

Control_Flow

  • if

# if + while
while(1):
    name=input()
    if name=='종료':
        print('while문을 종료합니다')
        exit()
    else:
        if name=='윤범':
            print('오윤범')
        elif name =='히동':
            print('우히동')
        else:
            print('윤범/히동 중 입력하세요')
--------------------출력-----------------------
--------------------출력-----------------------
입력
윤범/히동 중 입력하세요
윤범
오윤범
히동
우히동
종료
while문을 종료합니다
  • for

arr=[11,22,33,44,55]
sum=0
for i in arr:
    #print(f'{i:1.0f}')
    print(i,end=' ')
    sum+=i
print()
print('list 합계 :',sum)
--------------------출력-----------------------
--------------------출력-----------------------
11 22 33 44 55
list 합계 : 165

--> for i in [11,22,33,44,55] 의 형태로 i에 list의 값들인 11 22 33 44 55 가 삽입

arr=[1,2,3,4,5]
for i in range(0,len(arr)):
    print(i+1,'번째 수는',arr[i],'입니다')
--------------------출력-----------------------
--------------------출력-----------------------
1 번째 수는 1 입니다
2 번째 수는 2 입니다
3 번째 수는 3 입니다
4 번째 수는 4 입니다
5 번째 수는 5 입니다

--> Formating 보다는 확실히 이게 익숙하다

  • 구구단

for i in range(2,10):
    print(i,'단')
    for j in range(1,10):
        print(i,'*',j,'=',i*j)
    print('-----------')
--------------------출력-----------------------
--------------------출력-----------------------
22 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
-----------
9단까지 반복
  • 구구단 정렬

for i in range(2,10):
    for j in range(1,10):
        #print(i,'*',j,'=',i*j)
        print(f'{i} X {j} = {i*j:>2}', end=' ')
    print()
--------------------출력-----------------------
--------------------출력-----------------------
2 X 1 =  2 2 X 2 =  4 2 X 3 =  6 2 X 4 =  8 2 X 5 = 10 2 X 6 = 12 2 X 7 = 14 2 X 8 = 16 2 X 9 = 18 
3 X 1 =  3 3 X 2 =  6 3 X 3 =  9 3 X 4 = 12 3 X 5 = 15 3 X 6 = 18 3 X 7 = 21 3 X 8 = 24 3 X 9 = 27

:>2 -> (f' 포맷 함수를 이용한) 오른쪽 정렬

  • while

while True:
    while True:
    print(
    '''
    숫자 입력하세요
    1.입력
    2.검색
    3.수정
    4.삭제
    5.종료
    ''',end='')
    num=int(input('번호입력>> '))
    if num==1:
        print('입력')
    elif num==2:
        print('검색')
    elif num==3:
        print('수정')
    elif num==4:
        print('삭제')
    elif num==5:
        print('종료')
        break
    else:
        print('\t입력오류>1~5 입력')
        continue
--------------------출력-----------------------
--------------------출력-----------------------
숫자 입력하세요
    1.입력
    2.검색
    3.수정
    4.삭제
    5.종료
    5
종료
  • 별찍기

for i in range(1,6):
    print('*'*i)
print()
##
x=1
while(x<=5):
    print('*'*x)
    x+=1
print()
##
for i in range(1,6):
    star='*'*i
    print(f'{star}')
--------------------출력-----------------------
--------------------출력-----------------------
*
**
***
****
*****
for i in range(1,6,1):
    print('*'*i)
for i in range(5,0,-1):
    print('*'*i)
--------------------출력-----------------------
--------------------출력-----------------------
*
**
***
****
*****
*****
****
***
**
*

--> 굳이 Formating 해야할까?

Function

def add(x,y):
    return x+y
    #print(x+y)
def mul(x,y):
    return x*y
def sum(x,y):
    return x-y
def div(x,y):
    return x//y
print(add(1024,2))
#add(1024,2)
print(mul(1024,2))
print(sum(1024,2))
print(div(1024,2))
--------------------출력-----------------------
--------------------출력-----------------------
1026
#1026
2048
1022
512
  • 매개변수 개수 일정치 않은 경우

def adds(*args):
    result=0
    for i in args:
        result+=i
    return result
print(adds(1,2,3,4,5,6,7,8,9,10))
--------------------출력-----------------------
--------------------출력-----------------------
55

--> 파라미터로 *() 동적으로 받을 수 있는 형식
/ 매개변수 개수 아무렇게나 작성하여 함수 호출 가능

  • 함수 결과가 하나 이상일 때

def mul_and_div(x,y):
    return(x*y,x//y)
print(mul_and_div(10,2))
res1,res2 = mul_and_div(10,2)
print(res1,res2)
--------------------출력-----------------------
--------------------출력-----------------------
(20, 5)
20 5

--> print(mul_and_div(10,2)) : 튜플 형태로 반환
--> res1,res2에 각각 값을 넣었을 때는 숫자 값으로 반환

  • 라이프스코프

a=1 
def vartest(a): 
    a+=1 
    return a
a=vartest(a) 
print(a)
---------------------구분---------------------
a=1
def vartest():
    global a # 전역에 있는 a를 함수(지역)에서 가져다 쓰겠다
    a+=1
vartest()
print(a)
--------------------출력-----------------------
--------------------출력-----------------------
2
2

--> global로 선언 시 전역에 있는 a를 함수(지역)에서 가져다 쓰겠다는 의미

  • 람다

def add(x,y):
    return x+y
print(add(10,10))
---------------------구분---------------------
ladd = lambda x,y : x+y
print(ladd(10,10))
---------------------구분---------------------
print((lambda x,y : x+y)(10,10))
--------------------출력-----------------------
--------------------출력-----------------------
20
20
20

--> 세개모두 같은 의미 / 간결하게 표현 가능 / 근데 굳이 써야할까?

0개의 댓글