[Python] if와 else를 이용한 조건문 만들기 (feat. random함수 사용하기)

yejin20·2020년 8월 31일
0

Python

목록 보기
6/14
post-thumbnail

1. if ~ else 조건문 만들기

어떤 조건문을 만들까 엄~청 고민하다가 또 음식에 진심인 나이기 때문에... 끼니를 아무거나로 끝낼 수는 없으므로.. 메뉴를 정해주는 조건문을 만들고 싶었다.

# 공통
import random


# 랜덤 메뉴들 
rice_menu = ["김치볶음밥", "뼈 해장국", "콩나물 국밥", "비빔밥", "계란볶음밥"]
rice_out = random.choice(rice_menu)
nuddle_menu = ["라면", "짜장면", "불닭볶음면", "라멘", "냉면", "콩국수", "칼국수"]
nuddle_out = random.choice(nuddle_menu)
bread_menu = ["토스트", "햄버거", "샌드위치", "케이크"]
bread_out = random.choice(bread_menu)
meat_menu = ["삼겹살", "곱창", "치킨", "오리훈제", "돈까스", "양꼬치"]
meat_out = random.choice(meat_menu)



print("배가고프시군요. 음식을 추천해드릴까요?")
start = input()

if start == "네" or start == "응" or start == "yes" :
    print("쌀, 면, 빵, 고기 키워드 중 선택해주세요")

else :
    print("아쉽군요. 다음 기회에 알려드릴게요")

answer = input()

if answer == "쌀" :
    print (rice_out + "을 드세요.")

if answer == "면" :
    print (nuddle_out + "추천합니다.")

if answer == "빵" :
    print (bread_out + "어때요?")

if answer == "고기" :
    print (meat_out + "가즈아!")

else :
    print ("어.. 제가 좀 더 분발할게요.. 다른 키워드의 추천 메뉴는 아직 고민해보지 못했어요.")

이게 vs code로 완성한 조건문이다.
음식 추천을 받을지 말지에 대한 내용은 if 와 else를 사용했고
키워드 선택에 따라 추천해줄 메뉴들은 if 를 연속해서 사용했다.
(만들다보니 이렇게 됐는데 elif를 사용하지 못한게 조금 아쉽다. 다음에 한번 더 조건문을 만들어 봐야겠다.)

처음에는 되게 간단하게 생각했는데 나는 ... 리스트에서 랜덤으로 뽑아내는 메소드를 전혀 모르고 있었다! 그래서 겸사겸사 배웠던 메소드도 함께 정리하려고 한다.

2. random 모듈

파이썬에서는 random 관련 함수들을 사용할 수 있도록 random 모듈을 내장하고 있다.


1) 공통 : import random

random 함수들을 사용하기 위해서는 먼저 random 모듈을 import 해주어야한다.

import random   #랜덤 모듈 import

2) random 함수 종류

1) random.randint(시작,종료)

  • 특정 범위의 정수 중 하나를 랜덤하게 선택한다.
  • 시작 값 이상, 종료 값 이하의 정수를 난수로 생성한다.
>>> random.randint(1,100) #1이상 100이하의 정수를 난수로 생성
28  # 실행시 랜덤으로 출력됨

2) random.randrange(시작,종료,증가값)

  • 시작 값 이상, 종료값 미만의 난수를 리턴한다.
>>> random.randrange(0,11,2) #0부터 10까지 2의 배수가 랜덤으로 생성
6  # 실행시 랜덤으로 출력됨

3) random.shuffle(변수명)

  • 리스트에 있는 항목들의 순서를 랜덤하게 재배치한다.
  • 리턴값이 없고, 전달하는 변수 자체를 바꾼다.
  • 리스트가 바뀌기 때문에 튜플은 안된다.
# 공통
>>> import random


# 랜덤 메뉴들 
>>> rice_menu = ["김치볶음밥", "뼈 해장국", "콩나물 국밥", "비빔밥", "계란볶음밥"]
>>> random.shuffle(rice_menu)
>>> print(rice_menu)

['콩나물 국밥', '뼈 해장국', '계란볶음밥', '김치볶음밥', '비빔밥']  # 실행시 순서가 랜덤으로 바뀌어서 출력


4) random.choice(변수명)

  • 리스트, 튜플에서 랜덤으로 하나를 추출한다.

# 공통
>>> import random

>>> rice_menu = ["김치볶음밥", "뼈 해장국", "콩나물 국밥", "비빔밥", "계란볶음밥"]
>>> rice_out = random.choice(rice_menu)
>>> print(rice_out)

계란볶음밥   # 실행시 랜덤으로 출력됨

  • 중복을 허용 ⭕️, 하나가 아닌 원하는 만큼 랜덤으로 추출하고 싶다면 + for 문을 같이 활용한다.

  • 추출하고자 하는 숫자가 리스트의 인덱스보다 많아도 오류 발생 ❌ - 중복으로 출력됨

# 공통
>>> import random


# 랜덤 메뉴들 
>>> rice_menu = ["김치볶음밥", "뼈 해장국", "콩나물 국밥", "비빔밥", "계란볶음밥"]
>>> rice_out = [random.choice(rice_menu) for i in range(7)]
>>> print(rice_out)

['김치볶음밥', '비빔밥', '계란볶음밥', '비빔밥', '뼈 해장국', '계란볶음밥', '비빔밥'] # 실행시 랜덤으로 출력됨

5) random.sample(변수명, 추출 갯수)

  • 중복 허용 ❌, 리스트 내에서 정한 숫자만큼 랜덤으로 추출
  • 추출 갯수가 리스트 인덱스보다 많으면 오류 발생❗️
# 공통
>>> import random


# 랜덤 메뉴들 
>>> rice_menu = ["김치볶음밥", "뼈 해장국", "콩나물 국밥", "비빔밥", "계란볶음밥"]
>>> rice_out = random.sample(rice_menu,2)
>>> print(rice_out)

['비빔밥', '뼈 해장국']

5.5) random.sample(range(시작,종료),리턴값개수)

  • 시작값 이상, 종료값 미만의 값을 리스트 형식으로 반환
  • 중복 ❌
>>> random.sample(range(1,101),5)  #1부터 100까지의 숫자 랜덤으로 5개

[53, 2, 19, 56, 90]


profile
Backend Developer 🌱

0개의 댓글