파이썬(PYTHON)/개념정리

[파이썬(Python)] 함수 - 숫자, 랜덤, 문자열 + 문자열 포맷

Hana_h 2022. 7. 9. 17:54

숫자 관련 함수

'''
# 숫자 관련 함수

- abs(x): 절대값 반환, x는 숫자 형식
abs(-10) -> 10

- ceil(x) : x보다 큰 최소 정수, import math 사용함
math.ceil(-3.14) -> -3

- floor(x): x보다 크지 않은 가장 큰 정수, import math 사용함
math.floor(3.13) -> 3

- max(x1,x2,x3...) : 가장 큰 값

- min(x1,x2,x3...) : 가장 작은 값

- pow(x,y) : 지수승, x**y

- round(x[,n]): x를 반올림해서 소수점 아래 n째 자리까지 나타내기 n의 기본은 0
print( round(10.7) ) -> 11
print( round(10.7645,2) ) -> 10.76

- sqrt(n) : 제곱근 , import math 사용함
print( sqrt(16) ) -> 4
print( sqrt(121) ) -> 11
'''

import math

a = -10

print( abs(a) )
print("\n")

b = -3.14
print( math.ceil(b) )
print( math.floor(b) )
print("\n")

print ( max(4,6,7,10, 5) )
print ( min(4,6,7,10, 5) )
print("\n")

c = 2
d = 3
print( pow(c,d) )
print("\n")

e = 3.14
print( round(e) )

랜덤 관련 함수

'''
#랜덤 관련 함수

- random.choice(seq) : seq는 리스트, 튜플, 문자열, range()등 인덱스 표기 인자값, 무작위 항목 선택. Import random 사용함.

- random.randrange(x, y, z) : x에서 y미만의 수까지 z만큼 뛰어세며 무작위 정수 항목 선택. Import random 사용함.

- random. randint(x,y) :  x에서 y까지의 구 중에서 무작위 정수 항목 선택. Import random 사용함. (양 끝값 포함!)

- random.random() : 0보다 크거나 같고 1보다 작은 무작위 실수 선택. 현재 시각 가지고 임의의 숫자를 만들어내기 때문에 여러 번 사용해도 절대로 같은 값이 나올 수 없음!!  Import random 사용함.
* random() * n 을 해주면 0보다 크거나 같고 n보다 작은 무작위 실수 반환
  예) print( random() * 10 ) #0.0 이상, 10.0 미만의 실수 반환
* ( random() * n )+n2 를 해주면 n2보다 크거나 같고 n+n2보다 작은 무작위 실수 반환
  예) print( ( random() * 10 ) + 1 ) #1.0 이상, 11.0 미만의 실수 반환
*정수값 반환을 원하면 int 사용!
  예) print( int( random() * 10 ) ) /  print( int( random() * 10 ) +1 )

-  random.seed(x) : random 함수 초기화. 리턴값 없음. seed 함수를 사용하면 random 함수의 값을 같게 해줄 수 있음. Import random 사용함.
 
-  random.shuffle() : 리스트나 튜플, 순서를 바꿔줌. 리턴값 없음.  Import random 사용함.

-  random.sample(a, x) : a에서 x개를 임의를 뽑음. 중복 x.  Import random 사용함.
'''

import random

a = [1,2,3,4,5,6,7,8,9,10]

print("\n==========================\n")
print(a)
print("\n==========================\n")

print( random.choice(a) )

print( random.choice(a) )

print( random.choice(a) )

print("\n==========================\n")

print( random.randrange(10) ) # 0~9까지의 숫자 중에 임의의 숫자 한 개

print( random.randrange(10) )

print( random.randrange(10) )

print("\n==========================\n")

print( random.randrange(1,100, 2) )

print( random.randrange(1,100, 2) )

print( random.randrange(1,100, 2) )

print("\n==========================\n")

print( random.random() )

print( random.random() )

print( random.random() )

print("\n==========================\n")

random.seed(1)
print( random.random() )

random.seed(1)
print( random.random() )

random.seed(1)
print( random.random() )

print("\n==========================\n")

random.shuffle(a)
print(a)

random.shuffle(a)
print(a)

random.shuffle(a)
print(a)

print("\n==========================\n")

print( random.sample( a, 3) )

print( random.sample( a, 3) )

print( random.sample( a, 3) )

print("\n==========================\n")

'''
1~45까지 번호 중 임의 6개 추출
로또 프로그램
'''

import random

for i in range(0,5) :
    a = random.sample( range(1,46), 6 )
    a.sort()
    print(a)

 



'''
조건 1 : 랜덤으로 날짜를 뽑아야 함.
조건2 : 월별 날짜는 다름을 감안하여 최소 일수인 28 이내로 정함.
조건 3 : 매월 1~3일은 스터디 준비를 해야 하므로 제외

오프라인 모임 1회 날짜 선정
'''

from random import*

date = randrange(4,29)
print("오프라인 스터디 모임 날짜는 매월 "+ str(date) +"일로 선정되었습니다.")

문자열 관련 함수

'''
#문자열 관련 함수 (앞에 변수 지정 ! ex) pn = "01012345678"  /  print ( pn.count("0") ) -> 2

- ★count() : str 찾은 횟수 리턴함.

- ★endswith() : 문자열이 suffix로 끝나면 True, 아니면 False
 
- ★★find() : str문자열을 찾아서 인덱스 값 리턴. 못 찾으면 -1 

- index() : str문자열의 인덱스 값 리턴, 기능은 find와 동일. 못 찾으면 에러

- ★isnumeric() : 문자열이 오직 숫자로만 되어 있는지 판단, True 또는 False

- ★★★len() : 문자열의 길이 반환   - 앞에 변수. 쓸 필요xx

- lower() : 소문자 변환

- upper() : 대문자 변환

- islower() : 문자열 중 소문자를 판단

- isupper() : 문자열 중 대문자를 판단

- isalpha(): 문자열 중 알파벳만 판단 (공백을 제거할 수 있음)

 - ★★★replace() : 문자열 치환

 - ★★★split() : str문자열로 쪼개어 리스트로 리턴함.

 - ★★startswtith() : str문자열로 시작하는지 체크, True 또는 False

- ord(obj): 해당 문자의 아스키넘버 출력

- chr(num) : 입력 숫자에 해당하는 문자 출력

- sorted(): 아스키 코드 값을 기준으로 오름차순 정렬  #★★앞에 변수 지정 X
    ~ sorted(a,key=b) : b를 기준으로 a를 정렬
    ~ sorted(a,key=a.find) : index 기준으로 정렬(중복을 앞으로 당김)

a = "hihihihi" #hi가 4번
b = "HIHIHIHI"
c = "980117-1234567"
d = "1234"
e = "3.14"
f = "Python is Amazing"

print("\n============================\n")

print( a.count("hi") )
print( a.count("hih") )

print("\n============================\n")

print( a.endswith("hi") )  #주어진 문자열로 끝나면 True
print( a.endswith("hih") ) #주어진 문자열로 끝나지 않으면 False

print("\n============================\n")

print( a.find("hi") ) #주어진 문자열이 몇 번째에 들어가 있는지 찾기

print("\n============================\n")

print( len(a) ) #문자열의 길이  /  가장 많이 사용.

print("\n============================\n") 

print( b.lower() ) #대문자를 소문자로
print( a.upper() ) #소문자를 대문자로

print("\n============================\n")

print( a. replace("hi","hello") ) #콤마(,) 앞의 문자열을 콤마(,) 뒤의 문자열로 바꾸어 / 가장 많이 사용

print("\n============================\n")     

print( a.split("i") )  #주어진 문자를 기준으로 앞뒤를 나누어라.  / 가장 많이 사용

print( c.split("-") )

print("\n============================\n")

print( d.isnumeric() ) #주어진 문자열이 다 숫자면 True
print( e.isnumeric() ) #주어진 문자열이 다 숫자인 게 아니라면 False

print("\n============================\n")

print( b[0].isupper() ) #해당 인덱스 값이 대문자이면 True
print( a[0].isupper() ) #해당 인덱스 값이 대문자가 아니면 False

print("\n============================\n")

print( f.index("n"))  #해당 문자가 어디 있는지 찾아서 위치값 반환  -> 5

print("\n============================\n")

print(sorted(c)) #['-', '0', '1', '1', '1', '2', '3', '4', '5', '6', '7', '7', '8', '9']
print(sorted(c,key=c.find)) #['9', '8', '0', '1', '1', '1', '7', '7', '-', '2', '3', '4', '5', '6']

문자열 포맷

#문자열 초기화

print("\n============================\n")
#방법 1
print("나는 %d살입니다." % 25)
print("나는 %s를 좋아해요." % "산책")
print("Apple은 %c로 시작해요." % 'A')
print("나는 %s색과 %s색을 좋아해요." % ("노란", "연분홍"))

print("\n============================\n")
#방법 2
print("나는 {}살 입니다.".format( 25 ))
print("나는 {}색과 {}색을 좋아해요".format( "노란", "연분홍" ) )
print("나는 {0}색과 {1}색을 좋아해요".format( "노란", "연분홍" ) )
print("나는 {1}색과 {0}색을 좋아해요".format( "노란", "연분홍" ) )

print("\n============================\n")
#방법 3
print("나는 {age}살이며, {color}색을 좋아해요.".format( age = 25, color="노란" ))
print("나는 {age}살이며, {color}색을 좋아해요.".format( color="노란", age = 25 ))

print("\n============================\n\n\n")
#방법 4
age = 25
color = "노란"
print(f"나는 {age}살이고, {color}색을 좋아해요.")