inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

퀴즈 #4

다른 풀이 방법 질문

323

공부하는 양

작성한 질문수 1

3

선생님 안녕하세요, 언제나 직관적이고 명쾌한 강의 잘 듣고 있습니다.

다름이 아니라 저는 '중복 불가' 조건을 보고 아래처럼 코드를 짜려고 했었는데요. 

1) 변수 1 = [1 ~ 20] (20명)

2) 변수 1에서 치킨 한 명 추첨 

3) 변수 2 = [1 ~ 20] - [치킨 추첨한 n] (19명)

 4) 변수 2에서 커피 세 명 추첨

이렇게 코드를 짜는 게 가능할까요? 선생님께서 짜신 코드가 훨씬 간결한 것 같긴 한데, 궁금해서 여쭤봅니다. 리스트 수업에서  맨 뒤에서부터 하나씩 빼는 .pop() 을 배웠는데, 원하는 값을 빼는 함수는 없을까요? 

추가로, 치킨 당첨자 결과값은 그냥 1, 숫자만 뜨는데 커피 당첨자는 [2, 3, 4] 대괄호에 쌓여서 나오는 이유도 궁금합니다.

답변 부탁드립니다. 

python

답변 2

2

나도코딩

안녕하세요

아래와 같은 코드로 pop 을 활용하실 수 있습니다 ^^

20 명이 있는 리스트를 shuffle 로 뒤섞습니다. (1번)

그러고 나서 맨 뒤에 있는 값을 pop 으로 제거합니다. (2번, 3번)

그리고 3명을 추첨합니다. (4번)

코드 실행해보면서 이해해보세요 ^^ 이해가 안가신다면 다시 질문 남겨주세요.

from random import *
lst = list(range(1, 21))
shuffle(lst)
print("--당첨자 발표--")
print("치킨 당첨자 :" + str(lst.pop()))
print("커피 당첨자 :" + str(sample(lst, 3)))
print("--축하합니다--")

치킨 당첨자는 값 1개를 뽑은 것이고, 커피 당첨자는 3개의 값이 있는 리스트를 뽑은 것이라서,

정수형 / 리스트자료형 으로 출력된거라 [ ] 가 붙어서 나오게 되는 거랍니다. ^^

감사합니다.

0

Alexander sanchez

제가 궁금한걸 딱 전부 질문해주셨네요!

덕분에 잘 배워갑니다!ㅎ

quiz 8 오류 문제

0

68

1

str() 작성 위치

0

50

1

아나콘다

0

60

1

윈도우 설치 도와주세요

0

73

1

std_weight함수에서weight만return가능한가요?

0

67

1

오른쪽위 실행버튼을 누르면 터미널에 에러가 뜨고 컨트롤+F5를 누르면 에러가 안뜹니다.

0

33

1

설치해서 시작하는데 문제가 있습니다.

0

68

1

함수 입력할 때 설명 툴팁 나오게 하려면 어떻게 하나요?

0

102

1

2장 환경설정 문의

0

72

1

스타크래프트 프로젝트

0

74

1

python 파일명.py 입력시 Python 출력

0

133

1

로드맵 질문있습니다!

0

84

2

오류

0

74

1

질문 있습니다.

0

73

1

블로그에 학습한 내용을 정리해도 괜찮을까요?

0

171

1

#퀴즈 3의 5번 질문

0

71

1

print("ㅋ"*5) 에 대한 결과가 도출되지 않습니다

0

80

1

가변인자의 위치가 중요한가요?

0

79

1

vscode옛날 버전 설치

0

219

1

글자색상이 선생님처럼 안나옵니다

0

186

1

슬프네

0

155

1

quiz 6번 관련 문의입니다.

0

129

1

퀴즈#3에 대해서 이렇게 작성해도 되나요?

0

192

1

피드백 부탁드립니다

0

90

1