[python] 파이썬 수식과 랜덤 함수에 대해 알아보자

10660 단어 pythonpython

안녕하세요 잉스테크 입니다!

이번에는 파이썬을 공부하면서 기록을 남기는 TIL 활동을 하면서 남겨보고자 합니다

처음 개발 환경 구축부터 차근차근 파이썬 프로젝트까지 과정을 담아보도록 하겠습니다

📌 참고 내용

공부하고 있는 자료는 구름 edu에 무료 파이썬 기본편 - 6시간 뒤면 나도 개발자를 공부하면서 스터디한 내용을 남긴 내용입니다.

🥵현재 벨로그 이미지 사이즈 조절 기능이 원활하게 지원하지 못해 이미지 크기가 큰점 양해 부탁드립니다

벌써 시작한 지 챕터 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 

연산 결과와 동일하다고 알 수 있습니다

작성하는 김에 쓰는 str 과 int 형의 변환

형 변환이라고 하죠 흔히 자바에서는 이것을 타입캐스팅이라고 이야기합니다

본론으로 들어가서 아래 코드를 보게 되면

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의 자릿수를 원하는 거죠??

두 가지 방법이 있습니다

10의 자리수로 표현 하는 방법

  • 형 변환을 사용하는 방법
  • 좀 더 개선된 randrange, randint 함수를 사용하는 방법

두 가지 모두 한번 살펴보도록 하겠습니다

1. 먼저 소수점 () 이 보기 싫어서 형변환으로 처리해보자!

print(int(random()*10) # 1 ~ 10 미만 까지 

print(int(random()*10)+1) # 1 부터 10까지 표현 

이와 같이 하게 되면 결괏값은 아래 사진과 같이

소수점이 아닌 10진수 표현법으로 나오는 것을 알 수 있습니다

여기서 중요한 점은 미만의 값까지 표현하기 때문에 1부터 9까지만 표현이 가능하고 (첫 번째 코드)

두 번째 코드는 1부터 9까지였지만 +1 해줌으로써 = 10까지 표현이 가능한 것을 알 수 있습니다

2. 다음으로 함수를 통한 처리 방법을 알아보도록 하겠습니다

print(randrange(1,45)) # 1 ~ 46 미만의 값 생성 

여기서도 보면 이제 random() 해서 *45 하고 이러한 번거로움은 사라졌습니다

단순히 내가 (시작 숫자, 끝자리 숫자) 범위 지정만 해주면 알아서 결괏값이 나오는 건

좋습니다 하지만 이것도 미만이라서 +1 해주는 등 이런 건 보기에 좋지 않습니다

그러한 점을 개선한 함수가 또 있습니다

바로 randint인데요

print(randint(1,45)) # 1 ~ 45이하의 임의의 값을 생성 

과같이 출력하게 되면

우리가 원하는 걸과 값인 1 ~ 45까지의 랜덤 한 숫자가 표시되는 것을 확인할 수 있습니다

맨 마지막 결괏값 randint로 45가 출력되는 모습입니다.

오늘도 같이 공부하신다고 고생많으셨습니다! 

내일 힘차게 다시만나요~!! 

좋은 웹페이지 즐겨찾기