💐 혼공파 2주차 CH2-3~03 💐
02-3 변수와 입력
* 변수는 값을 저장할 때 사용하는 식별자이다.
변수를 활용하는 방법에는 3가지가 있다.
① 변수를 선언하는 방법
변수를 생성하는 것
② 변수에 값을 할당하는 방법
변수에 값을 넣는 것
③ 변수를 참조하는 방법 (변수 참조)
변수에서 값을 꺼내는 것
***** 자바, C는 int pi와 같이 변수를 사용할 때 변수의 자료형을 미리 선언해야하지만, 파이썬은 변수에 자료형을 지정하지 않는다. 되도록이면 하나의 자료형을 넣어 활용하는 것이 변수를 구분하는데 편리하다.
a = "문자열", a = True, a = 10
* 복합 대입 연산자
* 사용자 입력 input()
사용자로부터 데이터를 입력받을 때는 input("인사말을 입력하세요> ")와 같이 input 함수를 이용한다.
input 함수 괄호 안에 입력한 내용을 프롬프트 문자열이라고 한다.
프로그램이 실행 도중에 잠시 멈추는 것을 블록(block)이라고 하는데, input() 함수가 사용자에게 자료 입력을 요구하면서 코드 진행을 블록하고 있는 것이다.
input() 함수는 사용자가 무엇을 입력해도 결과는 무조건 문자열 자료형이다.
따라서 input() 함수를 통해 입력 받은 문자열을 숫자 연산에 활용하고 싶다면 문자열을 숫자로 변환해야 한다.
이는 캐스트(cast)라고 부른다.
* ValueError 예외
자료형을 변환할 때 '변환할 수 없는 것'을 변환하려고 하면 ValueError 예외가 발생한다.
1) 숫자가 아닌 것을 숫자로 변환하려고 할 때
int("안녕하세요") 경우 안녕하세요라는 문자열은 int() 함수로 변환할 수 없는 값인데 변환하려했기 때문에 오류 발생.
2) 소수점이 있는 숫자 형식의 문자열을 int() 함수로 변환하려고 할 때
int는 정수형인데 부동 소수점이 있는 자료를 정수형으로 바꾸라 했기 때문에 오류 발생.
* 숫자를 문자열로 바꾸기 str() 함수
다른 자료형의 값을 str() 함수의 매개변수에 넣으면 문자열로 변환된다.
Python Tutor: Learn Python, JavaScript, C, C++, and Java by visualizing code < 파이썬 코드를 분석해주는 도구 사이트
02-4 숫자와 문자열의 다양한 기능
* format() 함수
format() 함수는 문자열이 가지고 있는 함수로, 중괄호의 개수와 format 함수 괄호 안 매개변수의 개수는 반드시 같아야 한다.
(그 외에도 +d, -d로 코드를 입력하면 기호가 붙어서 출력되고, =+5d 기호를 앞으로 밀기 등이 있다.)
* strip() 함수
strip() 함수는 문자열 양옆의 공백을 제거한다.
* isOO() 함수
* find()와 rfind() 함수
문자열 내부에 특정 문자가 어디에 위치하는지 확인할 때 사용한다.
* in 연산자
문자열 내부에 어떤 문자열이 있는지 확인할 때에는 in 연산자를 사용한다.
>>> print("안녕" in "안녕하세요")
True
>>> print("잘자" in "안녕하세요")
False
* split() 함수
문자열을 특정한 문자로 자를 때는 split() 함수를 이용한다.
>>> a = " 10 20 30 40 50".split(" ")
>>> print(a)
['10', '20', '30', '40', '50']
와 같이 실행 결과로 리스트가 나온다.
* format() 함수
f'문자열{표현식}문자열'
ㅡㅡㅡㅡㅡㅡㅡㅡㅡ정리ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
03-1 불 자료형과 if 조건문
불은 오직 True(참)과 False(거짓) 값만 가질 수 있다.
* 비교 연산자
* 논리 연산자
* if 조건문
파이썬에서 if 조건문은 조건에 따라 코드를 실행하거나, 실행하지 않게 만들고 싶을 때 사용하는 구문이다. 이는 코드의 실행 흐름을 변경한다는 뜻으로, '조건 분기'라고 부른다.
* 날짜/시간 활용하기
# 모듈 기능 활용해서 날짜/시간과 관련된 datetime 기능 가져오기
import datetime
# 현재 날짜/시간 구하기
now = datetime.datetime.now()
# 출력하기
print(now.year,"년")
print(now.month,"월")
print(now.day,"일")
print(now.hour,"시")
print(now.minute,"분")
print(now.second,"초")
03-2 if~else와 elif 구문
* if 조건문의 조건식에서 False로 변환되는 값은 None, 0, 0.0과 빈 문자열, 빈 바이트열, 빈 리스트, 빈 튜플, 빈 딕셔너리 등이다.
* else 조건문
홀수, 짝수 구분하는 프로그램에서 if 조건문을 두 번이나 사용해서 조건을 비교할 때 하나의 조건 비교는 낭비이다. (홀수가 아니면 무조건 짝수, 짝수가 아니면 무조건 홀수이기 때문에)
이 때 효율적인 실행을 위해 else문을 사용한다.
if 조건문 뒤에 사용하며, if 조건문의 조건이 거짓일 때 사용한다.
* elif 구문
조건이 2가지를 초과할 때 elif 구문을 사용한다. if 조건문과 else 조건문의 사이에 입력한다.
* pass 키워드
if 구문 사이에 아무 내용을 작성하지 않으면 IndentationError가 발생한다. (들여쓰기가 잘못되어있다는 의미)
이때 pass 키워드를 사용한다.
또 오류를 강제로 발생시킬 수도 있는데, 이때 raise NotImplementedError를 작성하면 해당 부분이 적혀있는 코드에 들어서는 순간 에러가 발생한다. (코드의 실행은 정상적으로 진행됨)
<기본 미션>