너무너무 멋져 눈이눈이 부셔

파이썬_재미있는 제어문 본문

강한 파이썬

파이썬_재미있는 제어문

강하다이녀석 2023. 2. 3. 15:52

<제어문>

  • 특정 상황에 따라 코드를 선택적으로 실행하거나 계속 반복하는 제어가 필요함->제어문 활용
  • 순차,선택,반복
  • 파이썬은 기본적으로 위에서부터 아래로 차례대로 명령을 수행
  • 순서도로 표현가능
  • 코드 스타일 가이드
    • 코드를 어떻게 작성할지 : PEP8, 혹은 회사마다 스타일 가이드를 설정하기도 함
  • 들여쓰기
    • 문장을 구분할 때, 들여쓰기를 사용(SPACE 4번 or 1탭)
    • 한 코드 안에서는 반드시 한 종류의 들여쓰기를 사용! ->혼용금지
    • 탭으로 들여쓰기를 하면 계속 탭을 써야함

 

<조건문과 반복문>

조건문

  • 반드시 참 거짓을 판단할 수 있는 조건식과 함께 사용.
  • 조건 표현식 : 조건 표현식을 일반적으로 조건에 따라 값을 정할 때 활용
  • if는 단독으로 사용이 가능.
조건문


if 조건 == True:
    여기 적은 코드가 실행
elif 조건 == True:
    여기 적은 코드가 실행
else:
    여기 적은 코드가 실행

*조건이 참인 경우 :이후 문장을 수행
*조건이 거짓인 경우 else: 이후의 문장 수행
<조건 표현식>=삼항 연산자  

True 인 경우 값 if 조건 else False 인 경우 값
value =     num     if num >= 0      else -num
:절댓값을 저장하기 위한 코드
<중첩 조건문>
  • 중첩 조건문: 조건문은 중첩 가능. (1 이면서 2 이면!)
    *if 조건1 and 조건2:
        조건1이 참이라도 조건2가 거짓이면 아예 넘어감.둘이 다르니까 조심해서 사용해야 함.

if 1:
    코드
    if 2:
         코드
예시  
age = 21

if age >= 20:
    print('성인')
else:    
    print('미성년자')
만약 나이가 20 이상이면:
성인
아니면:
미성년자라고 출력해줘
result = '좋음' #값을 넣고 다른 필터 넣어서 값 바꾸기
if dust > 150:
    result = '매우 나쁨'
elif dust > 80:
    result = '나쁨'
elif dust > 30:
    result = '보통'
print(result)
    
dust = 120

if dust > 150:
    print('매우 나쁨')
elif dust > 30:
    print('보통')
elif dust > 80:
    print('나쁨')
**위에서 아래로 계산하기 때문에, 여기서 결과가 '보통'으로 나옴! 주의 ***

**falsy : 0, {},[]... ->False로  처리

num = 2
if num % 2:
    result = '홀수입니다.'
else:
    result = '짝수입니다.'
print(result)
  • 0이외의 값->Ture
  • 0->False
  • input(): 값 입력받기->문자열로 입력받음.

 

반복문

  • 특정 조건을 만족할 때까지 같은 동작을 반복

 

while문(반복 횟수는 모르겠지만 특정 조건을 알고 있을 때)

종료 조건에 해당하는 코드를 통해 반복문을 종료시켜야 함

while 조건식: (조건식이 일경우 반복적으로 코드를 실행)
    <코드블럭>

while 문은 무한 루프를 하지 않도록 종료 조건이 반드시 필요.
 


i = 0
while i < 10:
    i += 1 #i = i + 1
    print(i)
print('반복문 끝!')

1
2
3
4
5
6
7
8
9
10
반복문 끝!

 

for문(반복의 횟수를 내가 알고 있을 때)

  • 반복 가능한 객체를 모두 순회하면 종료(별도의 종료 조건이 필요없음)
  • 시퀀스를 포함한 순회 가능한 객체의 요소를 모두 순회(iterable:하나하나 접근 가능한 거)
  • range(문자열의 길이)와 자주 활용
  • range(1,10) -> 1,2,3,4,5,6,7,8,9 (시작 포함 끝 미포함!)

 

  • 리스트 comprehension
    • 특정한 값을 가진 리스트 생성방법
    • [code for 변수 in iterable] *코드는 변수를 활용한 거여야 함
      • ex) [num for num in range(1,11)]
      • lst1 = [0 for _ in range(100)] #_ 변수로 활용 안 할때
    • [code for 변수 in iterable if 조건식]
  • 딕셔너리 comprehension
    • 특정한 값을 가진 딕셔너리를 생성하는 방법
    • {key: value for 변수 in iterable}
 
for 문 딕셔너리 순회
for <임시변수명> in <iterable>:
    <코드블럭>

*iterable 순회 가능한 객체:


-기본적으로는 key를 순회를 한다
-dict[key]를 해줘야 밸류값이 나옴
-밸류를 이용해서 키를 얻는 건 안됨


<추가 메서드를 활용한 딕셔너리 순회>

dict.key():key로 구성된 결과
dict.values():value로 구성된 결과
dict.item(): (key,value)의 튜플로 구성된 결과
range()   



for i in range(1, 11, 3):
    print(i)


for i in range(10, 1, -1):
    print(i)

# range(10) --> '0,1,2,3,4,5,6,7,8,9' 형태의 덩어리를 만듦.

 #range(시작,종료,step) 시작은 포함 종료는 미포함

# -1의 경우 거꾸로. (10,9,8,7,6,5,4,3,2)
enumerate 순회  

인덱스와 객체를 쌍으로 담은 열거형 객체 반환
(index,value) 형태의 튜플로 구성된 열거 객체 반환
enumerate(members, start = 1)_>1부터 시작
 

 

반복문 제어: break(반복문 끝!) , continue(바로 다음번으로 넘어감), for-else

  • break :반복문을 종료
  • continue: continue 이후 코드 블록은 수행하지 않고 다시 조건문으로 가서 다음 반복을 수행
  • for-else: 끝까지 반복문을 실행한 이후에 else문 실행 
  • pass : 아무것도 하지 않음 (문법적으로 필요하지만 할 일이 없을 때 사용) **continue랑 다름!!
break 예시
 
e = 0
while True:
    print(e)
    e += 1
    if e == 10:
        break

0
1
2
3
4
5
6
7
8
9
for-else 예시
 
lst = [2,4,6,8,10]
for num in lst:
    print(num,end=' ')
    if num % 2 ==1:
        print('홀수자냐!')
        break
else:
    print('홀수가 업다')
for문을 다 한 후 바로 else 출력
2 4 6 8 10 홀수가 업다
 
  • 복합 연산자 : 연산과 할당을 합쳐 놓은 것. ex) a += 1 (a = a + 1 과 동일)
  • 모르는 기능 ***파이썬 문서***에서 확인하기! 
 

 

(3)함수

자주 쓰는 코드를 따로 저장해놓고 불러서 사용
 
def 함수이름():
    함수 내용
반 자기소개 시키기/
def greeting(name):
    print('안녕하세요')
    print(f'저는 {name}입니다.')
    print('잘 부탁드립니다.')
#함수를 실행할 때 이름이 달라.
#함수를 실행하기 위해서 필요한 값을 받아올 수 있음
#매개 변수(파라미터)를 이용해서 받아올 수 있음.
greeting('김응애') #함수 호출할 때 넣어주는 값: 인자
greeting('이응애')
greeting('김또깡')
안녕하세요
저는 김응애입니다.
잘 부탁드립니다.
안녕하세요
저는 이응애입니다.
잘 부탁드립니다.
안녕하세요
저는 김또깡입니다.
잘 부탁드립니다.

예제1.

#두 정수를 더해서 그 결과를 출력하는 add라는 함수를 만들어 봅시다.
# def add (a,b):
#     #print(a + b)
#     return a + b
#     #함수의 맨 마지막에 아무것도 쓰지 않으면  return None

# add(3,5)
# add(5,10)
# #사실 함수 실행 목적은... 값을 얻어오고 싶을 때가 많음.
# #len(arr):덩어리 데이터 요소의 개수를 준다.
# a = add(5,10) #얘는 아무것도 안줍니다. 사실은 none을 줍니다.
# #값을 받아오기 위해서는? 함수가 '결과'를 반환해야 함.
# print(f'a = {a}')
 
 
lotto.sort()#정렬할 때 리스트 내부의 sort()함수를 이용. 리스트 자체가 정렬이 됨.
print(sorted(lotto))#sorted: 내장함수. 인자로 주어진 리스트를 이용해서 정렬된 새로운 리스트를 만들어냄

 

 

 

 

api(applicaiton programming interface)

  • 컴퓨팅 처리를 쉽게 해주는 기능
  • 서비스를 제공하는 제공자가 주는 데이터를 사용하기 위한 수단.
  • 어떤 형태로?>일반적으로 json라는 형태로 제공.  ex) {"age":62, "count":298219,}

{"key" : "value", "key2" : "value", "key3" : {"k" : "v", "k2" : "v2"} ,"key4 : [{ } { } { }]...}

클라이언트 ------>요청-주소------>서버

                  <------응답- 문서(json)<------

json: 자바 스크립트 객체 표기법

복합적인 형태의 데이터를 사용할 때 유용.

html 에서 내가 원하는 정보만 빼오는 거  = 크롤링

'강한 파이썬' 카테고리의 다른 글

파이썬 기본 문법-변수와 연산자  (0) 2023.08.07
파이썬_함수  (0) 2023.02.06