Python 2.7 非ASCII字符错误
我是一个初学者程序员,试图编写一个python脚本来生成随机密码。然而,即使我声明了编码utf-8,我总是会得到一个非ASCII字符错误,正如在堆栈溢出中的另一个类似问题中提到的。这是源代码:Python 2.7 非ASCII字符错误,python-2.7,non-ascii-characters,Python 2.7,Non Ascii Characters,我是一个初学者程序员,试图编写一个python脚本来生成随机密码。然而,即使我声明了编码utf-8,我总是会得到一个非ASCII字符错误,正如在堆栈溢出中的另一个类似问题中提到的。这是源代码: import string import random #coding: utf-8 print "Password generator will create a random customizable password." print "Choose your options wisely." num
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 "."
这是终端输出
pedro@pedro-Inspiron-3521:~/Desktop$python passwordgenerator.py
文件passwordgenerator.py,第9行
SyntaxError:第9行passwordgenerator.py文件中的非ASCII字符“\xc2”,但未声明编码;有关详细信息,请参阅
我查看了链接,但我什么也看不懂,可能是因为我不是以英语为母语的人,也可能是因为我不久前开始编程。提前感谢您的帮助。您有>>和编码:utf-8行需要位于文件顶部,以允许使用非ASCII字符
、«和»不是ASCII码
虽然您可能不希望密码中包含非ascii字符,而且大多数网站都不允许使用非ascii字符,但从理论上讲,没有理由不允许使用非ascii字符。如果您使用的是Mac,则在读取文件夹内容时会出现file.DS_STORE导致ascii错误 如果你在使用mac,那么就这样做吧 删除所有DS_存储文件 选择应用程序>实用程序以启动终端 输入以下UNIX命令: sudo find/-name.DS_Store-depth-exec rm{}\ 当提示输入密码时,请输入Mac OS X管理员 密码
所以在你给我的链接中说«在python中源代码是u\u00ABand»是u\u00BB。我该不该把它放在里面?我删除了它们,但它仍然不起作用。我也犯了同样的错误这里是我目前拥有的标点符号变量:标点符号=!,,:,;,,,,,,,,,,,,,,,,@,要回答你的问题,我不知道数字是什么,也不知道string.标点符号和string.digits可以做什么。不过,我一定会搜索它。谢谢,kind strangerSorry@agf and Apero,无法对您的任何答案进行投票,尝试过,它说投票需要15信誉:在Python 2.7上使用原始输入,而不是输入。后者评估其输入,即,它的工作方式类似于evalraw_输入。虽然这是一个很好的答案,也是可能的,但Mac上更可能的原因是从编辑器复制到终端,从而导致非Python友好的前导空格。只需替换前导空格即可解决此问题。
punctuation = ("!", ".", ":", ";", ",", "?", "'", "@", "$", "~", "^", "%", "#", "&", "/", range(0, 11))