안녕하세요 잉스테크 입니다!
이번에는 파이썬을 공부하면서 기록을 남기는 TIL 활동을 하면서 남겨보고자 합니다
처음 개발 환경 구축부터 차근차근 파이썬 프로젝트까지 과정을 담아보도록 하겠습니다
📌 참고 내용
공부하고 있는 자료는 구름 edu에 무료 파이썬 기본편 - 6시간 뒤면 나도 개발자를 공부하면서 스터디한 내용을 남긴 내용입니다.
- 이전 포스팅을 보지 않으셨다면 ?
파이썬 숫자 처리 함수 math 라이브러리에 대해 알아보자
벌써 시작한 지 챕터 2를 마무리해가네요 진도는 개인적으로 빨리 빼고 있는데 업로드가 이래저래 늦어지고 있습니다 ㅜㅜ
빠르게 업로드하도록 노력하겠습니다
이번에는 이전에 print(3+4) 이러한 수식을 다루었다면 이번에는 변수를 이용하여 수식을 처리해 볼까 합니다
먼저 이전에 포스팅을 보신 분은 아시겠지만
print(3+4)
와 같이 바로 연산만 하였지 변수로 연산은 하지 않았습니다
c언어나 다른 언어로 하시던 분은 크게 어렵지 않으실 겁니다
본격적으로 시작해 보도록 하겠습니다
먼저 당연한 거지만 사칙연산부터 알아보겠습니다
print(2+3*4) # 14
라는 결괏값이 나오게 됩니다
그 이유는 곱하기 먼저 더하기가 나중에 나오기 때문에 결괏값이 그렇게 나오는 것입니다
아래 우리가 원하는 결괏값 대로 나오게 하려면
print((2+3)*4) # 20
과같이 괄호 안을 먼저 연산하고 괄호 밖을 나중에 연산함으로써
20이라는 결괏값이 나오는 것을 알 수 있습니다.
이제 진짜로 시작해 보겠습니다
흔히 변수를 선언하여 변수를 사용하는 방식이죠
number = 2+3 *4 # 14
print(number)
결괏값은 당연히 14가 나오게 됩니다 그 이유는 위 수식 내용에서 언급한 내용과 동일합니다 (결괏값 : 3번째)
여기서 다른 점은 number라는 변수를 선언하여 수식을 처리하여
print로 출력했다는 점이 다른 점이라고 할 수 있겠습니다
그럼 다른 수식도 한번 알아보도록 하겠습니다
number +=2 # 18
# 이수식을 풀어서 쓰면
number = number +2 # 18
이번에는 흔히 대입 연산자라고 하죠 a + b = c 이렇게 하기가 귀찮으니 조금 더 줄여서 쓰는 방법입니다
근데 저도 여기서 정말 자주 헷갈리는 게 += 또는 *= 과같이 하게 되면
수식을 풀어쓰라고 하면 한 번씩 헷갈릴 때가 있기 마련입니다
제가 코드 창의 바로 아래에 적어놓긴 하였지만
number +=2 경우 위에서 이미 16이라는 결괏값이 있는 상태이고
거기서 number = number(14) + 2 상태이기 때문에
계산한 결괏값이 number 변수에 저장되어 최종적으로 18이라는 결과가 나오게 됩니다
위 사진처럼 결괏값을 확인할 수 있습니다
( 해당 걸과 값임이라고 표시되어 있는 부분이 걸과 값이라고 보시면 됩니다)
이외에도 아래 코드를 보시면
number /= 2 # number = number /2
number -= 2 # number = number - 2
number %=5 # number = number % 5
연산 결과와 동일하다고 알 수 있습니다
형 변환이라고 하죠 흔히 자바에서는 이것을 타입캐스팅이라고 이야기합니다
본론으로 들어가서 아래 코드를 보게 되면
print(number + "test")
와 같이 작성하게 되면
오류가 발생하게 됩니다
왜냐면 number는 type 이 int형 타입이고 "test"는 string 타입이기 때문이죠
두 개의 형자가 서로 다른데 당연히 컴파일 오류가 발생하게 됩니다
사진처럼 보시면 number /= 2는 int인데 문법 오류가 발생했음을 알 수 있습니다
str 과 int형이 둘 다 있다고 오류를 나타내고 있습니다
이럴 땐 하나의 형자로 통일해 주어야 합니다
그 방법은 생각보다 간단합니다
number = str(number) # 문자열로 형변환
print(type(number))
print(number + "해당 결과값임")
처럼 표시하면 컴파일 하게 되면 결괏값이 아래처럼 나오게 됩니다
타입 형태가 str 문자열로 형 변환된 것을 알 수 있고 아래 정상적으로 출력되는 것을 볼 수 있습니다
str -> int형으로 변환할 때도
number = int(number)
와 같이 형 변환을 하면 됩니다.
이번에는 랜덤 함수에 대해 알아보도록 하겠습니다
이 내용을 원래는 따로 분리해서 두개로 포스팅하려 했으나 너무 짧을 거 같아 한꺼번에 포스팅하고 있는데
생각보다 길어지는 거 같아 걱정이네요 ㅜㅜ
이왕 작성해 본 김에 마무리까지 해보도록 하겠습니다
먼저 random 함수도 앞에 math 라이브러리처럼 import를 해주어야 합니다
from random import * # random 에 관련된 모든 라이브러리를 import 하라는 의미입니다
예시로 살펴보자면
print(random()) # 0.0 ~ 1.0 미만 임의의 값 생성
print(random()*10) # 0.0 부터 10.0 미만의 값 까지 랜덤값 생성
사진처럼 * 10을 하면 10자리까지 올라가면서 5까지 올라온 모습을 볼 수 있습니다
하지만 이렇게 난수 생성하는 것도 좋지만
우리가 원하는 건 이런 게 아닌 10의 자릿수를 원하는 거죠??
두 가지 방법이 있습니다
- 형 변환을 사용하는 방법
- 좀 더 개선된 randrange, randint 함수를 사용하는 방법
두 가지 모두 한번 살펴보도록 하겠습니다
print(int(random()*10) # 1 ~ 10 미만 까지
print(int(random()*10)+1) # 1 부터 10까지 표현
이와 같이 하게 되면 결괏값은 아래 사진과 같이
소수점이 아닌 10진수 표현법으로 나오는 것을 알 수 있습니다여기서 중요한 점은 미만의 값까지 표현하기 때문에 1부터 9까지만 표현이 가능하고 (첫 번째 코드)
두 번째 코드는 1부터 9까지였지만 +1 해줌으로써 = 10까지 표현이 가능한 것을 알 수 있습니다
print(randrange(1,45)) # 1 ~ 46 미만의 값 생성
여기서도 보면 이제 random() 해서 *45 하고 이러한 번거로움은 사라졌습니다
단순히 내가 (시작 숫자, 끝자리 숫자) 범위 지정만 해주면 알아서 결괏값이 나오는 건
좋습니다 하지만 이것도 미만이라서 +1 해주는 등 이런 건 보기에 좋지 않습니다
그러한 점을 개선한 함수가 또 있습니다바로 randint인데요
print(randint(1,45)) # 1 ~ 45이하의 임의의 값을 생성
과같이 출력하게 되면
우리가 원하는 걸과 값인 1 ~ 45까지의 랜덤 한 숫자가 표시되는 것을 확인할 수 있습니다
맨 마지막 결괏값 randint로 45가 출력되는 모습입니다.
오늘도 같이 공부하신다고 고생많으셨습니다!
내일 힘차게 다시만나요~!!