본문 바로가기

내일배움캠프

파이썬 - 랜덤 닉네임 생성기

이번 캠프에 참여하면서 첫 파이썬 과제였다.

지정한 몇개의 문자를 랜덤으로 추출해서 하나의 단어로 만드는 과제였다.

파이썬을 공부하면서 항상 느끼는 것은 파이썬을 켜자마자 보이는 첫화면이 상당히 막막하다는 것이다.

텅 빈 화면을 보고 있으면 뭘 해야할지 모르겠다고 해야할까... 뭐부터 해야할지 모르겠다고 해야할까...

작업시작 첫 화면, 막막하다.

 

그리고 고민 끝에 힌트를 살짝 열어본다.

 

힌트!

 

힌트를 보니 코드작성 방식에 대한 대략적인 흐름이 보인다.

 

1. random 라이브러리를 import하고

2. 랜덤 닉네임의 조합이 되는 부분을 리스트로 작성해서

3. 랜덤으로 조합을 하는 함수를 생성한 출력한다.

 

그리고 이번 과제를 해결하기 위해서 랜덤 모듈을 간단하게 공부해보았다.

나는 특정 리스트에서 특정 인자를 무작위로 추출해야하기 때문에 random.randrange(a, b)를 이용해서 a이상 b미만의 무작위 수를 얻어내면 될 것이다.

first_list[random.randrange(0, 3)]

 

그리하여 첫번째로 만들어진 코드, first_list라는 리스트에서 0~2까지의 무작위 순번의 인자를 추출하도록 했다.

그런데 작성하고나니 무언가 아쉬운 느낌이 들었다. 지금은 리스트의 인자가 3개밖에 없었기 때문에 직접 갯수를 세서 수식에 입력했지만, 리스트 내의 인자가 아주 많아서 직접 세기 힘들다면? 또는, 리스트 내의 인자의 수가 변경된다면?

 

first_list[random.randrange(0, len(first_list))]

 

그래서 이전에 작성했던 코드에 약간의 수정을 거쳤다. 출력 정수의 범위를 고정된 숫자에서 리스트의 길이만큼으로 확장해서 리스트내의 인자의 수를 직접 세지 않아도 되고 갯수가 변경되어도 코드를 수정할 필요가 없을 것이다.

 

이 다음부터는 아주 쉬웠다. 우선 방금 작성한 코드를 복사해서 두번째, 세번째 리스트에서도 임의의 인자를 추출하고 각각의 인자를 a, b, c에 입력시켰다.

a = first_list[random.randrange(0, len(first_list))]
b = second_list[random.randrange(0, len(first_list))]
c = third_list[random.randrange(0, len(first_list))]

 

이제 무작위로 추출한 각 단어들을 합쳐주기만 하면 끝이 난다.

 

def create_random_nickname():
    a = first_list[random.randrange(0, len(first_list))]
    b = second_list[random.randrange(0, len(first_list))]
    c = third_list[random.randrange(0, len(first_list))]

    return a + b + c

이런 식으로.

 

얻어낸 결과물, 그런데 뭔가 아쉽다.

 

 

출력 결과 자체는 마음에 들었지만 띄어쓰기를 깜빡하고 말았다.

마지막으로 코드를 수정해주자.

def create_random_nickname():
    a = first_list[random.randrange(0, len(first_list))]
    b = second_list[random.randrange(0, len(first_list))]
    c = third_list[random.randrange(0, len(first_list))]

    return a + " " + b + " " + c

 

끝!

이제 코드가 성공적으로 실행이 된다!

이제 알아보기 쉽도록 마무리를 해서 최종 코드를 작성하면

 

import random

first_list = ["기철초풍", "멋있는", "재미있는"]
second_list = ["도전적인", "노란색의", "바보같은"]
third_list = ["돌고래", "개발자", "오랑우탄"]

def create_random_nickname():
    a = first_list[random.randrange(0, len(first_list))]
    b = second_list[random.randrange(0, len(first_list))]
    c = third_list[random.randrange(0, len(first_list))]

    return a + " " + b + " " + c


my_nickname = create_random_nickname()
print(my_nickname)

 

최종적으로는 이렇게 작성이 완료되었다.

 

처음에는 어떻게 해야 할지 몰랐지만 완성된 코드를 보니 만족감이 든다.

'내일배움캠프' 카테고리의 다른 글

단어맞추기 게임  (0) 2024.05.28
스파르타 자판기  (0) 2024.05.27
아티클스터디 - 생성형 AI란?  (0) 2024.05.23
Python 톺아보기  (0) 2024.05.22
AI트랙을 신청한 이유  (0) 2024.05.21