IT world

[Python] 24.01.02 Random 함수와 파이썬 자료형 본문

모두의 연구소(오름캠프)/AI 모델 활용 백엔드 개발 과정

[Python] 24.01.02 Random 함수와 파이썬 자료형

엄킹 2024. 1. 3. 17:45

1. Random

Random 이란

파이썬에서 난수를 생성하기 위해 사용하며 라이브러리 사용에 따라 무작위 수를 생성합니다. 

import를 통해 random 함수 호출

1.1 난수 생성

  • randint(a, b) : a와 b사이의 무작위 정수를 생성 → b도 범위에 포함
  • randrange(start, stop, step) : 지정된 범위에서 무작위 정수를 반환 → start부터 stop - 1까지, 선택적으로 step을 지정할 수 있다.
  • random() : 0과 1사이의 무작위 실수를 반환.

1.2 시퀀스 내 요소 무작위 선택

  • choice(sequence) : 주어진 시퀀스(예: 리스트, 튜플, 문자열 등)에서 무작위로 요소 하나를 선택하여 반환. 

Random 함수에는 다양한 라이브러리들이 존재하지만 강의 시간에는 유용하게 사용되는 몇 개의 예시만 확인했습니다.

자주 쓰이는 함수인 randrange(), choice()의 사용법을 간단히 작성하자면,

 

randrange(strat, stop, step)

  • start: 범위의 시작값. 만약 start가 생략되면, 기본값은 0이 됩니다.
  • stop: 범위의 끝값. 이 값은 범위에 포함되지 않으며, 함수는 stop - 1까지의 수 중에서 무작위로 선택합니다.
  • step: 선택적 매개변수로, 숫자 간의 간격을 지정합니다. 예를 들어, step이 2이면 함수는 두 숫자 간격으로 무작위 수를 선택합니다.

randrange() 함수 예시

 

choice()

  • 무작위 요소 선택

choice() 함수 예시

1.3 실습

1) 모두의 주사위

주사위 게임을 시뮬레이션 하는 방법으로, 두 개의 주사위를 던져서 나온 두 수를 합산하는 프로그램을 생성했습니다.

두개의 주사위 합을 구하는 프로그램 코드

 

2) 윷놀이

0과 1의 숫자로 무작위 수를 선택하여 윷놀이를 진행하는 프로그램을 생성했으며, 빽도를 제외하고 0은 앞을, 1은 뒷면이로 가정했습니다.

윷놀이 프로그램 코드

 

실습 내용은 아래 깃허브 링크를 참고해주시면 됩니다.

https://github.com/Um-king/orm/blob/main/python/3%EC%9D%BC%EC%B0%A8(24.01.02)/%5B%EB%AA%A8%EB%91%90%EC%97%B0%5D2%EC%A3%BC%EC%B0%A8_1%EC%9D%BC_Random.ipynb

 

2. 파이썬의 자료형

변수란

데이터를 저장하고 추후에 사용할 수 있게 해주는 메모리 공간으로, 변할 수 있으며 어떠한 값을 가지고 있는 공간으로 생각하면 될 것 같습니다. x값에 10을 저장했다가 x=20으로 지정하면 x값은 20으로 변합니다.

 

파이썬의 변수는 다른 언어와 달리 타입을 지정하지 않고, 변수이름에 '=' 기호를 사용하여 변수에 값을 할당합니다.

2.1 변수 선언

  1. 변수의 이름은 알파벳(대문자와 소문자), 숫자, 언더스코어(_)로 구성되며 대소문자 구분이 필요합니다.
  2. 변수의 이름은 숫자와 특수문자로 시작할 수 없습니다. (1ten, 100_test 등 사용불가)
  3. 파이썬의 키워드(if, print 등)는 변수 이름으로 사용할 수 없습니다.

2.2 변수의 타입

1. 숫자형 : 숫자를 다룸

  • 정수형(int) : 양수와 0, 음수를 저장. 
  • 실수형(float) : 소숫점을 표현 가능.
  • 복소수형(complex) : 실수부와 허수부로 나누어 수를 표현.

2. 논리 자료형 : True, False를 다룸

3. 시퀸스 : 순서가 있는 자료형

  • 문자열 자료형(str) : 문자열을 저장.
  • 리스트 자료형(list) : 다른 자료형을 담을 수 있는 변경 가능한 자료형.
  • 튜플 자료형(tuple) : 다른 자료형을 담을 수 있는 변경 불가능한 자료형

4. 컬렉션 자료형 : 다른 자료형을 담을 수 있는 자료형

  • 딕셔너리 자료형(dict) : key와 value의 쌍으로 묶여 있는 key의 중복을 허락하지 않는 자료형
  • 셋 자료형(set) : 값의 중복을 허락하지 않는 자료형.

5. None 자료형 : 아무것도 없음을 명시하는 자료형

 

2.3 정수

정수란

0과 양의 정수, 음의 정수를 통틀어 정수라고 하며, int로 사용됩니다.

덧셈, 뺄셈, 곱셈, 나눗셈의 사칙연산을 사용하고, 나눗셈의 경우 부동소수점을 출력합니다.

정수의 나눗셈 예시

 

파이썬에서는 느린 속도를 개선하기 위해, 메모리 효율을 위해 자주 사용되는 정수를 미리 메모리에 저장해 두었는데, -5~256까지 정해진 메모리의 자리를 가리키도록 한다.

2.4 실수

실수란

실제로 존재하는 수로 파이썬에서 소수점이 있는 숫자를 나타내며, float로 사용됩니다. 

덧셈, 뺄셈, 곱셈, 나눗셈의 사칙연산을 사용합니다.

 

float에는 특수값이 존재하며 양/음의 무한대의 값이 실수로 표현됩니다.

양의 무한대 type 확인

 

실수에는 아주 큰 문제가 존재합니다.. 바로 부동소수점 연산 문제..

파이썬은 10진수 숫자를 표현하는데 완벽하지 않기 때문에 실수의 계산이 정확하지 않습니다.

 

프로그래밍 언어는 기본적으로 10진수 기반으로 표현하지만 컴파일 과정에서 2진수로 전환되기 때문입니다. 이런 계산의 과정에서 무한소수가 출력되고 무한한 값을 지정할 수 없기 때문에 적당한 소수점 위치에서 반올림하여 계산을 종료합니다.

 

이를 해결하기 위해 파이썬에서는 decimal을 사용하여 조금 더 정확한 연산을 할 수 있게 지원하고 있습니다.

2.5 복소수

복소수란

실수와 허수의 합으로 표현되며, 3 + 4j는 3이 실수, 4j가 허수부분이고 complex를 사용합니다.

  1. real() : 복소수의 실수 부분을 반환
  2. imag() : 복소수의 허수 부분을 반환

 

Comments