2014-02-24 1 views
-2

에서 구 만들기는 어떻게 사용하여 다음 문구를 만들 것입니다 :파이썬 -시 감안시

이 숫자는 문구 의지에서 좌표, 행과 열 수 있습니다. (1,1), (1,20), (3,60)

내 질문은 누구에게이 작업을 수행하는 방법에 대한 아이디어가 있습니까?

+3

정보를 더 제공 할 수 있습니까? 이 좌표는 무엇입니까? 단어? 문장? 편지? 당신은 좌표에 의해 주어진 각 요소에서 당신의 문구를 만드시겠습니까? 그렇다면, 좌표는 당신의 시인 문자열을 참조합니까? – ZekeDroid

+0

일부 코드를 아직 사용해 보지 않으셨습니까? – Totem

답변

2

좋아 I 해요 추측하여 문제에서 촬영을 거 :

당신의시는 그것이 당신이 쓰는 단어의 무리와 라인 문자의 끝에서 끝을 (갖도록 텍스트 파일하자 그냥 타격에 의해 입력). 이 파일은 다음과 같이 보일 것입니다 :

This is a poem 
with many lines 
much much lines. 

이제이 파일을 저장하고 쉽게 열 수 있도록 동일한 폴더에 파이썬 스크립트를 작성합니다.

스크립트는 이제 두 가지 작업을 수행합니다. 먼저시를 사용하여 파일을 열고 문자열 목록으로 저장합니다. 즉, 배열의 각 요소를시 (첫 번째 좌표 점)의 줄로 간주하고 각 요소는 단어 (두 번째 요소)로 구성됩니다.

그래서 코드에서 스크립트는 다음과 같습니다

lines = [] 

with open('poem.txt', 'r') as poem: 
    for raw_line in poem: 
     line = raw_line.strip() 
     lines.append(line.split(" ")) 

우리는 우리의 선 배열을 인쇄 할 경우 우리가 얻을 :

[['This', 'is', 'a', 'poem'], ['wtih', 'many', 'lines'], ['much', 'much', 'lines.']] 

그래서 완료, 기능을 당신의 구문의 배열에 걸릴 수있다 좌표는 다음과 같이 라인 배열의 단어를 가져옵니다.

def phrases(coords, poem): 
    '''Takes in an array of tuples with x and y coordinates where x is 
    the line number and y is the word on that line. Also takes in the 
    poem array''' 
    phrase = "" 
    for coordinate in coords: 
     line = coordinate[0] 
     word = coordinate[1] 
     phrase += poem[line][word] + ", " 

    # this is messy cause there's a lagging comma space at the end but 
    # figure that out later. 

    return phrase[:len(phrase)-2] 

This, lines, lines. 

는 요약 :

print phrases([(0,0), (1,2), (2,2)], poem) 

는 문구를 얻을 것입니다 : 범위에 우리시와 세 개의 좌표를 산출 할 것이다 라인의리스트로시를 저장하고 각 라인 단어로 구성되어있다. 좌표계는 (행, 단어)입니다. 희망이 당신이 염두에 두었던 것입니다.

+0

이것은 내가 하루 종일 성취 한 의미와 정확히 같은 것처럼 보입니다. 만약에 내가 함수에서 그것을 원하지 않는다면 어쨌든 – bisera

+0

그냥 첫 번째 줄을 없애고 그 앞에 좌표 배열을 선언하십시오. 그 부분은 쉬워야합니다. – ZekeDroid