Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 非ASCII字符错误_Python 2.7_Non Ascii Characters - Fatal编程技术网

Python 2.7 非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

我是一个初学者程序员,试图编写一个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."
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))