- 파이썬에서는 블록을 표현할 때 들여쓰기(인덴트)를 사용합니다.
- 기본적으로 스페이스 4칸 혹은 탭 한번 으로 가능지만, IDE에 따라 변경 가능합니다(4번의 스페이스를 2번으로 변경하거나)
- 다만, 하나의 블록에서 한줄은 스페이스 4칸, 한줄은 탭 1번, 이런식으로의 교차사용은 불가능합니다 (제가 써본 것들 중에서는)
- 너무 기초적인 것들이라 기본적인 내용만 빠르게 훑어보고 끝내기!
if문
if True조건 :
내용
elif :
내용
else:
내용
score = 90
if score >= 80:
print('Grade A')
elif score > 70 and score < 80:
print('Grade B')
else:
print('Grade C')
for문
for 인덱스/변수 in 범위:
내용
* 범위에 리스트나 튜플, 딕셔너리 모두 사용 가능
* 인덱스에 C/C++ 처럼 단순한 값을 받는 것이 아닌 형 자체를 받는 것이 가능함. ex) dict.items()
list = [1, 2, 3, 4, 5]
for i in list:
print(i) # 1, 2, 3, 4, 5
tuple = (6, 7, 8, 9, 10)
for i in tuple:
print(i) # 6, 7, 8, 9, 10
dict = {'a':1, 'b':2, 'c':3}
for i in dict:
print(i) # a, b, c
for i in dict.values():
print(i) # 1, 2, 3
for i in dict.keys():
print(i) # a, b, c
for i in dict.items():
print(i) # ('a', 1), ('b', 2), ('c', 3)
반복문에서 자주 사용되는 range() 구문
* range(시작값, 종료값, 스텝) 으로 사용합니다. 시작값부터 종료값까지, 종료값은 제외하면서 스텝만큼 상승하며 값을 생성합니다.
* 반복문 자체에서는 range() 만으로 사용하여도 문제없으나, 반복문 이외에서 사용할때는 list(range())형태로 리스트로 사용하는게 편해보이네요.
print(list(range(0, 10, 1)))
# 1부터 시작해서 10까지 1씩 커지면서 값을 생성 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(range(0, 10, 2)))
# 1부터 시작해서 10까지 1씩 커지면서 값을 생성 [0, 2, 4, 6, 8]
print(list(range(0, 10)))
# 마지막 항을 생성하지 않으면 기본값 1을 할당함 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(range(10)))
# 숫자 하나만 입력하는 경우 자동적으로 0부터 +1씩 추가하며 생성 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(range(10, 0, -1)))
# [불가능한 경우 아무것도 없는 리스트 입력]
print(list(range(0, 10, -1)))
# 불가능한 경우 아무것도 없는 리스트 생성
for i in range(0, 10, 1):
print(i) # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
while문
* else구문은 while이 종료된 후 실행할 내용이며, 필수 구문은 아닙니다.
while 조건:
내용
else:
내용
a = 0
while a < 5:
print(a) # 0, 1, 2, 3, 4
a += 1 # a = a + 1 과 동일
else:
print('Finished')
########## 결과
0
1
2
3
4
Finished
반복문에서의 중단과 다음 반복으로 이동 (break, continue)
* break : 반복문을 종료함 - while - else 구문에서 break에 걸리면 else구문이 실행되지 않습니다.
* continue : 반복문에서 continue 이후에 작성된 내용을 실행하지 않고 다음 반복문의 처음으로 이동합니다.
ex) 아래 구문에서 if a==3에 걸리면, a=4가 되며 (a+=1) 반복문의 처음으로 이동되므로 print(a)가 실행되지 않은 채 a=4에서의 while문을 맞이합니다. 이후 a==5에서의 break가 걸리므로 else구문은 실행되지 않습니다.
a = 0
while a <10:
if a==3 :
a+=1
continue
if a==5 :
break
print(a)
a+=1
else:
print('Finished') # 반복 도중 break에 걸리면 실행되지 않음
######### 결과
0
1
2
4
내포 표현(Comprehension)
: 이터러블한 오브젝트(문자열, 리스트, 집합, 딕셔너리)에서 요소를 순서대로 변수로 꺼낸 후, 변수를 사용한 식을 적용하여 순서대로 리스트의 요소로 저장하는 방식
* 굉장히 자주 사용되는 구문으로 반드시 숙지하는 것이 좋습니다.
* 간단하게 요약하자면 여러 줄로 표현된 아래의 리스트의 항목을 제곱하여 반환하는 구문을
a = [1, 2, 3, 4, 5]
asquare = []
for i in a:
asquare.append(i**2)
print(asquare) # [1, 4, 9, 16, 25]
* 이와같이 한줄로 변경 가능합니다.
식은 [식 for 변수 in 이터러블한 오브젝트] 입니다.
설명하자면, 기본 for구문에서 for i in a를 실행하면 a의 요소를 순서대로 i로 가져오게됩니다. 그때 i**2으로 제곱하여 asquare2에 append하겠다는의미, 즉 위쪽 내용과 완전히 동일한 것이죠.
asquare2 = [i**2 for i in a]
print(asquare2) # [1, 4, 9, 16, 25]
* 조건문을 포함한 채로도 작성 가능합니다.
식은 [식 for 변수 in 이터러블 오브젝트 if 조건] 입니다.
asquare3 = [i**2 for i in a if i%2==0]
print(asquare3) # [4, 16]
'프로그래밍 기초 스터디 > 파이썬 - Python' 카테고리의 다른 글
파이썬 공부 ⑤ 함수, 변수의 범위(지역, 전역변수), 제너레이터 (0) | 2021.06.07 |
---|---|
파이썬 공부 ③ 리스트, 튜플, 딕셔너리, 집합 (0) | 2021.06.06 |
파이썬 공부 ② 연산자 (계산/대입/비교/삼항 연산자) (0) | 2021.06.03 |
파이썬 공부 ① 기본 : 문자열, 서식 출력 (0) | 2021.06.03 |
댓글