본문 바로가기
지식공학/Python

python 독학 기본편 #2 연산 (feat. 나만의 로또 번호 만들기)

by Eric87 2020. 10. 9.
반응형

이번에는 python으로 연산을 알아보도록 하겠습니다. 앞에서 잠깐 연산에 대해서 언급을 했어요 python에서는 기초 사칙연산과 동일한 규칙으로 연산이 됩니다. 오늘은 그것보다 조금 더 진행을 해보겠습니다.

>print(3+4) # 7
>print(8-4) # 4
>print(3*8) # 24
>print(8/2) #4

위와 같이 기초 사칙연산 말고 지수 계산과 몫, 나머지도 계산을 할 수 있어요

>print(3**3) #27
>print(5%3) # 나머지 2
>print(5//3) # 몫 1

또 python에서는 참과 거짓을 구별할 수 있다고 했는데요 이를 booln이라고 말합니다. 대소 관계 말고 ==는 같다는 의미와!=는 같지 않다를 이용해서 참/거짓이 나옵니다. 또 중간에 연산을 넣어도 계산된 값과 비교를 해서 참/거짓이 나옵니다.

>print(6==6) # true
>print(1==5) # false
>print(5+3==8) #true
>print(4!=9) # true

또 not을 이용하면 참/거짓이 뒤바뀌어 나오는 것을 확인할 수 있어요

>print(not(4!=9)) # false

다음은 and와 or에 대해서 간략하게 언급할게요 수학에서 and와 or은 들어 보았을 것입니다. 두 명제가 and로 연결되어 있을 경우 두 명제 모두가 참일 경우만 참으로 인식을 하고 두 명제가 or로 연결되어 있을 경우 두 명제 중 적어도 하나만 참이 된다면 참으로 인식하는 연산자입니다. python에서 and는 and라고 직접 쓰거나 &를 이용해서 표현할 수 있습니다.

>print((7>4) and (5>2)) # true
>print((7>4) & (5>2)) # true

또 or일 경우 직접 or이라고 입력하거나 | (키보드에서 shift + \)를 이용해서 표현할 수 있습니다.

>print((9>2) or (3>6)) # true
>print((9>2) | (3>6)) # true

변수를 이용해서도 수식을 계산할 수 있어요 예를 들어 3+3*5의 경우 곱셈을 먼저 계산하고 덧셈을 하니깐 18이 나옵니다. 이를 변수에 넣어볼게요

>number =3+3*5
>print(number)

출력은 18이 나옵니다. 여기에 다시 이렇게 입력을 하면

>number = number +1
>print(number)

출력 값은 19가 됩니다. number = number +1 이렇게 쓰지 않고 간단하게 다음과 같이 입력해도 됩니다.

>number +=1
>number *=2

이러면 각각 다음과 같이 연산됩니다.

이 밖에 number *=2에서 *대신 나머지를 구하는 % 와 몫을 구하는 //을 이용해서 연산을 할 수 있습니다. 수학에서 절댓값을 표현하는 것도 가능 한데 이것은 abs()로 표현을 하면 되고 지수 계산은 다음과 같이 할 수 있습니다.

>print(pow(4,2))

이것을 print로 표현을 하면 4^2=4*4이므로 16이 출력됩니다. max(5,2)는 5 min(5,2)는 2가 출력이 됩니다.

round() 반올림
floor() 내림
ceil() 올림
sqrt() 제곱근

위와 같은 것도 계산을 할 수 있는데 이것은 엑셀이나 다른 프로그램에서 많이 사용되므로 넘어가도록 하겠습니다.

다음으로는 랜덤 함수를 배워보도록 하겠습니다. 랜덤 함수는 임의의 숫자를 무작위로 출력하게 하는 함수를 의미합니다. 즉 난수를 말하는 거죠 python에서 랜덤 함수를 입력하기 위해서는 처음에 랜덤 함수를 선언해주어야 합니다.

>from random import *

위와 같이 입력을 하고 랜덤 함수를 불러보겠습니다.

>print(random())

출력 값은 임의의 숫자 되는데 범위 0.0 이상 1 미만의 임의의 값이 생성됩니다. 숫자를 조금 키워 보겠습니다. 0 이상 10 미만의 임의의 숫자를 생성하기 위해서 다음과 같이 입력합니다.

>print(random()*10)

소수점 뒤에 너무 많은 숫자가 나오므로 정수로 생성되기를 원하면 다음과 같이 입력하면 됩니다.

>print(int(random()*10))

0부터 난수가 생성이 되니 자연수 범위에서 값이 생성하기 위해서는 간단히 +1을 하면 됩니다.

>print(int(random()*10)+1) # 1 이상 10 이하의 임의의 값 생성

임의의 자연수를 만들 수 있으니 재미로 로또 번호를 생성해 볼까요?? 로또 번호는 1부터 45 이하의 숫자로 이루어져 있기 때문에 위 입력값을 약간만 수정해주면 됩니다.

>print(int(random()*45)+1) # 1 이상 45 이하의 임의의 값 생성

로또 번호는 총 6개로 이루어져 있으므로 위의 입력을 6번 해주면 됩니다. 결괏값은 아래와 같습니다.

다른 방법으로도 난수를 생성할 수 있습니다.

>print(randrange(1,46))

randrange는 괄호 안의 숫자 안에서 임의의 값을 생성하는데 주의해야 할 것은 1 이상 46 미만입니다. 미만을 없애고 싶으면 다음 입력값을 사용하면 간단하게 표현할 수 있습니다.

>print(randint(1,45))

오늘은 여기까지 하도록 하겠습니다!

 

 

반응형

댓글