AI데이터 분석_ 파이썬 기초9_문자열 메소드와 사용자 정의 함수

2024. 9. 11. 00:53파이썬을 활용한 데이터 분석

문자열 메소드

.format

#문자열 메소드
#.format()

#문자 지정
print("내가 좋아하는 {}가 {}상을 받았대".format('유다빈밴드', '멜론어워드'))
print()

#문자열 정렬
print("'{:>10d}'".format(1234)) #10칸생성. 기본형: {:>10d}
print("[{:>10s}]".format("안녕")) #{:(사용할 정렬방법, 칸수,형식지정자)}
print("10칸짜리 폭 오른쪽 정렬: '{:>10d}'".format(123))
print("10칸짜리 폭 왼쪽 정렬: '{:<10d}'".format(123))
print("10칸짜리 폭 가운데 정렬: '{:^10d}'".format(123))
print("10칸짜리 폭 오른쪽 정렬: '{:>10.2f}'".format(3.14)) #실수형도 가능 형식지정자앞에 소수점 정해줄수도 있음

print()
#남은 공백칸에 원하는 문자/숫자 넣기
print("10자리 왼쪽 정렬: '{:*<10d}'".format(123))#공백안에 *문구가 들어가서 채워짐
print("10자리 오른쪽 정렬: '{:@>10d}".format(123)) #공백안에 @가 들어가서 채워짐
print("10자리 가운데 정렬: '{:%^10s}'".format("안녕")) #문자열도 동일함

format메소드는 문자지정이외에도 문자열을 정렬할 수 있다. {;>10d}.format으로 사용하면 왼쪽으로 10칸 공백을 생성한 후 글자를 출력한다. 오른쪽에 공백을 넣고 싶다면 {:<10d}.format(숫자)의 형태로 사용한다. 문자일경우에는s를사용하며 실수일경우에는 f를 사용한다. 이때 공백안에 다른 문자형태를 넣고싶다면 :@>의 형식으로 : >사이에 원하는 문자를 넣어준다.

 

.count

#문자열 메소드:문자열에서 사용할 수 있는 메소드

#.count():지정된 문자열안에서 원하는 특정 문자가 몇개있는지 찾아줌
sok = "내가 그린 기린 그림은 목 긴 기린그림이고, 네가 그린 기린 그림은 목 짧은 기린 그림이다"
print(sok,type(sok))

print(sok.count('그림')) #그림이라는 단어 총 4번 등장
print(sok.count('기린'))
print(sok.count('so'))#문자열 안에 없는 단어 넣어도 오류나지 않음. 없다고 알려줌

data = "best of Best"
print(data.count('best')) #대소문자 구분해서 찾아줌. 1번있기때문에 1번
print(data.count('best,5'))
#인덱스 번호를 지정해준 경우. 인덱스 번호상 5번째부터 'best'단어를 찾아달라고 한것인데
#5번째부터는 해당 단어가 없기때문에 0이라고 반환한것.
print(data.count('Best',-7))
#마이너스 인덱스 번호로도 사용이 가능하며, 기본인덱스나 마이너스 인덱스 모두
#해당 지점부터 오른쪽으로 이동하며 해당 글자를 찾아줌

count메소드는 지정된 문자열 안에서 원하는 특정 문자가 몇개있는지 찾아주는 메소드이다. 대상.count('찾을 글자')의 형태로 적어 사용한다. 만약 영어일 경우에 대소문자를 구분하여 찾아주고, 인덱스번호를 함께 사용하여 찾을 범위를 지정해줄 수도 있다. 

 

 

.find

#.find()
print(data.find('best')) #bset글자가 가장 첫번째부터 나오기때문에 0번째인 0을 반환
print(data.find('of'))
print(data.find('Best',-5)) #인덱스로 탐색범위를 지정하더라도 값이 크게 달라지진않음.
#탐색위치를 설정하더라도 그 안에서 인덱스가 다시0이 되는것이 아니라 인덱스 번호는 달리지않기때문
print(data.find('of',-4)) #마이너스 인덱스로 지정해도 몇번째 있는지는 나오지만 마이너스로 인덱스번호를
#세기 시작했기때문에 마이너스 인덱스 번호로 출력됨
#인덱스 지정범위부터 오른쪽으로 이동하며 찾는데 지정된 범위안에서는 값이 없기때문에 -1반환
print(data.find('as'))#아예 없는 단어 입력해도 오류나지 않고 -1반환
print()

find는 count와 거의 같은 기능을 하는 메소드인데, 왼쪽에서 오른쪽으로 이동하면서 문자열을 찾는 메소드이다. 문자열 내부에 포함된 특정 문자열을 찾고자 할때 사용하는 메소드이며 찾고자 하는 문자열이 있다면 그 문자열이 처음나온 위치의 인덱스번호를 반환해주며, 찾는 문자열이 없다면 오류나지 않고 -1을 반환해준다.

 

.rfind

#rfind()
#기능과 사용법 모두 .find()와 동일하지만 오른쪽에서 왼쪽으로 찾아줌.
#마찬가지로 제일먼저 나온 문자의 인덱스를 반환
data='best of best'
print(data.rfind('best')) #오른쪽에서 왼쪽으로 찾아준다고 하더라도 인덱스위치는 변하지 않기때문에
#8이 나오지만, 찾는 위치가 오른쪽기준에서 제일 먼저나오는 두번째 best를 찾아준것
print(data.rfind('best',-7))#지정위치 문자찾는건 오른쪽으로 흐르기때문에 동일하게 8번째 나옴
print(data.rfind('as')) #.rfind도 동일하게 찾는문자가 없다면 -1을 반환
print()

오른쪽에서 왼쪽으로 이동하면서 문자열을 찾는 메소드이며 find와 기능이 동일하다. 마찬가지로 찾는 문자가 없다면 -1을 반환한다.

 

.index

#.index
#.find, .rfind와 동일한 기능을 하지만 찾는 문자가없다면 오류가 남
# print(data.index('as')) #as라는 단어가 없기때문에 오류가남
print(data.index('best',5))

find메소드와 동일한 기능을 가지며 사용방법도 동일하다. 다만 찾는 문자열이 없을때는 find와 달리 오류가 발생한다.

찾는 문자열이 없을때는 오류가 발생한다.

 

대소문자 변환메소드(lower, upper,capitalize)

#문자열 메소드

#대소문자 변환메소드
data='best of best'

print(data.upper()) #대문자
print(data.lower()) #소문자
print(data.capitalize())#capitalize는 첫글자만 대문자로 반환하며 나머지는 소문자로 반환

lower은 모든 문자를 소문자로 만드는 메소드이고, upper은 모든 문자를 대문자로만드는 메소드이다. capitalize는 첫글자만 대문자로 반환하며 나머지는 소문자로 반환한다.

 

.join

#문자열 메소드
#,join
#반복가능 객체 => 시퀀즈 자료형(문자열)

li = ['p','y','t','h','o','n']
print(li,type(li))
tu1= ('1','2','3','4','5')
se1={'1','2','3','4','5'}
di={'밴드' :'유다빈', '발라드' :'선우정아', '아이돌' :'엔믹스'}

print(''.join(li),type(''.join(li))) #python이라는 하나의 문자열로 합쳐짐
#리스트의 요소를 하나의 문자열로 반환해준것. 때문에 자료형도 리스트가 아니라 str로 출력
print('@'.join(li),type('@'.join(li))) #마찬가지로 반복객체요소 사이에 특정 @문자를 넣어서 문자로 출력
print('-'.join(tu1)) #반복가능 객체에 들어가야할 값은 문자여야함 #숫자면 오류남
print('*'.join(se1)) #세트도 마찬가지. 숫자안됨. 순서상관X
print('^^'.join(di)) #딕셔너리는 key값만 모아서 출력됨

join은 인수로 전달돈 반복가능 객체의 각 요소사이에 문자열을 포함시켜 새로운 문자를 만들고 그 결과를 반화나는 메소드이다. 객체사이에 넣어질 문자열.join(객체명)의 형태로 사용하며 문자열 따로지정하지 않거나 공백을 전달하게 되면 하나의 문자열처럼 합쳐진다. 딕셔너리의 경우 key값만 모아서 합쳐진다.

 

.split

#문자열 메소드
#.split
#공백기준으로 단어 나눠주기
str1="Life is too short"
print(str1,type(str1))

print(str1.split(),type(str1.split())) #공백기준으로 단어를 나눠서 리스트안에 넣어줌
print()

#특정문자 기준으로 단어나눠 출력하기
print(str1.split('o'),type(str1.split('o')))
#'o'기준으로 단어가 나눠졌기때문에 too의 o와 shot의 o를 기준으로 단어가 나뉜것
#중복으로 단어가 있으면 전부다 기준점으로 성립이됨
#기준으로 선정된 문자는 출력되지 않음.
print()

split메소드는 공백기준으로 단어를 나눠주는 메소드인데, 객체.split('')의 형태로 사용한다. 만약 나눠주고싶은 기준문자가 있다면 괄호안에 해당 문자열을 적어주면 해당문자열을 기준으로 나눠지며, 해당문자열은 출력되지 않는다.

 

.replace

#.replace()
#문자열에서 일부 문자열을 바꾼후 그 결과를 반환하는 메소드
#대상과 바꿀대상으로 인수를 2개를 입력해주어야함. 첫번째 대상을 두번째로 바꾸겠다는 의미
print(str1.replace('short','long'))#shot이 long으로 변경
print(str1.replace('Life','study time'))
print()

replace는 문자열에서 일부 문자열을 바꾼후 그 결과를 반환하는 메소드이다. 문자열.replace('대상','바꿀문자')의 형태로 적어주어야하며, 첫번째 대상을 두번째로 바꾸겠다는 의미이다. 

 

.isdigit

#.isdigit()
#문자열이 숫자로만 이루어져있는지 확인.
#문자가 하나라도 있다면 False반환 전부 숫자라면 True반환

print('10'.isdigit()) #어떤식으로 사용하나
# print(str.isdigit("10")) #결과는 동일함

# li=['1','2','3','4','5']
# print(li.isdigit())
#리스트 사용불가! 반복객체말고 '문자열'을 보는것

print('20491'.isdigit())
print('2353a'.isdigit()) #문자열a가 한개 있기때문에 False반환
print('-12'.isdigit())#-마이너스 문자열로 인식하여 False반환
print('1.23'.isdigit()) #소수점.도 문자열로 인식하여 False반환
print()

isdigit는 해당 문자열이 숫자로 이루어져있는지를 확인하는 함수이다. isdigit는 문자열을 보는것 이기때문에 리스트는 사용이 불가하다. 또한 숫자형 문자열이더라도 마이너스나 실수는 -과 .을 문자로 인식하기때문에 완전한 문자열로 인식하여 False가 반환된다.

 

.strip

#.strip()
#불필요한 문자를 제거해주는 메소드
#.strip() : 양쪽의 불필요한 문자 제거
#.lstrip() : 왼쪽의 불필요한 문자 제거
#.rstrip() : 오른쪽의 불필요한 문자 제거
#중간에 있는 문자는 제거할 수 없음!

str="*******1***2**3******"
print(str.strip('*')) #strip안에 지정한 문자를 지워줌. #양쪽에 있는것만 지워지고 중간은 제거안됨
print(str.lstrip('*'))
print(str.rstrip('*'))

strip은 불필요한 문자열을 제거해주는 메소드이다. strip은 양쪽의 불필요한 문자열을 제거하고, lstrip은 왼쪽의 불필요한 문자를, rstrip은 오른쪽의 불필요한 문자를 제거한다. 문자열.strip('제거할 문자')의 형태로 사용하며, 문자열의 가운데 존재하는 문자열은 제거할 수 없다.

 


사용자 정의 함수

사용자 정의함수란, 사용자가 직접만드는 함수이다. 반복되는 코드, 행위, 기능들을 쉽게 관리하기 위해 선언하여 사용되는 함수이다.

 

함수

함수(functon)는 주어진 값에 정해진 처리를 해서 그 결과를 반환하는 기능을 가진다. 함수이름, 매개변수, 리턴값(결과값)으로 이루어져있다.

 

함수용어 정리

  • 함수정의 : 사용자 함수를 새로만드는 것을 의미
  • 인수 : 함수에 전달할 값 입력의미
  • 매개변수 : 인수를 받아서 저장하는 변수를 의미
  • 반환값 : 사용자정의 함수의 출력의미
  • 함수 호출 : 만들어진 사용자 정의 함수를 실제로 사용하는것

 

사용자 정의함수 만들기

#<사용자 정의 함수>
#welcome 함수 정의 : 문자열 출력(return)

#함수 정의/ 함수를 만들어주기만 한것(선언)이기때문에 호출해야 사용가능
def welcome():
  print('hello')
  print('안녕!ㅎㅎ')

#함수 호출
#함수명()
welcome() #함수명 옆에 소괄호 필수
welcome() #몇번이고 계속 호출 가능!

사용자 정의 함수를 호출할때는 def함수를 사용하며 함수를 정의 한뒤 함수 내부에 리턴값이나 출력문을 적는다. 현재 함수는 함수내부안에 리턴값이 아닌 출력문을 적어, 함수를 호출하게되면 함수내부에 정의된 출력문이 출력되는 함수를 정의한것이다. 

 

리턴값이 있는 함수 정의하기

#특정값에 +10을 하는 함수
#add

#add 함수 정의

def add(num):
  result = num+10
  return result

# add() 이렇게 출력하면 안되는이유!
#함수안에 매개변수를 정의해줬기때문에 num안에 들어갈 값을 함수()괄호안에다 적어주어야함
#add(5) 이렇게도 출력하면 안되는이유!
#코렙미리보기 기능때문에 보여지지만 return값 안에 프린트 문을 따로 넣어놓지 않았기때문에
#이렇게 출력하면 안됨. 위의 welcome의 경우에는 return값이 없고, 처리기능 자체에 출력문을 넣어놨기때문에가능하지만
#add()함수는 따로 출력문을 넣지않아서 print()를 사용하여 함수를 호출해야함.

print(add(5))
#이렇게 출력하는 것이 가장 올바른 방법

리턴값이 있는 함수를 정의할때는 함수안에 함수에서 수행할 기능을 넣고 return으로 정의하여 기능을 수행한 뒤의 답을 반환받는다. 현재 위 쿼리에서는 매개변수가 정의되었기때문에 add()의 형태로는 함수를 호출할 수 없고 반드시 add(인수)의 형태로 인수를 주어야하며, pinrt()구문 안에서 출력해야한다.

 

디폴트 매개변수 만들기

#디폴트 매개변수 만들기
#greet()함수
def greet(str1,str2):
  print(str1)
  print(str2)

#greet()함수 호출
#이미 처리할 기능에 출력을 넣어놨기때문에 그냥 함수명()으로 출력가능
#전달해줄 인수와 그 인수를 저장할 매개변수가 존재하기때문에 매개변수를 입력해주어함
greet('오늘도','좋은하루보내') #괄호안에 적은 순서대로 매개변수 안에 들어감
# greet('안녕') #매개변수가 2개인데 1개만 전달했기때문에 오류
#이런경우 디폴트를 만들어주면 됨

디폴트 매개변수란, 전달되는 인수가 없는 경우에 사용할 수 있도록 매개변수에 기본값을 설정하는 것을 의미한다. 매개변수가 여러개 있을때는 맨 뒤에 있는 매개변수부터 디폴트 값을 설정해야한다.

#디폴트 매개변수 만들기2_숫자 4개를 더하는 함수정의하기

def add(num1,num2,num3,num4=10):
  result=num1+num2+num3+num4
  return result

print(add(10,10,10,10)) #정의된 매개변수 4개, 입력된 인수4개 이기때문에 오류나지 않음
# print(add(1,23,4))#3개만 입력했기때문에 오류
#여기서 num4에 디폴트값을 설정/매개변수 대입연산자 쓰고 값 써주기
print(add(10,10,10))#num4에 디폴트값인 10이 들어갔기때문에 인수를 3개만 입력해주어도 오류나지 않음
print(add(10,10,10,20))#이미 지정된 디폴트값에 인수로 또 다른 값을 정의해도 오류안남
#디폴트의 값이 그냥 저장되어있는거지 사용자가 따로 저장해줄수 있음


# def add(num1,num2,num3=10,num4):
#   result=num1+num2+num3+num4
#   return result
#디폴트 함수는 맨 끝부터 만들어 줄 수 있기때문에 중간에있는 num3을 바로 디폴트 만들어줄 수 없음
# def add1(num1,num2,num3=20,num4=10): 맨끝인 num4부터 매개변수를 만들어주었기때문에 오류나지않으며 인수 2개만 입력해도 됨

디폴트 매개변수가 있는 함수를 정의하기 위해 숫자 4개를 인수로 입력받아 그 4개의 합계를 구하는 함수를 정의해보자. 

add함수에 매개변수가 4개가 들어있기때문에, 일반적으로는 함수가 호출될때 인수 4개가 함께 입력되어야한다. 하지만 이때 매개변수에 디폴트값을 정의해두었다면, 디폴트값이 정의되지 않은 매개변수만큼만 인수를 전달해도 에러나지 않는다.

 

가변 매개변수 만들기

#가변 매개변수 만들기
#가변매개변수: 몇개의 인수를 전달할지, 즉 몇개의 매개변수를 사용할지 모르는 상태일때 사용
#가변 매개변수 만드는 방법: *가변매개변수 명

def show(*args): #show라는 함수안에 args라는 가변 매개변수를 만들어준 것
  print(f"args: {args}")
  print(f"args: {type(args)}")

show(1,2,3,4) #인수 4개가 튜플로 묶여서 출력
show('안녕') #어차피 값이 튜플이기때문에 자료형 상관없고, 갯수도 상관없음

# for i in show(1,2,3,4):
#   print(i)
#결과를 튜플로 반환해주긴 하지만 바로 반복문으로 사용은 안됨
#하지만 함수 안에 반복문을 넣어서 출력하는 것은 가능함
print()

def show(*args): #show라는 함수안에 args라는 가변 매개변수를 만들어준 것
  print(f"args: {args}")
  print(f"args: {type(args)}")
  for i in args:
    print(i)

show(10,9,8,7,6,5) #반복문안에 for문을 넣어서 함수를 출력하면 자동으로 언패킹되어 값이 출력될 수 있도록 만든것

가변 매개변수란 함수에 인수를 몇개사용할지 정확히 알 수 없을때 사용한다. 전달되는 인수를하나의 튜플로 묶어서 만들어준다. 매개변수를 만드는 키워드는 *를 붙여 만들어준다. 이럴경우 어떤값이 인수로들어올지 정해진것이 하나도 없으므로 함수가 실행되는 기능에만 맞는다면 자료형과 개수모두 어떤것이 들어오든지 상관없다. 또한 함수안에 반복문을 사용하여 인수로 들어온것을 하나씩 언패킹하여 빼줄수도 있다.

 

경우에 따른 함수 호출방법

매개변수X 리턴값X

#경우에 따른 함수 호출 방법

#1)매개변수 X, 리턴값 X
#함수명()

def welcome():
  print("오늘도 화이팅")

welcome()#매개변수가 없으니 인수도 따로 적어줄것이 없는것

함수는 함수의 종류에 따라 호출방법이 다르다. 매개변수와 리턴값이 둘다 없는 경우에는 단순하게 함수명()의 형태로만으로도 호출이 가능하다. 매개변수가 없으니가 인수도 따로전달해줄것이 없기때문이다.

 

매개변수O 리턴값X

#2) 매개변수 O, 리턴값X
#print_name함수 정의

def print_name(name):
  print(name)#따로 리턴값이 없기때문에 함수정의할때 인수만 적으면 바로 출력되도록 기능에 출력문을 넣음

print_name('홍길동') #안에 출력문이 이미 있기때문에 따로 출력문을 적어줄 필요는 없지만
#매개변수가 있기때문에 함수 괄호안에 인수를 적어주면 됨
print()


def print_info(name,age,gender='여성'):
  print(name, age,gender)

print_info('홍길동',25,'여성')

매개변수는 있는데 리턴값이 없는경우에는 함수(인수)의 형태로 호출해야한다. 일단 매개변수가존재하기때문에 함수를 호출할때 매개변수에 전달할 인수를 함께 적는다. 하지만 반환받을 값이 없기때문에 단순 함수만 호출해도 가능하다.

 

매개변수X리턴값O

#매개변수 X, 리턴값 O

def getMyname():
  name =  "짱구" #매개변수가 없는대신 함수안에 변수를 따로 만들고 그 변수를 리턴값으로 지정
  return name   #매개변수는 직접 전달해줘야할 인수가 있다면 매개변수없이 변수만 만들면 따로 값 전달 할 필요없음

print(getMyname()) #리턴값의 경우 따로 반환받을 리턴값이 있다는건 print문으로 출력을 해야함.
#리턴값이 있는 함수의 결과는 값처럼 사용이 가능하다!!!

print(getMyname()+"입니다") #리턴값으로 반환받은것이 문자라면 문자열 연산자로 사용가능

def getnumber():
  num=10
  return num

print(getnumber()) #숫자 10 출력
print(getnumber()+10) #값처럼 연산가능
num_f=getnumber() #함수 자체를 변수안에 넣어서
print(num_f+10) #그 변수를 가지고 값처럼 사용도 가능함!!

매개변수가없고 리턴값만 있는 경우는 주로 함수안에 변수를 따로만들고 그 변수를 리턴값으로 지정한 함수들이 많다. 이 경우에는 반환받을 리턴값이 있기때문에 print()출력문을 사용하여 출력해야한다. 이런 함수들의 경우 숫자가 저장되어있다면 하나의 값처럼 사용이 가능하다.

 

매개변수O 리턴값O

#매개변수o, 리턴값o

def addNum(num1,num2):  #매개변수 존재
  return num1+num2      #리턴값도 존재

print(addNum(10,10)) #print(함수명(전달할 인수))
result=addNum(10,10)
print(result)

#리턴값이 있는 함수의 리턴값은 값처럼 사용가능!
print(result*10)
print(addNum(10,10)*100)

매개변수도 있고 리턴값도 존재하는 경우에는 리턴값이 있기때문에 출력문으로 출력해야하며 그 안에 전달해줄 인수값도 전달해주어야한다. 마찬가지로 이렇게 리턴값이 존재하는 함수는 하나의 값으로 사용이 가능하다.

 

return값의 활용

#return값의 사용
#1) 함수의 결과를 알려줘야 할때
#2) 함수를 종료시킬때

def exit():
  print("return문은")
  return
  print("함수종료를 의미하기도 합니다!")

#함수 호출
exit()
#return뒤에 반환받을 값을 정해주지 않으면 반문에서 break가 하는 역할과 비슷함

반환값인 retrun은 반환값 정의 이외에도 함수종료의 의미를 갖는다. 반환값이 존재할때 함수내부의 return값을 통해 값을 반환할수 있고, 반환값이 없는경우에는 함수를 호출했을때 출력되지 말아야할 부분위에 return 을 적게 되면, 그 밑의문장은 출력되지 않는다.

 

 

 

사용자 정의함수 실습

#<실습문제1>
#1)add()함수 정의 -> 2개의 정수를 입력받아 입력받은 숫자를 합하는 기능
#2)매개변수 o , returnX

def add(num1=int(input("첫번째 정수입력: ")),num2=int(input("두번째 정수를 입력: "))):
  print(num1+num2)

add()

#<실습문제2>
# sub()함수 정의 -> 함수 안에서 2개의 변수 선언(정수 저장)2개의 정수 뺄셈결과 출력(큰수-작은수)
#매개변수 x 리턴o

def sub():
  num1=10
  num2=100
  return num1-num2 if num1>num2 else num2-num1

print(sub())

#<실습문제3>
# mul()함수 정의 ->2개의 정수를 입력받아 2개의 숫자를 곱해주는 기능
#매개변수 O 리턴O

def mul(num1=int(input("1번째 정수입력: ")),num2=int(input("2번째 정수입력"))):
  result=num1*num2
  return result

print(mul())

print()

print(f"mul함수의 답은: {mul()}입니다")

#<실습문제3>
# mul()함수 정의 ->2개의 정수를 입력받아 2개의 숫자를 곱해주는 기능
#매개변수 O 리턴O

def mul(num1,num2):
  result=num1*num2
  return result

num11=int(input("첫번째 정수 입력: "))
num22=int(input("두번째 정수 입력: "))

print(f"{num11}x{num22}는 mul()함수의 답: {mul(num11,num22)}")

#<실습문제2>
# 문자열을 뒤집어서 출력하는 함수 정의
#문자열을 입력받아, 입력받는 문자열을 거꾸로 출력하는 함수 정의하기
#함수 호출


def str(str1=str(input("문자를 입력해주세요: "))):
  result=str1[::-1]
  return result

print(str())

#<실습문제2>
# 문자열을 뒤집어서 출력하는 함수 정의
#문자열을 입력받아, 입력받는 문자열을 거꾸로 출력하는 함수 정의하기
#함수 호출

def str(str1):
  result=str1[::-1]
  return result

str2=input("문자를 입력해주세요")

print(str(str2))

 

 


학습일기

와오와오 드디어 사용자 정의 함수까지 왔다..!! 기초과정이 거의 끝나간다는 뜻.! 사용자 정의함수는 실무에서 진짜 진짜많이 사용되고, 나중에 들어야할 머신러닝 강의에서 거의 날숨에 사용자정의함수 만들고 들숨에 함수호출한다고하니까..ㅋㅋㅋ최대한 잘 이해하고 활용하도록 연습해야지..그래도 다행인건 사용자 정의 함수 만드는 방법이 파이썬이랑 r이랑 좀 비슷해서 다행인것같다. sql은아예 달라서 진짜 헷갈리는데..흑흑