TIL#04 생활코딩 Python 제어문,Boolean,조건문과 논리연산자
9강 (문법) 제어문 소개
하나하나의 기능을 순서대로 실행하는 것이 우리 사람이 하는 일이다.
그리고 컴퓨터를 사용한다고 했을 때 그 순서를 설계하는 것이 가장 중요한 일이다.
그런데 그런 일을 하다보면 반복되는 일이 있고 반복되는 일을 하다보면 지친다.
그러면 아 이런 반복되는 일을 누구한테 시키고 싶어진다.
그래서 고용관계가 생길수도 있는거고
그런데 그걸 기계에게 시키고 싶다는 생각을 하게 되면 그것이 오늘날의 컴퓨터가 된거다.
그래서 프로그램이라는 말에 가장 중요한 의미는
컴퓨터가 일을 순서대로 실행시켜야 할 때 기능이 실행되도록 하는 것이다.
그것이 프로그래밍이라는 것이고 그렇게 해서 만들어진 순서들을 우리가
프로그램이라고 한다.
순서대로 실행되는 것만으로도 충분히 혁명적이고 우리는 많은걸 할 수 있다.
그런데 사람의 욕심은 끝이 없다.
시간이 지남에 따라
어떤 경우에는 실행된 순서가 a로 실행됐다가 또 어떤 경우는 b로 실행되게 하고 싶을 수 있다.
조건에 따라서 다르게 실행되도록 하는것
그걸 조건문이라고 부른다.
그리고 어떤 조건이 만족되는 동안에는 어떤 일을 반복적으로 해야되는 일이 필요할 때가 있다.
그런 경우 사용하는게 반복문이다.
기본적으로는 순서대로 실행된다는 것 아래에서 그 실행되는 흐름을 바꾸는 반복문이나 조건문을
퉁쳐서 제어문이라고 한다.
9강 (문법) Boolean
세번쨰 데이터 타입인 boolean불리언을 알아보자.
#Number
print(1) #Integer(정수)
#String
print('Hello world')
#Number
숫자는 무한히 많다.
#String
엄청나게 많다.
#Boolean
print(True) #참
print(False) #거짓
#Boolean
2개의 데이터로 이루어져 있다.
true = 1;을 하면 에러가 난다. 왜냐하면 true는 불리언에 true,false를 사용하기 위해서
예약된 키워드이기 때문이다. 그렇기 때문에 true라고 하는 변수를 사용할 수 없다.
/////////////////////////////////////////////////////////////////
#Expression(값을 표현한다)
print(1+1) #2
print('Hello '+'world') #Hello world
1+1은 숫자 2를 표현하는 표현식이다.
print('Hello '+'world')
여기서 +는 숫자를 더하는 산술연산자가 아니라 왼쪽과 오른쪽의 스트링을 합성해서
하나의 값으로 만드는 결합연산자이다.
'Hello '+'world'는 Hello world라고 하는 하나의 스트링을 표현해 주는 표현식이다.
이런 연산자는 좌항과 우항을 합쳐서 하나로 만들어 준다는 점에서 이항 연산자라고 한다.
#Comparison operator(비교 연산자)
print(1==1) #True
print(1<2) #True
print(2<1) #False
/////////////////////////////////////////////////////////////////
#Membership operator
print('world' in 'Hello world') #True
여기서 in은 뒤에 있는 값에 앞에 있는 값이 멤버인가 포함되어 있는가를 확인하는 연산자
//////////////////////////////////////////////////////////////////
현재 디렉토리에 어떤 파일이 있는지 없는지를 우리가 확인하고 싶을 떄가 있다.
import os.path
print(os.path.exists('boolean2.py'))
import.os.path는 os라는 일종의 명령들을 모아놓은 디렉토리 밑에 패스라는 디렉토리 밑에 있는 명령들을 가져온다.
print(os.path.exists('boolean2.py')) #boolean2.py이 exists 존재하냐
////////////////////////////////////////////////////////////////////
불리언(Boolean) 데이터 타입은
논리 안의 순서에서 어떤 조건을 만났을 때 그 조건이 어떤 상태에 있는지 우리가 체크할 수 있도록 도와
주는 것이라고 생각하면 된다.
11.1강 (문법) 조건문
조건문(conditional statement)
우리가 이 프로그램을 실행하면서 사용자에게 어떤 정보를 요구할 수 있다.
그때 사용하는게
input()
인풋이라고 하는 이 코드는 사용자가 입력하고 엔터를 친 그 값이 값으로 표현되는 표현식이다.
user_input = input('password?') #password? egoing
print(user_input) #egoing
user_pwd = input('password?')
if user_pwd == '111111': #숫자가 아니라 문자로 해야함
print('Hello master')
콜론(:)이 나오기 전까지는 true나 false에 해당되는 값이 들어오는 것이고 true면 콜론(:)이후의 부분이 실행된다.
/////////////////////////////////////////////////////////////////////////////
한가지 조심해야 할 것이 있다.
파이썬은 서로 같은 블럭에 속하는 코드를 같은 들여쓰기로 구분하는 아주 중요한 특징이 있다.
즉 들여쓰기를 할 때는 똑같은 형식을 이용해서 띄어쓰기를 해야한다.
if user_pwd == '111111':
print('Hello master') #탭
print('hi') #스페이스바 두 번
하나는 스페이스 바 두번으로 띄어쓰기를 하면 문법적으로 오류가 난다.
탭을 썼으면 밑에서도 탭을 쓰고
스페이스바 두번을 쓰고 싶으면 위 아래 모두 똑같이 해야한다.
//////////////////////////////////////////////////////////////////////////////////////
'''
if user_pwd == '111111':
print('Hello master')
else: #false면 else부분이 실행됨
print('Who are you?')
'''
''' '''독스트링을 사용하면 문자를 나타내는데 이렇게만 하면 사용하지 않고 있기 때문에 주석과 같은 역할을
하게된다.
//////////////////////////////////////////////////////////////////////////////////////
if user_id == 'egoing':
if user_pwd == '111111':
print('Hello master')
else:
print('Who are you?')
else:
print('Who are you?')
이렇게 조건문이라는 것은 중첩해서 사용할 수 있다.
11.2강 (문법) 조건문과 논리연산자
논리 연산자(ogical operator)
논리연산자는 크게 and와 not이 있다.
if user_id == 'egoing':
if user_pwd == '111111':
print('Hello master')
else:
print('Who are you?')
else:
print('Who are you?')
이 코드는 유저id가 egoing이거나(or) 유저pwd가 111111인 사람이 헬로 마스터인가
id가 egoing이면서(and) pwd가 111111인 사람이 헬로 마스터인가?
2번째다.
if user_id == 'egoing' and user_pwd == '111111':
print('Hello master')
elif user_id == 'leezche' and user_pwd == '222':
print('Hello master')
else:
print('Who are you?')
만약에 사용자가 한 명더 있으면 elif(else if)를 사용한다.
if문 이후에 조건이 또 들어가야한다면 elif를 사용하면 된다.
and는 왼쪽에 있는 값, 오른쪽에 있는 값이 모두 포함 되는 연산자다.
True and True # True
True and False # False
False and False # False
or는 왼쪽에 있는 값과 오른쪽에 있는 값중 하나만 true 면 true가 된다.
True or True # True
True or False # True
False or False # False
not은 부정
not True # False
not False # True