[python] 달리기반 1

양승우·2024년 9월 19일

Python

목록 보기
2/16

Q. 랜덤한 닉네임 생성하기(3x3x3의 조합)

: 3x3x3=27개 랜덤한 닉네임 중 하나를 무작위로 생성

코딩 전 구상
(1) 각각 3개의 키워드가 들어있는 3개의 리스트를 생성
(2) random.randrange() 함수를 통해 각각 리스트에서 무작위 키워드를 추출
(3) 추출된 키워드를 하나의 string으로 병합

import random

name_list_1 = ['기절초풍', '멋있는', '재미있는']
name_list_2 = ['도전적인', '노란색의', '바보같은']
name_list_3 = ['돌고래', '개발자', '오랑우탄']


def create_nickname():
	#각 리스트의 인덱스 값으로 사용할 무작위 정수 생성
    #인덱스는 0부터 시작이므로 생성된 정수에 -1을 적용
    rnd_1 = random.randrange(1, 4) - 1
    rnd_2 = random.randrange(1, 4) - 1
    rnd_3 = random.randrange(1, 4) - 1

    full_name = list()
	
    #각 리스트에 무작위 정수를 적용해 요소를 추출하고 이를 full_name 리스트에 추가
    full_name.append(name_list_1[rnd_1])
    full_name.append(name_list_2[rnd_2])
    full_name.append(name_list_3[rnd_3])

    nick_name = ''
	
    #full_name은 리스트니까 값들을 하나의 string으로 변환
    for i in full_name:
        nick_name += i
        nick_name += ' '

    return nick_name


my_nickname = create_nickname()
print(my_nickname)

custom Q: 닉네임 키워드를 직접 입력하는 경우

# 기존 lv1 문제와 동일하지만 닉네임에 사용할 키워드를 직접 입력하여 사용

import random


def make_list():
    first_list = list()
    second_list = list()
    third_list = list()
    x1 = ''
    x2 = ''
    x3 = ''

    while True:
        x1 = input('첫번째 키워드 후보를 입력하세요 (0을 입력하면 넘어갑니다): ')
        if x1 == '0':
            if len(first_list) == 0:
            	# 사용자가 바로 0을 입력하여 키워드가 존재하지 않는 경우 방지
                print('적어도 1개의 키워드가 포함되어야 합니다.')
                continue
            else:
                break
        else:
            first_list.append(x1)
    print()

    while True:
        x2 = input('두번째 키워드 후보를 입력하세요 (0을 입력하면 넘어갑니다): ')
        if x2 == '0':
            if len(second_list) == 0:
                print('적어도 1개의 키워드가 포함되어야 합니다.')
                continue
            else:
                break
        else:
            second_list.append(x2)
    print()

    while True:
        x3 = input('세번째 키워드 후보를 입력하세요 (0을 입력하면 넘어갑니다): ')
        if x3 == '0':
            if len(third_list) == 0:
                print('적어도 1개의 키워드가 포함되어야 합니다.')
                continue
            else:
                break
        else:
            third_list.append(x3)
    print()

    return first_list, second_list, third_list


def create_nickname(name_list_1, name_list_2, name_list_3):
	#range 함수는 (start, end+1)의 수치를 입력해주어야 함
    rnd_1 = random.randrange(1, len(name_list_1)+1) - 1
    rnd_2 = random.randrange(1, len(name_list_2)+1) - 1
    rnd_3 = random.randrange(1, len(name_list_3)+1) - 1

    full_name = list()

    full_name.append(name_list_1[rnd_1])
    full_name.append(name_list_2[rnd_2])
    full_name.append(name_list_3[rnd_3])

    nick_name = ''

    for i in full_name:
        nick_name += i
        nick_name += ' '
	
    #마지막에 추가된 공백 제거하기 위함
    nick_name = nick_name[:-1]

    return nick_name


name_list = make_list()
new_nickname = create_nickname(name_list[0], name_list[1], name_list[2])
print(f"당신의 닉네임은 '{new_nickname}'입니다.")

profile
어제보다 오늘 더

0개의 댓글