뭉지(moonz)
작은 발자국들의 위대한 여정
뭉지(moonz)
  • All (201)
    • Test Code (4)
    • 백엔드 개발하며 작성한 (26)
      • Spring (17)
      • 데이터베이스 (6)
      • 기억할 내용 (3)
    • 언어 (53)
      • Java (25)
      • node.js (7)
      • Python (21)
    • 클라우드 (6)
    • Algorithm & Data Structure (51)
      • 개념 (15)
      • 문제 풀이 (36)
    • 유용한 모든 것 (16)
    • monologue (7)
      • 업무 노트 (1)
      • 관리 로그 (0)
      • 내 이야기 공책 (6)
    • Project (2)
    • TroubleShooting (8)
    • 지식 (18)
      • Machine Learning (6)
      • Review (7)
      • Web (5)
    • Computer Science (5)

블로그 메뉴

  • 홈
  • 태그

인기 글

최근 글

최근 댓글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
뭉지(moonz)

작은 발자국들의 위대한 여정

파이썬 기초 문법2 (기본 입출력과 반복문&조건문)
언어/Python

파이썬 기초 문법2 (기본 입출력과 반복문&조건문)

2021. 1. 2. 12:23
반응형
Youtube '동빈나' - [이코테 2021 강의 몰아보기] 영상을 보고 복습하는 글입니다.

3. 기본 입출력

ㄱ. 기본 입출력

▶모든 프로그램은 적절한 입출력 양식을 가지고 있음.

▶자주 사용되는 표준 입력 방법

  - input() 함수 : 한줄의 문자열을 입력 받는 함수.

  - map() 함수 : 리스트의 모든 원소에 각각 특정한 함수를 적용할 때 사용하는 함수.

     ex) 공백을 기준으로 구분된 데이터(한줄)를 입력받을 때,

           list(map(int, input().split()))   :  input()으로 한줄의 문자열을 입력받으면, split()으로 공백을 기준으로 구분하고, 구분된 각 원소를 정수형으로 바꿔준 후에,  list로 만들어주어 저장.

     ex) 공백을 기준으로 구분된 데이터의 개수가 많지 않으면,

           a, b, c = map(int, input().split())   : list로 만들어주지 않고, 각 변수에 저장.

           +) 우측은 packing, 좌측은 unpacking이라 할 수 있음.

# 데이터의 개수 입력

# 각 데이터를 공백을 기준으로 구분하여 리스트로 저장.

# 내림차순 정렬

 

 

* list(map(int, input().split()))은 코딩테스트에서 자주 쓰이므로 차근차근 뜯어보겠다.

-> Input = 10,20,30,40,50이라 가정하면

>> data = list(input())

['1', '0', ' ', '2', '0', ' ', '3', '0', ' ', '4', '0', ' ', '5', '0']

>> data = list(input().split())

['10', '20', '30', '40', '50']

>> data = list(map(int(input().split()))     # 모든 원소를 int형으로.

[10,20,30,40,50]

 

ㄴ.빠르게 입력받기 : 사용자로부터 입력을 최대한 빠르게 받아야하는 경우

- system 라이브러리에 정의된 sys.stdin.readline() 메서드를 이용! 

단, 입력 후 Enter가 줄바꿈 기호\n로 입력되므로 rstrip()메서드를 이용해서 오른쪽에 붙어있는 줄바꿈 기호를 제거할 수 있음. (좌측 사진은 rstrip() 안 쓴 경우)

import sys

data = sys.stdin.readline().rstrip()	#한줄로 입력된 데이터가 data에 저장.
print(data)

* 2진탐색, 정렬, 그래프 관련 문제에서 시간초과를 예방하기위해 자주 쓰임.

 

ㄷ. 자주 사용되는 표준 출력 방법

▶파이썬의 기본 출력인 print() 함수는 콤마를 이용하여 띄어쓰기로 구분 출력 가능하다.

▶print()는 기본적으로 출력 이후에 줄바꿈을 수행한다.

    - 줄 바꿈을 원하지 않는 경우, 'end' 속성 이용!

a = 1
b = 2
print(a,b)
print(7, end= " ")
print(8, end= " ")	# end 속성의 값으로 공백문자

answer = 7
print("정답은 " + str(answer) + "입니다.")	
# python에서 문자열은 정수형과 더하기연산으로 출력안되기 때문에, str으로 바꿔준 후 출력.

1,2 출력 후에 기본적으로 줄 바꿈 수행. end속성 이용하면 줄바꿈 X

 

 

▶f-string : 특정한 문자를 간단하게 사용하기 위한 문법.

    - 문자열 앞에 접두사 'f'를 붙여 사용하고, 중괄호 안에 변수명을 기입하여 문자열과 정수(다른 자료형들)를 함께 사용 가능!

 

 

5. 조건문

ㄱ. 조건문

▶조건문 : 프로그램의 흐름을 제어하는 문법

    조건에 따라 프로그램의 로직을 설정할 수 있다.

▶파이썬에서 코드의 블록을 들여쓰기로 지정한다. (들여쓰기는 4개의 공백문자가 일반적이다.)

▶기본적인 형태 : if ~elif ~else형태

     if 조건문 1:    조건문 1이 True일 때 실행

     elif 조건문 2:     조건문 1이 False, 조건문2가 True일 때 실행

     else :               조건문 1,2가 모두 False일 때 실행

x = 15

if x>= 10:
    print("x는 10 이상이다.")
if x>=0:
    print("x는 0 이상이다.")
if x>=30:
    print("x는 30 이상이다.")

▶예제 : 성적 구간에 따른 학점 출력 예제

 

ㄴ. 비교 연산자

▶특정한 두 값을 비교할 때 이용

비교 연산자 설명
X == Y X와 Y가 서로 같을 때 참(True)이다.
X != Y X와 Y가 서로 다를 때 참(True)이다.
X > Y X가 Y보다 클 때 참(True)이다.
X < Y X가 Y보다 작을 때 참(True)이다.
X >= Y X가 Y보다 크거나 같을 때 참(True)이다.
X <= Y X가 Y보다 작거나 같을 때 참(True)이다.

* 다른 프로그래밍 언어와 다르게 파이썬에서는 '0 < x and x < 20' 이 아닌 '0< x < 20' 이라고 적을 수 있음.

ㄷ. 논리 연산자

▶논리 값 사이의 연산을 수행할 때 이용  (python은 ! ,  && 이런 기호를 쓰지 않음!) 

논리 연산자 설명
X and Y X와 Y 모두 참일 때 참(True)이다.
X or Y X 와 Y 중에 하나만 참이어도 참(True)이다.
not X X가 거짓(False)일 때 참(True)이다.

ㄹ. 기타 연산자

▶다수의 데이터를 담는 자료형을 위해 in 연산자 , not in 연산자가 제공된다. -> 원소가 포함되어있는지를 확인하는 연산자

▶리스트, 튜플, 문자열, 딕셔너리 모두에서 사용이 가능하다.

in 연산자와 not in 연산자 설명
X in 리스트 리스트 안에 X가 들어있을 일 때 참(True)이다.
X not in 문자열 문자열 안에 x가 들어있지 않을 때 참(True)이다.

ㅁ. 파이썬의 pass 키워드 : 아무것도 처리하고 싶지 않을 때 사용

ex) 디버깅 과정에서 일단 조건문의 형태만 만들어 놓고 조건문을 처리하는 부분을 비워놓고 싶은 경우

score = 85

if score >= 80:
	pass  	# 나중에 작성할 소스코드  (만약 pass를 안적어주면 오류발생하기 때문에)
else:
	print("성적이 80점 미만입니다.")
    
print("프로그램을 종료합니다.")		# 출력결과는 해당 문장만 출력된다.

 

ㅂ. 조건문의 간소화

▶조건문에서 실행될 소스코드가 한줄인 경우, 줄바꿈을 하지 않고 표현한다.

score = 85

if score>=80: result = "Success"
else: result = "Fail"

print(result)

▶조건부 표현식(Conditional Expression) : if~else문을 한줄에 작성할 수 있음.

score = 85
result = "Success" if score>=80 else "Fail"	# [if실행문] [if문] [else] [조건 else실행문]

print(result)

6. 반복문

▶특정한 소스코드를 반복적으로 실행하고자 할때 사용하는 문법 (for문, while문)

▶코딩 테스트에서는 for문이 while문보다 더 간결한 경우가 많음.

 

ㄱ. while문

# while문
i = 1
result = 0

# 1~9 홀수 합 구하기.
while i <= 9:		#i<=9가 참일 때까지 반복
	if i % 2 == 1 :
	    result += i
    i += 1
    
print(result)

▶while 반복문에서의 무한 루프(끊임없이 반복되는 반복 구문)는 코딩테스트에선 구현할 일이 거의 없으니 유의해야한다.

-> 반복문을 작성한 뒤에는 항상 반복문을 탈출할 수 있는지 확인!

 

ㄴ. for문

# for문 : 특정한 변수 i를 이용하여 'in'뒤에 오는 데이터(리스트, 튜플 등)에 포함된 원소를 1번째 인덱스부터 차례대로 방문.
array = [9, 8, 7, 6, 5]		# array = (1,2,3,4,5) 튜플도 가능.
for x in array:
	print(x)

 

▶for 반복문에서 연속적인 값을 차례대로 순회할 때는 range()를 주로 사용한다.

     range(시작 값, 끝 값+1) 형태로 사용  - but, 인자를 1개만 넣으면 자동으로 시작값은 0.

result =0
for i in range(1,10):	# 1부터 9까지
	result += i
print(result)

▶파이썬의 continue 키워드 : 반복문에서 남은 코드의 실행을 건너뛰고, 다음 반복을 진행하고자 할 때 사용.

result = 0

for i in range(1,10):
	if i % 2 == 0:
    	continue		# i가 짝수일때는 result에 값을 더하지 않기 위해 사용.
    result += i
print(result)

▶파이썬의 break 키워드 : 반복문을 즉시 탈출하고자 할 때 사용

i = 1
while True:
	print("현재 i의 값:", i)
    if i == 5:
    	break		# i가 5일 때까지 while문 반복
    i += 1

예제) 학생들의 합격여부 판단 예제 - 특정 번호의 학생은 제외하기 (continue 사용)

scores = [90, 85, 77, 65, 97]
cheating_student_list = [2, 4]		# 부정행위한 학생 번호

for i in range(5):
	if i + 1 in cheating_student_list:	
    	continue
    if scores[i] >= 80:
    	print(i+1, "번 학생은 합격입니다.")

ㄷ. 중첩된 반복문 (ex-구구단 예제)

#2단부터 9단까지의 구구단
for i in range(2, 10):
	for j in range(1, 10):
    	print(i, "X", j, "=", i*j)
    print("===========")

▶총 8*9 = 72번 반복하는 것이다.

 

다음 글은 「파이썬 기초문법」의 마지막 글로 '함수와 람다 표현식, 라이브러리'를 복습하는 글이 될 것이다.

반응형
저작자표시 (새창열림)

'언어 > Python' 카테고리의 다른 글

[colab] 1. 코랩 설치 및 기초 명령어  (0) 2021.01.17
파이썬 기초 문법2 (함수와 람다 표현식, 라이브러리)  (0) 2021.01.02
라즈베리파이의 GPIO  (0) 2020.11.06
Beautiful Soup 사용하여 html 분석하기  (0) 2020.09.07
기상청 날씨 데이터 cmd창에서 직접 불러오기  (0) 2020.09.05
    '언어/Python' 카테고리의 다른 글
    • [colab] 1. 코랩 설치 및 기초 명령어
    • 파이썬 기초 문법2 (함수와 람다 표현식, 라이브러리)
    • 라즈베리파이의 GPIO
    • Beautiful Soup 사용하여 html 분석하기
    뭉지(moonz)
    뭉지(moonz)
    제가 깨달은 것을 정리하는 공간입니다. 🧡

    티스토리툴바