일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 다중 catch 블록
- try-catch-finally 블록
- 예외
- throws 키워드
- 일반 예외
- 99클럽
- 개발자취업
- 항해99
- 실행 예외
- 로켓펀치 #취준컴퍼니 #취업 #일상 #취준생
- 코딩테스트준비
- til
- 예외클래스
- 예외 처리
- Today
- Total
innn
변수와 입력 본문
값을 저장할 때 사용하는 식별자로 변수의 내용은 자바와 동일하다.
변수 만들기/사용하기
간단하게 pi라는 변수를 만들어 사용해보자.
pi의 저장 공간에 3.14159265를 넣고, pi 이름을 호출하면 저장 공간에 있는 값을 꺼내 출력한다.
변수를 활용하는 세 가지 방법
첫째, 변수를 선언하는 방법
변수를 생성하는 것을 의미한다.
둘째, 변수에 값을 할당하는 방법
변수에 값을 넣는 것을 의미한다. 즉 pi = 3.14159265 이때 기호 = 는 우변의 값을 좌변에 넣겠다, 할당하겠다는 의미다.
셋째, 변수를 참조하는 방법
변수에서 값을 꺼내는 것을 의미한다. 원의 둘레를 구하는 공식 2 * pi * r 을 입력하면, pi 안에 들어있는 값을 쓰겠다는 의미이다. 이처럼 변수 안에 있는 값을 사용하는 것을 변수 참조라고 한다.
자바와 가장 큰 차이라면
자바의 경우 변수를 선언할 때 자료형을 함께 선언해주어야 한다 int pi = 3
그러나 파이썬은 변수에 자료형을 지정하지 않는다. 따라서 같은 변수에 여러 종류의 자료형을 넣을 수 있다.
a = "문자열"
a = True
a = 10
오히려 이런 유연성 때문에 변수에 어떠한 자료형이 들어 있는지 모르고 실수해서 실행 중에 TypeError를 발생할 확률이 높다. 그러므로 하나의 변수에는 되도록 하나의 자료형을 넣어 활용하는 것이 좋다.
복합 대입 연산자
변수는 내부에 들어 있는 자료의 연산자를 사용할 수 있다. 문자열이 들어있으면 문자열과 관련된 연산자. 숫자는 숫자와 관련된 연산자를 사용할 수 있다. 그런데 변수를 활용할 때는 기존의 연산자와 조합해서 사용할 수 있는 연산자가 생긴다. 바로 복합 대입 연산자이다.
복합 대입 연산자는 자료형에 적용하는 기본 연산자와 = 연산자를 함께 사용해 다음과 같이 구성하는 연산자다.
a += 10
이렇게 a += 10 이라고 사용하면 a = a + 10 이라고 하는 것과 같은 결과를 낸다. 숫자에 적용할 수 있는 다른 연산자들도 마찬가지의 방법으로 사용할 수 있다. (자바와 동일)
문자열도 마찬가지로 복합 대입 연산자(+=, *=)를 사용할 수 있다.
사용자 입력: input()
프로그램을 만들 때는 명령 프롬프트에 글자를 입력하고 그 입력을 읽어 활용하는 경우가 드물지만, 프로그램을 공부하는 광정에서는 사용자로부터 입력을 받아 여러 가지 프로그램을 만들어 보는 것이 좋다. 파이썬은 사용자로부터 데이터를 받을 때 input() 함수를 사용한다.
input() 함수로 사용자 입력받기
사용자로부터 데이터를 입력받을 때는 다음코드를 입력한다. 이때, input 함수 괄호 안에 입력한 내용을 프롬프트 문자열이라고 하며, 사용자에게 입력을 요구하는 안내 내용을 의미한다.
>>> input("인사말을 입력하세요> ")
실행하면 다음과 같이 "인사말을 입력하세요> " 라는 문자열이 뜨고 프로그램이 종료되지 않은 상태에서 대기가 된다. 이렇게 프로그램이 실행 도중에 잠시 멈추는 것을 블록block이라고 하는데, input() 함수가 사용자에게 자료 입력을 요구하면서 코드 진행을 블록하고 있는 것이다.
글자를 입력하고 엔터를 눌러보자
이렇게 사용자가 입력한 내용은 input 함수의 결과로 나오는데, 이 값은 다른 변수에 대입해서 사용할 수 있다. print() 함수를 사용해서 변수에 제대로 대입되었는지 확인해보자.
input과 같이 함수의 결과로 나오는 값을 리턴값이라고 한다.
input() 함수의 입력 자료형
앞서 input() 함수의 결과를 string이라는 변수에 대입했는데, 대입한 값의 자료형을 살펴보자. 이땐 type() 함수를 사용하면 된다.
string 변수에는 "안녕하세요"라는 문자열을 입력해 대입했으니 당연히 자료형도 문자열 str이 나온다.
숫자를 입력할땐, 숫자가 당연히 출력되지만 자료형도 str 문자열로 나온다.
input() 함수는 사용자가 무엇을 입력해도 결과는 무조건 문자열 자료형이기 때문이다. number에 대입한 12345도 'str'로 확인된다. True 나 False와 같은 불boolea 값을 입력해도 모두 문자열로 나온다.
따라서 input() 함수로 자료를 입력받은 후 입력받은 것과 숫자를 더하는 코드를 작성하고 싶다면 타입에러가 뜬다.
문자열로 인식했기 때문이다.
str로 타입이 정해져있기 때문에 숫자와의 연산이 안된다.
입력 받은 값에 100을 더하고자 했으나 input() 함수로 받은 자료는 모두 문자열로 저장되므로 "1234" + 100이 되어 문자열과 숫자는 더할 수 없어 발생한 오류이다. 입력받은 문자열을 숫자로 변환해야 숫자 연산에 활용할 수 있다.
문자열을 숫자로 바꾸기
input() 함수의 입력 자료형은 항상 문자열이기 때문에 입력받은 문자열을 숫자로 변환해야 숫자 연산에 활용할 수 있다. 영어로는 캐스트cast라고 부른다.
문자열을 숫자 자료형으로 변환해야하는 경우는 매우 많다. 예를 들어 파이썬을 사용해 인터넷에서 환율 정보를 가져온다고 하자. 이때도 인터넷에 있는 글자는 모두 문자열이므로 숫자로 변환해야 활용할 수 있다.
문자열을 숫자로 변환할 때는 다음과 같은 함수를 사용한다.
- int() 함수 : 문자열을 int 자료형으로 변환.
- float() 함수 : 문자열을 float 자료형으로 변환.
코드를 실행한 후 '입력 A>' 의 값으로 입력하고, '입력 B>' 값으로 52를 입력한다. 변환하지 않은 상태에서는 문자열 연산자가 + 가 적용되어 문자열을 연결한 123100를 출력하지만, 정수로 변환한 값에서는 123과 100를 덧셈하여 223를 출력한다.
문자열 "52" / 문자열 "52.273" 이던 값도 int() 와 float()를 통해 자료형이 변환되었다.
input() 함수와 함께 조합하면 사용자에게 입력을 받아 숫자 연산을 하는 프로그램을 만들 수 있다. 간단하게 사용자에게 숫자 두 개를 입력받고, 입력받은 두 수의 덧셈, 뻴셈, 곱셈, 나눗셈 연산을 하는 프로그램을 만들어보자.
float() 함수를 사용했으므로 숫자를 입력할때 52.273과 같이 소수점을 포함한 형태를 입력할 수 있다.
ValueErro 예외
자료형을 변환할 때 '변환할 수 없는 것'을 변환하려고 하면 ValueError 예외가 발생한다. 이러한 예외가 발생하는 경우는 다음 두 가지이다.
첫째, 숫자가 아닌 것을 변환하려고 할 때
"안녕하세요" 라는 문자열은 int() 함수로 변환할 수 없는 값이기 때문이다. 함수의 괄호 안에 넣는 것을 매개변수라고 부르는데,(자바와 동일) int() 함수와 float() 함수는 매개변수로 변환할 수 없는 형태가 들어가면 항상 오류를 발생시킨다.
둘쨰, 소수점이 있는 숫자 형식의 문자열을 int() 함수로 변환하려구 할 때
int는 정수형인데 부동 소수점이 있는 자료를 정수형으로 바꾸라 하면, 이 또한 오류가 발생한다.
숫자를 문자열로 바꾸기
문자열을 숫자로 변환하는 것처럼 숫자를 문자열로 변환하는 것도 가능하다. 사실 문자열로 변환하는 방법은 매우 다양하다.
str() 함수는 앞서 했던 int() 그리고 float() 함수와 비슷한 형태를 가진다. 즉 다른 자료형의 값을 str() 함수의 매개변수에 넣으면 문자열로 변환된다.
str(다른 자료형)
inch 단위를 cm 단위로 변경하기
사용자에게 데이터를 입력 받아 가공한 후 결과를 보여주는 것은 프로그램의 기본이다. 지금까지 배운 내용을 활용해 첫 프로그램을 작성해본다.
다음 inch 단위의 숫자를 입력받아 cm으로 변환하여 출력하는 프로그램이다.
'코딩 테스트 > 코테를 위한 파이썬 기초 문법' 카테고리의 다른 글
f-문자열 (1) | 2022.09.30 |
---|---|
숫자와 문자열의 다양한 기능 (0) | 2022.09.29 |
파이썬 자료형 - 숫자 (1) | 2022.09.29 |
파이썬 자료형 - 문자열 (1) | 2022.09.29 |
파이썬 기초 (0) | 2022.09.29 |