강한 파이썬
파이썬_재미있는 제어문
강하다이녀석
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 :절댓값을 저장하기 위한 코드 |
|
<중첩 조건문> |
|
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 에서 내가 원하는 정보만 빼오는 거 = 크롤링