__init__() 缺少 1 个必需的位置参数

我正在努力学习Python。 缺少 1 个必需的位置参数 这是我的代码: class DHT: def __init__(self, data): self.data['one'] = '1' self.data['two'] = '2' self.data['three'] = '3' def showData(self): print(self.data) if __name__ == '__main__': DHT().showData() 答案 您收到此错误是因为您没有通过dataDHT 构造函数的变量。 aIKid 和 Alexander 的答案很好,但它不起作用,因为你仍然需要初始化self.data在类构造函数中像这样: class DHT: def __init__(self, data=None): if data is None: data = {} else: self.data = data self.data['one'] = '1' self.data['two'] = '2' self.data['three'] = '3' def showData(self): print(self.data) 然后像这样调用 showData 方法: DHT().showData() 或者像这样: DHT({'six':6,'seven':'7'}).showData() 或者像这样: # Build the class first dht = DHT({'six':6,'seven':'7'}) # The call whatever method you want (In our case only 1 method available) dht....

'str'对象没有属性“解码”。Python 3错误?

这是我的代码: import imaplib from email.parser import HeaderParser conn = imaplib.IMAP4_SSL('imap.gmail.com') conn.login('[email protected]', 'password') conn.select() conn.search(None, 'ALL') data = conn.fetch('1', '(BODY[HEADER])') header_data = data[1][0][1].decode('utf-8') 此时我收到错误消息 AttributeError: 'str' object has no attribute 'decode' Python 3不再解码了,对吗?我怎样才能解决这个问题? 另外,在: data = conn.fetch('1', '(BODY[HEADER])') 我只选择第一封电子邮件。如何选择全部? 答案 您正在尝试解码一个对象已经解码了 。str,无需再从UTF-8解码了。 只需丢弃即可.decode('utf-8')部分: header_data = data[1][0][1] 至于你fetch()致电,您明确要求仅要求第一个消息。如果要检索更多消息,请使用范围。看到文档: 这message_set 下面命令的选项是一个字符串,指定要执行的一条或多个消息。这可能是一个简单的消息号('1'),一系列消息号('2:4'),或一组由逗号隔开的非连续范围('1:3,6:9')。一个范围可以包含一个星号,以指示无限的上限('3:*')。 来自: stackoverflow.com

'str'对象在python3中没有属性'decode'

我在 python 3.3.4 中的"解码"方法遇到一些问题。 for lines in open('file','r'): decodedLine = lines.decode('ISO-8859-1') line = decodedLine.split('\t') 但是我无法解码此问题的行: AttributeError: 'str' object has no attribute 'decode' 你有什么想法?谢谢 答案 一编码 字符串,一个解码字节。 您应该从文件中读取字节并对其进行解码: for lines in open('file','rb'): decodedLine = lines.decode('ISO-8859-1') line = decodedLine.split('\t') 幸运的是open有一个编码的参数,这使它变得容易: for decodedLine in open('file', 'r', encoding='ISO-8859-1'): line = decodedLine.split('\t') 来自: stackoverflow.com

'utf-8'编解码器无法在位置18中解码字节0x92:无效启动字节

我正在尝试在名为DF1的数据集中阅读,但它不起作用 import pandas as pd df1=pd.read_csv("https://raw.githubusercontent.com/tuyenhavan/Statistics/Dataset/World_Life_Expectancy.csv",sep=";") df1.head() 以上代码是巨大的错误,但这是最相关的 UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 18: invalid start byte 答案 数据确实不是编码为UTF-8;除了那个单一的0x92字节外,一切都是ascii: b'Korea, Dem. People\x92s Rep.' 将其解码为Windows CodePage 1252相反,其中0x92是一个奇特的报价,': df1 = pd.read_csv("https://raw.githubusercontent.com/tuyenhavan/Statistics/Dataset/World_Life_Expectancy.csv", sep=";", encoding='cp1252') 演示: >>> import pandas as pd >>> df1 = pd.read_csv("https://raw.githubusercontent.com/tuyenhavan/Statistics/Dataset/World_Life_Expectancy.csv", ... sep=";", encoding='cp1252') >>> df1.head() 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 \ 0 Afghanistan 55.1 55.5 55.9 56.2 56.6 57.0 57.4 57....

“ pip安装 - 用户...”的目的是什么?

从pip install --help: --user Install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%\Python on Windows. (See the Python documentation for site.USER_BASE for full details.) 文档site.USER_BASE是我不理解的有趣 *nix主题的恐怖虫洞。 What is the purpose of --user in plain english? 为什么将包裹安装到~/.local/事情?为什么不只是在我的某个地方放置一个可执行的$PATH? 答案 PIP默认将Python软件包安装到系统目录(例如/usr/local/lib/python3.4)。这需要词根访问。 --user改为将PIP安装软件包在您的主目录中,这不需要任何特殊特权。 来自: stackoverflow.com

“ python3”不被认为是内部或外部命令,可操作程序或批处理文件

我在Windows 7上使用Python 3.5.2版本,并尝试使用python3 app.py。我收到此错误消息: 'python3' is not recognized as an internal or external command, operable program or batch file. 关于为什么python3命令不起作用? 我还验证了该路径是否已添加到环境变量中。 答案 没有python3.exe文件,这就是为什么失败的原因。 尝试: py 反而。 PY只是Python.exe的启动器。如果您在计算机上安装了多个Python版本(2.x,3.x),则可以指定由哪种版本的Python启动 py -2或py -3 来自: stackoverflow.com

“ Unicode错误” Unicodeescape”编解码器无法解码字节...无法在Python中打开文本文件3

我在 Windows 7 机器上使用 Python 3.1。 看一个答案上一个问题,我尝试使用"编解码器"模块给我一点运气。这里有几个例子: >>> g = codecs.open("C:\Users\Eric\Desktop\beeline.txt", "r", encoding="utf-8") SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#39>, line 1) >>> g = codecs.open("C:\Users\Eric\Desktop\Site.txt", "r", encoding="utf-8") SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (<pyshell#40>, line 1) >>> g = codecs.open("C:\Python31\Notes.txt", "r", encoding="utf-8") SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 11-12: malformed \N character escape (<pyshell#41>, line 1) >>> g = codecs....

“builtin_function_or_method”对象不可下标错误是什么意思?

因此,我正在尝试编写一款优秀的战争游戏,当我尝试将对象(一张卡片)从一个列表(手)移动到另一个列表时,我收到错误。 import random cardvalues = {"ace" : 13 , "2" : 2 , "3" : 3 , "4" : 4 , "5" : 5 , "6" : 6, "7" : 7 , "8" : 8 , "9" : 9, "10" : 10 , "jack" : 11 , "queen" : 12 , "king" : 13} suits = {"clubs" : 1, "diamonds" : 2 , "spades" : 3 , "hearts" : 4} deck = [] currentDeck = [] class card: def __init__ (self, value, suit): if value not in cardvalues: raise RuntimeError("must input valid card value")....

“subprocess.Popen” - 检查成功和错误

我想检查子进程是否成功完成执行或失败。stdout: 注意:我对重定向/打印输出不感兴趣。 pipe = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) if "" == pipe.stdout.readline(): print("Success") self.isCommandExectutionSuccessful = True if not "" == pipe.stderr.readline(): print("Error") self.isCommandExectutionSuccessful = True 或者: if "" == pipe.stdout.readline(): print("Success") self.isCommandExectutionSuccessful = True else: print("Error") self.isCommandExectutionSuccessful = False 和: if not "" == pipe.stderr.readline(): print("Success") self.isCommandExectutionSuccessful = True else: print("Error") self.isCommandExectutionSuccessful = False 答案 你需要做任何的输出过程? 这check_call方法在这里可能有用。https://docs.python.org/2/library/subprocess.html 然后您可以按如下方式使用它: try: subprocess.check_call(command) except subprocess.CalledProcessError: # There was an error - command exited with non-zero code 然而,这依赖于command返回退出代码 0 表示成功完成,返回非零值表示错误。...

“对于...中的行”,UNICODEDECODEERROR的结果:'UTF-8'编解码器无法解码字节

这是我的代码, for line in open('u.item'): # Read each line 每当我运行此代码时,都会出现以下错误: UnicodeDecodeError:“utf-8"编解码器无法解码位置 2892 中的字节 0xe9:无效的连续字节 我试图解决此问题,并在Open()中添加额外的参数。代码看起来像: for line in open('u.item', encoding='utf-8'): # Read each line 但是再次给出相同的错误。那我该怎么办? 答案 作为由Mark Ransom建议,我找到了这个问题的正确编码。编码是"ISO-8859-1",因此更换open("u.item", encoding="utf-8")和open('u.item', encoding = "ISO-8859-1")将解决问题。 来自: stackoverflow.com

“否则”的正确语法是什么?

我是一个新的Python程序员,他正在从2.6.4到3.1.1。一切都很好,直到我尝试使用" else if"语句。解释器在" else"中给我一个语法错误,原因是我似乎无法弄清楚。 def function(a): if a == '1': print ('1a') else if a == '2' print ('2a') else print ('3a') function(input('input:')) 我可能缺少一些非常简单的东西。但是,我无法自己找到答案。 答案 在python中,“否则"拼写为” elif"。 另外,您需要一个结肠elif和else。 简单的答案简单问题。当我刚开始时(在过去的几周中)时,我遇到了同样的问题。 因此,您的代码应该读取: def function(a): if a == '1': print('1a') elif a == '2': print('2a') else: print('3a') function(input('input:')) 来自: stackoverflow.com

“模块”没有属性“ urlencode”

当我尝试跟随Python Wiki 的示例与URL编码有关: >>> import urllib >>> params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0}) >>> f = urllib.urlopen("http://www.musi-cal.com/cgi-bin/query", params) >>> print f.read() 在第二行上引起了错误: Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'module' object has no attribute 'urlencode' 我想念什么? 答案 urllib已经分裂了Python 3。 这urllib.urlencode()功能现在urllib.parse.urlencode(),,,, 这urllib.urlopen()功能现在urllib.request.urlopen()。 来自: stackoverflow.com

“未知命令SynCDB”运行“ Python Manage.py Syncdb”

我想创建一个名为" database1.sqlite"的数据库的表,因此我运行命令: python manage.py syncdb 但是,当我执行命令时,我会收到以下错误: 未知命令:" syncdb" type’manage.py help’用于使用。 但是当我跑步时 manage.py帮助 我不会看到任何可疑的命令可以替代 python manage.py syncdb 我使用的Python版本:3.4.2 Django的版本我使用:1.9 如果有人可以帮助我解决这个问题,我将非常感激。 提前的问候 答案 如果你看发行说明django 1.9,,,,syncdb命令已删除。 请用migrate反而。前进,迁移命令将如下所示 请注意,截至今天,Django-1.9发行版不稳定。 编辑:Django 1.9现在很稳定 来自: stackoverflow.com

“以退出代码1完成过程”是什么意思?

我是Python的初学者。我试图开发一个简单的货币程序,但我有问题。单击"计算"按钮时,该程序应计算资金(如交换)。但是我做不到。pycharm写下"流程用退出代码1完成" 答案 0和1是退出代码,它们不一定是特定于Python的,实际上它们非常普遍。 exit code (0)意味着没有错误或问题的出口。 exit code (1)意味着有一些问题 /问题导致该计划退出。 这些代码中的每一个的效果在操作系统之间可能有所不同,但是使用Python应该相当一致。 来自: stackoverflow.com

“只能加入可迭代的”python 错误

我已经看过这篇关于可迭代 python 错误的文章: “只能迭代"Python 错误 但这是关于错误"无法分配可迭代”。 "list.py", line 6, in <module> reversedlist = ' '.join(toberlist1) TypeError: can only join an iterable 我不知道我做错了什么! 反转字符串的词序,不允许使用 str.split() 特别是这个答案: >>> s = 'This is a string to try' >>> r = s.split(' ') ['This', 'is', 'a', 'string', 'to', 'try'] >>> r.reverse() >>> r ['try', 'to', 'string', 'a', 'is', 'This'] >>> result = ' '.join(r) >>> result 'try to string a is This' 并调整代码以使其具有输入。 代码如下:...