2017-10-15 1 views
1

녀석. 이것을 통해 시간을내어 주셔서 감사합니다. 나는 파이썬이이 새로운 문자열 변수를 얼마나 정확하게 생성하는지 알아 내려고 애 쓰고있다. 초기 코드는 임의의 단어로 가득 찬 튜플로 구성됩니다. 임의의 단어를 가져 오기 위해 선택 방법을 가져 와서 사용한 임의의 모듈이 있습니다. 그런 다음, 방금 뽑은 임의의 단어가 들어있는 주어진 변수에서 while 루프가 작성되었습니다. 목표는 단어의 글자를 완전히 무작위로 추출하는 것이 었습니다. 단어 다음에 무작위 색인 단어를 포함하는 변수를 인쇄합니다. 여기에 내가 말하고있는 코드가있다이 새로운 문자열 변수는 파이썬에서 루프 알고리즘을 수행하는 동안 정확히 어떻게 생성됩니까?

import random 

# create a sequence of words to choose from 
WORDS = ("python", "jumble", "easy", "difficult", "answer", "xylophone") 
# pick one word randomly from the sequence 
word = random.choice(WORDS) 
# create a variable to use later to see if the guess is correct 
correct = word 

# create a jumbled version of the word 
jumble ="" 
while word: 
    position = random.randrange(len(word)) 
    jumble += word[position] 
    word = word[:position] + word[(position + 1):] 

print(jumble) 

내 질문은, 정확히 어떻게 새로운 쓰레기 같은 단어를 만드는거야? 나는이 코드에 도달 할 때까지 코드를 이해하고 무슨 일이 일어나고 있는지 혼란스럽게합니다.

jumble += word[position] 
word = word[:position] + word[(position + 1):] 
+0

파이썬 코드에 대해 잘 모르겠지만 문제를 분리하십시오. 1. 임의의 단어를 선택하십시오. 2. 단어 자체를 임의로 바꾸고, 순열이라고하는 수학에서 아마 무작위 순열을 원할 것입니다. – Elmex80s

답변

3

반복 할 때마다 한 단어가 원래 단어에서 뒤죽박죽으로 "이동"됩니다. 당신이 구문을 이해 할 때 actualy 매우 간단합니다 : - 임의의 위치

word = word[:position] + word[(position + 1):]에서 뒤죽박죽 단어에있는 문자를 추가 -

jumble += word[position] 원래 단어에서 위치 position에있는 문자를 제거를 word

하는 경우 while 루프의 첫 번째 줄에 print word, jumble을 추가하면 단어가 생동감있게 나옵니다.

+0

아아아, 알았어. 그래서 while while 루프의 경우 ... while 루프 조건이 word 변수 자체의 전체 길이를 통과한다는 점에서 for 루프와 같은 역할을한다고 말하는 것이 안전할까요? –

+1

@KennethStevenMcAuslandJr. 그렇게 말할 수 있습니다. 'xrange in xrange (len (word)) :'도 여기에서 효과가 있었을 것입니다. –

+0

Daniel! 괜찮으 시다면 이번 주에 언젠가 나중에 잠시 후에 루프 연습을 해보시겠습니까? –

관련 문제