非ASCII字符错误python
我是一个初学程序员,试图编写一个将生成随机密码的python脚本。但是,即使我声明了编码#utf-8,我总是会得到一个非ASCII字符错误,正如Stack Overflow中的另一个类似问题所述。这是源代码:非ASCII字符错误python
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:〜/桌面$蟒passwordgenerator.py
文件 “passwordgenerator.py”,线9 SyntaxError:第9行文件passwordgenerator.py中的非ASCII字符'\ xc2',但未声明编码;详情请见http://www.python.org/peps/pep-0263.html
我查了一下链接,但是我不明白一件事,也许是因为我不是一位母语英语的人,而且自从我不久前开始编程,感谢您的帮助。
您在标点符号列表中有>>
和<<
符号。
这些都是无效的。试着找到自己的Unicode代码,而不是
http://www.fileformat.info/info/unicode/char/bb/index.htm http://www.fileformat.info/info/unicode/char/ab/index.htm
编辑: 呵呵,别急,这是一个密码生成器,所以没有甚至不把双V形的标点符号清单的一部分,这些在任何密码中都是无效的。
punctuation = ("!", ".", ":", ";", ",", "?", "'", "@", "$", "~", "^", "%", "#", "&", "/", range(0, 11))
另外,为什么你要添加数字到标点符号?
为什么不使用string.punctuation和string.digits来代替?
因此,在你给我的链接中说“在Python源代码中你是\ u00AB”而你是\ u00BB “我应该在”“还是不包括” – chilliefiber 2014-10-11 18:45:28
看到我的更新 – 2014-10-11 18:49:09
我删除了它们,但它仍然不起作用,我得到了相同的错误 – chilliefiber 2014-10-11 18:57:07
#coding: utf-8
行需要位于文件的顶部以允许非ASCII字符。
£
,«
和»
不是ASCII。
虽然您可能不想在您的密码中使用非ASCII字符,并且在大多数网站上都不允许这些字符,但理论上不允许它们被允许。
如果您使用的是Mac,则存在文件.DS_STORE,它会在读取文件夹内容时导致ascii错误。
,如果你使用的是Mac
删除所有DS_Store文件
选择应用程序,这样做这些>实用程序来启动终端。
输入以下UNIX命令:
须藤查找/ -name”。DS_Store”的-depth -exec RM {} \;
提示输入密码,输入您的Mac OS X管理员密码
虽然这是一个很好的答案,可能的,一个更可能的原因在Mac上是从编辑器复制到一个能够导致非Python友好的主要空白的终端,只需更换领先的空白就可以解决问题。 – 2015-11-23 13:01:54
使用的raw_input'()'上,而不是'输入的Python 2.7() '。后者证明了它的输入,即它的工作原理类似于'eval(raw_input())'。 – jfs 2014-10-11 19:36:56