2015-01-09 4 views
0

내가 생각 파이썬 책에서 운동 3.3 스크립트를 실행하기 위해 노력하고있어 :구문 오류

문제 : 파이썬은 문자열의 길이를 반환 LEN라는 내장 기능을 제공하므로 len('allen')의 값은 5입니다. right_justify라는 함수를 작성합니다.이 함수는 s라는 문자열을 매개 변수로 사용하여 문자열의 마지막 문자가 디스플레이의 열 70에 있도록 충분한 선행 공백이있는 문자열을 인쇄합니다.

내가 지금까지 스크립트에서 몇 가지 단점을 보완 근무했습니다 나는이 있습니다

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

def right_justify(s): 
    print ‘ ‘ * (70 - len(s)) + s 

right_justify(‘allen’) 

을 내가하려고 할 때 그것을 실행하기 위해 다음과 같은 에러가 발생

File "/Users/Jon/Documents/Python/Chapter 3/right justify.py", line 5 
    print ‘ ‘ * (70 - len(s)) + s 
     ^
SyntaxError: invalid syntax 

을 어떤 실수를 했습니까?이 스크립트를 수정하려면 어떻게해야합니까?

+0

가되어야한다 : - 렌 (들 '인쇄' '* (70 당신은 아스키 따옴표, ', (때때로 아포스트로피으로 사용),

print ' ' * (70 - len(s)) + s 

또는 큰 따옴표가 필요합니다)) + s' – Marcin

+0

텍스트 편집기를 전환하는 것이 좋습니다. 'TextEdit'과 같은 코드 용으로 설계되지 않은 편집기를 사용하고 있다면,이 같은 우스운 문제로 끝날 것입니다. 나는 개인적으로 [Sublime] (http://www.sublimetext.com/)을 추천하지만 그 밖의 위대한 편집자들이 많다. – rickcnagy

답변

3

문자 파서에 의해 인식되지. 당신은 문자열 리터럴 중 하나를 아포스트로피 또는 인용 부호 (' 또는 ")를 사용해야합니다

자세한 내용은
print ' ' * (70 - len(s)) + s 

이 문서에 Strings literals를 참조하십시오.

0

당신이

print ‘ ‘ * (70 - len(s)) + s 

를 사용하는 문자는 ASCII가 아닌 아포스트로피, 그리고 당신은 당신의 코드에서 유니 코드 리터럴을 사용할 수 있지만, 당신은 작은 따옴표를 위해 사용할 수 없습니다.

print " " * (70 - len(s)) + s