2016-08-08 2 views
-6

이 코드가 작동하지 않는 이유가 확실하지 않습니다. 나는 단어 목록의 사본을 반복하고 단어를 다른 주어진 단어로 대체하려고 노력하고있다. 대신 잘못된 구문 오류가 발생합니다. 이제는 (반복되는 다른 게시물을 읽고) 반복 목록을 수정하는 것은 나쁜 습관이라는 것을 알고 있으므로 [:]을 사용하여 사본을 만들었습니다.Python : 반복하는 동안 단어 바꾸기

def change(z): words = z.split() for i in words[:]: if 'because' in i: words.replace(i, 'as') print(words) change(input("Line: "))

그리고 오류 :

Traceback (most recent call last): File "C:/Users/Jarrod/Desktop/py/NCSS2016Adv/kindleNook.py", line 9, in <module> change(input("Line: ")) File "<string>", line 1 is as ^ SyntaxError: invalid syntax

내 구문이 올바르지 않습니다 왜 모든 단서가 크게 감상 할 수있다 여기에 내가 가지고있는 코드입니다.

+5

들여 쓰기가 꺼져 있습니다 ... 'def'아래에있는 모든 것을 들여 씁니다. 또한 다음에 전체 추적과 함께 오류 메시지를 게시하십시오. – Selcuk

+0

죄송합니다. 저는 이것에 대해 상당히 새로운 것 같습니다. 이 문제를 해결할 것입니다 :) – adep7

+0

@Lafexlos 문법 오류에 대한 질문입니다. 그래도 이것은 아주 최소한의 이해를 보여줍니다. –

답변

-3

의견에있는 다른 사람들의 말처럼 실제로 오류를 생성하는 코드를 제공해야합니다.

어쨌든 코드에서 의 루프를 반복하므로 i은 목록이 아닌 문자열이됩니다. 따라서 if 'because' in i 대신 if i == 'because'을 사용해야할까요?

+0

코드가 얼마나 끔찍하게 파괴 되었기 때문에 저자가 진정으로이 기능에서 원하는 것을 추측하는 것은 정말로 불가능합니다.아마도 문자열에있는 경우 바꾸기 때문에 '문자열'과 같을뿐 아니라 누가 알 수 있습니까? –

+0

@Oasiscircle, 아,이 모든 것을 유감스럽게 생각합니다. 게시 할 때 이러한 모든 세부 정보를 포함해야합니다. 내가 정말로하고 싶은 것은 그것이 문자열에있는 경우와 같지 않으면 문자열 만 바꾸는 것입니다. 감사합니다. – adep7

+2

회원 확인을 동등 검사로 변경하면 'SyntaxError'가 해결되지 않습니다. 나는 이것이 왜 받아 들여지는지 모른다. @ adep7, 실제로 문제가 해결 되었습니까? 왜냐하면 그렇게하는 것이 불가능하기 때문입니다. – TigerhawkT3

-2

Python 2.x 또는 3.x를 사용합니까? 2.X 경우

파이썬이 내장 input() 기능 파이썬 코드로 입력 문자열을 해석하려고합니다 : https://docs.python.org/2/library/functions.html#input

그래서 자연 언어는 분명히 잘못된 구문 오류를 유발합니다 입력 한 경우.

대신 raw_input()을 사용하십시오.

+0

Downvoters, 나는 내 대답이 정답이라고 확신하므로, 왜 그렇게 생각하는지 설명해주십시오 ... – Guillaume

+1

input()은 파이썬 코드로 해석되지 않습니다. eval() 및 exec()가 수행합니다. –

+0

나는 OP가 질문에 분개하고 그들이 사용하고 있다고 생각하는 파이썬 버전을 사용하지 않는다고 생각한다. – TigerhawkT3