2014-10-11 3 views
3

나는 임의의 암호를 생성하는 python 스크립트를 작성하려고하는 초보 프로그래머입니다. 그러나, 비록 내가 여기에 스택 오버플로와 비슷한 다른 질문에서 언급 한 바와 같이 # utf-8 코딩을 선언했지만 비 ASCII 문자 오류가 발생합니다. ~/바탕 화면 $ 파이썬 passwordgenerator.py비 ASCII 문자 오류 python

파일 "passwordgenerator.py"라인 :

import string 
import random 
#coding: utf-8 
print "Password generator will create a random customizable password." 
print "Choose your options wisely." 
number = int(input("How many letters do you want in your password?")) 
caps = str(input("Do you want capital letters in your password? Y/N")) 
symbols = str(input("Do you want punctuation, numbers and other symbols in your password? Y/N")) 
punctuation = ("!", ".", ":", ";", ",", "?", "'", "@", "£", "$", "«", "»", "~", "^","%", "#", "&", "/", range(0, 11)) 
lowercase = string.ascii_lowercase 
uppercase = string.ascii_uppercase 
if caps == "N": 
    characters = lowercase 
else: 
    characters = uppercase + lowercase 
if symbols == "Y": 
    characters += punctuation 
password = random.sample(characters, number) 
print "The password is", password "." 

이 터미널 출력

페드로 @ 페드로 --3521 인스는이 소스 코드입니다 9 SyntaxError : 9 행의 passwordgenerator.py 파일에 ASCII가 아닌 문자 '\ xc2'가 있지만 인코딩이 선언되지 않았습니다. 자세한 내용은 http://www.python.org/peps/pep-0263.html을 참조하십시오.

본인은 링크를 확인했지만 어쩌면 영어가 모국어가 아니며 오래 전부터 프로그래밍을 시작했기 때문에 이해할 수 없었습니다. 도움을 위해 미리 감사드립니다.

+0

사용 'raw_input을 (맥 OS X 관리자가 입력 한 암호를 입력하라는 메시지가 표시되면() '후자는 입력을 되풀이합니다. 즉,'eval (raw_input()) '처럼 작동합니다. – jfs

답변

1

구두점 목록에 >><< 기호가 있습니다.

이들은 유효하지 않습니다. 자신의 유니 코드를 대신

http://www.fileformat.info/info/unicode/char/bb/index.htm http://www.fileformat.info/info/unicode/char/ab/index.htm

EDIT를 찾아보십시오 : NO 심지어 구두점 목록의 일부로서 이중 갈매기를 두지 않도록 오 하지만, 대기,이 암호 생성기로,이다 이들은 어떤 암호에도 유효하지 않습니다.

punctuation = ("!", ".", ":", ";", ",", "?", "'", "@", "$", "~", "^", "%", "#", "&", "/", range(0, 11)) 

왜 구두점 튜플에 숫자를 추가합니까?

대신 string.punctuation 및 string.digits를 사용하지 않는 이유는 무엇입니까?

+0

그래서 당신이 준 링크에서«파이썬 소스 코드는 "\ u00AB"이고»\ "\ u00BB "내 안에 포함시켜야합니까?" – chilliefiber

+0

위로 내 업데이트보기 –

+0

나는 그들을 삭제했지만 여전히 작동하지 않습니다. 동일한 실수가 있습니다. – chilliefiber

5

비 ASCII 문자를 허용하려면 #coding: utf-8 줄이 파일의 맨 위에 있어야합니다.

£, «»은 ASCII가 아닙니다.

암호에 ASCII가 아닌 문자를 사용하고 싶지는 않지만 대부분의 사이트에서는 허용되지 않지만 이론적으로 허용 할 수있는 이유는 없습니다.

0

Mac을 사용하는 경우 폴더의 내용을 읽는 동안 ascii 오류가 발생하는 .DS_STORE 파일이 있습니다. 모든 DS_Store 파일

  • 선택 응용 프로그램을 제거

    • 사용하는 경우

      그래서이 작업을 수행 유틸리티> 터미널을 실행합니다.

    • 는 다음 UNIX 명령을 입력 :

    • sudo는은/-name "를 찾을 수 있습니다.DS_Store "-depth 간부 인 RM은 {} \;

    • 대신 입력`의 파이썬 2.7에`) 비밀번호

  • +0

    이것은 좋은 대답과 가능한 동안, Mac에서 더 많은 원인은 편집기에서 복사하는 것입니다 Python과 친숙하지 않은 선행 공백 문자로 이어지는 터미널로 옮기십시오. 공백 문자를 단순히 바꾸면 문제가 해결됩니다. –