02-3 변수와 입력

* 변수는 값을 저장할 때 사용하는 식별자이다. 

변수를 활용하는 방법에는 3가지가 있다.

 ① 변수를 선언하는 방법

변수를 생성하는 것

 

 ② 변수에 값을 할당하는 방법

변수에 값을 넣는 것

 

 ③ 변수를 참조하는 방법 (변수 참조)

변수에서 값을 꺼내는 것

변수 pi에 저장한 값을 이용해 변수 참조하여 원의 둘레와 넓이를 구한 것

***** 자바, C는 int pi와 같이 변수를 사용할 때 변수의 자료형을 미리 선언해야하지만, 파이썬은 변수에 자료형을 지정하지 않는다. 되도록이면 하나의 자료형을 넣어 활용하는 것이 변수를 구분하는데 편리하다.

a = "문자열", a = True, a = 10

 

* 복합 대입 연산자

숫자에 적용할 수 있는 복합 대입 연산자
문자열 복합 대입 연산자
문자열 복합 대입 연산자 활용 예제

 

* 사용자 입력 input()

사용자로부터 데이터를 입력받을 때는 input("인사말을 입력하세요> ")와 같이 input 함수를 이용한다.

input 함수 괄호 안에 입력한 내용을 프롬프트 문자열이라고 한다.

프로그램이 실행 도중에 잠시 멈추는 것을 블록(block)이라고 하는데, input() 함수가 사용자에게 자료 입력을 요구하면서 코드 진행을 블록하고 있는 것이다.

이런식으로 활용 가능

input() 함수는 사용자가 무엇을 입력해도 결과는 무조건 문자열 자료형이다. 

input 함수를 통해 300은 문자열로 저장되므로 문자열과 숫자는 더할 수 없으니 typeerror 발생

따라서 input() 함수를 통해 입력 받은 문자열을 숫자 연산에 활용하고 싶다면 문자열을 숫자로 변환해야 한다.

이는 캐스트(cast)라고 부른다. 

int 함수 활용해서 cast
int 함수와 float 함수 조합하기

* ValueError 예외

자료형을 변환할 때 '변환할 수 없는 것'을 변환하려고 하면 ValueError 예외가 발생한다.

1) 숫자가 아닌 것을 숫자로 변환하려고 할 때

int("안녕하세요") 경우 안녕하세요라는 문자열은 int() 함수로 변환할 수 없는 값인데 변환하려했기 때문에 오류 발생.

 

2) 소수점이 있는 숫자 형식의 문자열을 int() 함수로 변환하려고 할 때

int는 정수형인데 부동 소수점이 있는 자료를 정수형으로 바꾸라 했기 때문에 오류 발생.

 

 

* 숫자를 문자열로 바꾸기 str() 함수

다른 자료형의 값을 str() 함수의 매개변수에 넣으면 문자열로 변환된다.

 

input 함수로 숫자 입력받고 cm 단위로 계산하는 프로그램 예제

Python Tutor: Learn Python, JavaScript, C, C++, and Java by visualizing code  < 파이썬 코드를 분석해주는 도구 사이트

 

Python Tutor: Learn Python, JavaScript, C, C++, and Java by visualizing code

Learn Python, JavaScript, C, C++, and Java This coding tutor tool helps you learn Python, JavaScript, C, C++, and Java by visualizing code execution. You can use it to debug your homework assignments and as a supplement to online coding tutorials. Related

pythontutor.com

 

 

 

 

02-4 숫자와 문자열의 다양한 기능

 

* format() 함수

format() 함수는 문자열이 가지고 있는 함수로, 중괄호의 개수와 format 함수 괄호 안 매개변수의 개수는 반드시 같아야 한다. 

문자열의 {}기호가 format() 함수 괄호 안에 있는 매개 변수로 차례로 대치되면서 문자열이 되는 것
다양한 방식으로 출력해보기

(그 외에도 +d, -d로 코드를 입력하면 기호가 붙어서 출력되고, =+5d 기호를 앞으로 밀기 등이 있다.)

 

 

* strip() 함수

strip() 함수는 문자열 양옆의 공백을 제거한다.

이런 식으로 활용

* isOO() 함수

출력은 True 또는 False라고 나온다.

* 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() 함수

문자열 내용이 너무 많을 때, 데이터를 리스트에 담아서 사용할 때는 format() 함수를 사용하는 것이 더 좋다.

f'문자열{표현식}문자열'

 

 

 

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡ정리ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

 

03-1 불 자료형과 if 조건문

은 오직 True(참) False(거짓) 값만 가질 수 있다.

 

* 비교 연산자

print("가방" < "하마") 를 입력하면 True 값이 나온다. 파이썬은 문자열에도 비교 연산자를 적용할 수 있는데, 한글은 사전 순서(가나다순)으로 앞에 있는 것이 작은 값을 가진다.

 

* 논리 연산자

 

* 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,"초")

한 줄로 출력하고 싶으면 format() 함수 이용

 

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를 작성하면 해당 부분이 적혀있는 코드에 들어서는 순간 에러가 발생한다. (코드의 실행은 정상적으로 진행됨)

 

 

 

<기본 미션>

p.187 문제 3번