[Python] 파이썬으로 랜덤뽑기 프로그램 만들기

728x90
반응형

다음은 코드라이언 '일단 시작하는 Python' 강의를 바탕으로 작성된 글입니다.

일단 시작하는 파이썬(Python)

파이썬으로 간단하게 식사 메뉴를 랜덤으로 뽑아서 출력해주는 프로그램을 만들어보자.


랜덤 뽑기

파이썬

출력하는 함수: print()

random.choice(리스트): 리스트에 있는 원소를 랜덤으로 뽑는다. → 앞에 import random 해줘야 한다.

import random

print(random.choice(["된장찌개", "김치찌개", "보쌈", "떡볶이"]))

터미널 창에 `$python 파일이름.py `를 입력하면 리스트의 네 개의 메뉴 중에 한 개가 랜덤으로 출력된다.

 


 

문장 반복하기

문장을 특정 횟수 반복하게 하려면 for문을 이용하면 된다.

파이썬은 들여쓰기를 강력하게 체크하기 때문에 다음 코드 다음에 들여쓰기를 해서 쓰냐 마느냐에 따라 해당 문장이 반복될 수도, 반복되지 않을 수도 있다.

import random

for x in range(30):
  print(random.choice(["된장찌개", "김치찌개", "보쌈", "떡볶이", "치킨"]))

 


 

무한루프

while문을 이용해서도 반복할 수 있다.while (조건문) 을 쓰면 되는데, 조건문이 True인 동안 반복된다.그리고 break를 만나면 강제로 해당 루프를 빠져나온다.

import random
import time

while True:
    print(random.choice(["된장찌개","치킨","떡볶이","라면","감자튀김"]))
    break
    print("이 문장도 반복되나")
    time.sleep(1)

무한루프 해제하기: `break`

1초 쉬기: time.sleep(1) ← time을 import 해줘야 한다.

 

 


Dictionary 활용하기

dictionary형: 중괄호로 key와 value를 묶는다.

key에 해당하는 value를 출력하기 위해서는 `get(key)` 함수를 이용하면 된다.

information = {'고향':'수원', '취미':'영화관람', '좋아하는 음식':'치킨'}
print(information.get("고향"))
information = {"고향":"수원", "취미":"영화관람","좋아하는 음식":"국수"}
foods = ["된장찌개", "피자", "제육볶음"]
print(information.get("취미"))
information["특기"] = "피아노"
information["사는곳"] = "서울"
del information["좋아하는 음식"]
print(information)
print(len(information))
information.clear()
print(information)
print(foods[3])

리스트에 원소 추가하기: `리스트이름.append("원소")`

리스트 원소 삭제하기: `del 리스트이름[인덱스]`

 


리스트의 모든 원소 출력하기

파이썬에서는 `range()`함수를 사용하여 범위를 순회할 수 있다. 

for x in range(30): //0에서부터 29까지(30번) 출력
    print(x)

foods = ["된장찌개", "피자", "제육볶음"]
for x in range(3):
    print(foods[x])
for x in foods:
    print(x)

information = {"고향":"수원", "취미":"영화관람", "좋아하는 음식":"국수"}
for x, y in information.items():
    print(x)
    print(y)

 


집합 사용하기

집합은 중복된 원소가 존재할 수 없다.

  • 합집합: 겹치는 원소에 대해서 집합을 생성한다.
  • 차집합: 겹치는 원소를 빼준다.
  • 교집합: 겹치는 원소만 보여준다.
foods = ["된장찌개", "피자", "제육볶음"]
foods_set1 = set(foods)
foods_set2 = set(["된장찌개", "피자", "제육볶음"])
print(foods_set1)
print(foods_set2)

 

<집합 기호>

합집합: 파이프(|)

교집합: &

차집합: -

 

 


[오늘은 뭐 드실?] 제작하기

랜덤으로 오늘 먹을 음식을 고르는 프로덕트를 만들어보겠다.

 

[기능]

  • 음식 후보 추가하기
  • 음식 후보 삭제하기
lunch = ["된장찌개", "피자", "제육볶음", "짜장면"]
lunch.append("돈까스")
print(lunch)

 

사용자 입력 받기: input()함수 사용

사용자 입력을 변수에 저장하여 리스트에 추가하려면 다음과 같이 입력하면 된다.

다음 코드는 무한루프를 돌면서 아이템을 추가하도록 하였다. 무한루프를 중단시키려면 Ctrl+c 를 누르면 된다.

lunch = ["된장찌개", "피자", "제육볶음", "짜장면"]
While True:
	item = input("음식을 추가 해주세요: ")
	lunch.append(item)
	print(lunch)

Ctrl+c를 누르지 않고, 그 대신 q를 입력했을 때 중지시키려면 if문을 사용하면 된다.

lunch = ["된장찌개", "피자", "제육볶음", "짜장면"]

while True:
    print(lunch)
    item = input("음식을 추가 해주세요 : ")
    if(item == "q"):
        break
    else:
        lunch.append(item)
    
print(lunch)

 

메뉴 삭제하기

메뉴를 집합(set)으로 만들고, 차집합을 통해 메뉴를 삭제한다.

예를 들어 food를 삭제하려면 다음과 같이 짜면 된다. 

set_lunch = set(lunch)
food = "짜장면"
set_lunch = set_lunch - set([food]) //food를 리스트형으로 바꿔서 set으로 만들어야 함.

[오늘은 뭐 드실?] 최종 코드

 

import random
import time

lunch = ["된장찌개", "피자", "제육볶음", "짜장면"]

while True:
    print(lunch)
    item = input("음식을 추가 해주세요 : ")
    if(item == "q"):
        break
    else:
        lunch.append(item)
print(lunch)

set_lunch = set(lunch)
while True:
    print(set_lunch)
    item = input("음식을 삭제해주세요 : ")
    if(item == "q"):
        break
    else:
        set_lunch = set_lunch - set([item])

print(set_lunch, "중에서 선택합니다.")
print("5")
time.sleep(1)
print("4")
time.sleep(1)
print("3")
time.sleep(1)
print("2")
time.sleep(1)
print("1")
time.sleep(1)
print(random.choice(list(set_lunch)))

 

 

참고) CODE LION - 일단 만드는 Python

728x90
반응형