小编Jim*_*ard的帖子

Python MD5 Cracker "TypeError: object supporting the buffer API required"

My code looks as follows:

md = input("MD5 Hash: ")
if len(md) != 32:
    print("Don't MD5 Hash.")
else:
    liste = input("Wordlist: ")
    ac = open(liste).readlines()
    for new in ac:
        new = new.split()
        hs = hashlib.md5(new).hexdigest()
        if hs == md:
            print("MD5 HASH CRACKED : ",new)
        else:
            print("Sorry :( Don't Cracked.")
Run Code Online (Sandbox Code Playgroud)

But, I get this error when I run it:

    hs = hashlib.md5(new).hexdigest()
TypeError: object supporting the buffer API required
Run Code Online (Sandbox Code Playgroud)

How do I solve this? "b" bytes?

python md5 python-3.x

7
推荐指数
1
解决办法
2万
查看次数

def main() - > None有什么用?

我正在通过掌握Matplotlib工作,在第二章中他们介绍了以下代码片段:

#! /usr/bin/env python3.4
import matplotlib.pyplot as plt

def main () -> None:
    plt.plot([1,2,3,4])
    plt.ylabel('some numbers')
    plt.savefig('simple-line.png')

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

这可以在这个笔记本中看到,单元格10.我从未见过这种方式定义的主要方法,功能是-> None什么?到目前为止我唯一的想法是,这可能类似于def main(argv=None)

除此之外,->Python中有什么?我在这个 Python运算符列表中找不到它.

python type-hinting python-3.x

7
推荐指数
1
解决办法
6793
查看次数

解压缩Python的类型注释

我试图通过使用模块中的signature()函数,基于我在一些Python函数中提供的类型注释生成一些JavaScript inspect.

当类型是一个简单的内置类时,这部分可以正常工作:

import inspect

def my_function() -> dict:
    pass

signature = inspect.signature(my_function)
signature.return_annotation is dict  # True
Run Code Online (Sandbox Code Playgroud)

虽然我不知道如何打开和检查更复杂的注释,例如:

from typing import List
import inspect

def my_function() -> List[int]:
    pass

signature = inspect.signature(my_function)
signature.return_annotation is List[int]  # False
Run Code Online (Sandbox Code Playgroud)

再次引用自定义类的类似问题:

def my_function() -> List['User']:
    pass
...
signature.return_annotation  # typing.List[_ForwardRef('User')]
Run Code Online (Sandbox Code Playgroud)

我想要的是这样的 - 所以我可以在生成JavaScript时适当地分支:

type = signature.return_annotation... # list
member_type = signature.return_annotation... # int / 'User'
Run Code Online (Sandbox Code Playgroud)

谢谢.

python annotations type-hinting inspect python-3.x

7
推荐指数
2
解决办法
1175
查看次数

以单独的行打印列表列表

我有一份清单清单:

a = [[1, 3, 4], [2, 5, 7]]
Run Code Online (Sandbox Code Playgroud)

我希望输出格式如下:

1 3 4
2 5 7
Run Code Online (Sandbox Code Playgroud)

我已经尝试过以下方式,但输出不是所需的方式:

for i in a:
    for j in i:
        print(j, sep=' ')
Run Code Online (Sandbox Code Playgroud)

输出:

1
3
4
2
5
7
Run Code Online (Sandbox Code Playgroud)

在更改打印调用时使用end:

for i in a:
    for j in i:
        print(j, end = ' ')
Run Code Online (Sandbox Code Playgroud)

输出:

1 3 4 2 5 7
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python printing list nested-lists python-3.x

7
推荐指数
2
解决办法
4万
查看次数

QtConsole为什么不回显next()?

我在Python中发现了关于迭代器行为的这个问题:

Python列表迭代器行为和下一个(迭代器)

当我输入代码时:

a = iter(list(range(10)))
for i in a:
    print a
    next(a)
Run Code Online (Sandbox Code Playgroud)

进入jupyter-qtconsole它返回:

0
2
4
6
8
Run Code Online (Sandbox Code Playgroud)

就像Martijn Pieters所说的那样,当翻译不响应号召时next(a).

但是,当我在我的Bash解释器和IDLE中再次运行相同的代码时,代码打印出来:

0
1
2
3
4
5
6
7
8
9
Run Code Online (Sandbox Code Playgroud)

到控制台.

我跑了代码:

import platform
platform.python_implementation()
Run Code Online (Sandbox Code Playgroud)

在所有三个环境中,他们都说我跑了'CPython'.

那么为什么QtConsole next(a)在IDLE和Bash没有时会抑制调用呢?

如果它有帮助,我在Mac OSX上运行Python 2.7.9并使用Anaconda发行版.

python interpreter python-internals jupyter

7
推荐指数
1
解决办法
55
查看次数

在python中使用类型提示挂起缩进的适当缩进级别是多少?

具有多个参数和类型提示的方法的悬挂缩进的正确语法是什么?

在第一个参数下对齐

def get_library_book(self,
                     book_id: str,
                     library_id: str
                     )-> Book:
Run Code Online (Sandbox Code Playgroud)

缩进一层

def get_library_book(
    self, 
    book_id: str, 
    library_id: str
) -> Book:
Run Code Online (Sandbox Code Playgroud)

PEP8支持凹槽下面的一个级别,但不指定是否允许在第一个参数下进行对齐.它指出:

使用悬挂式凹痕时,应考虑以下因素; 第一行应该没有参数,应该使用进一步的缩进来明确区分自己作为延续线.

python pep8 type-hinting python-3.x

7
推荐指数
1
解决办法
598
查看次数

Python中'\ 0\0'的含义?

我正在查看第三方API,他们有以下代码:

def array_u16 (n): return array('H', '\0\0'*n)
Run Code Online (Sandbox Code Playgroud)

我明白这'\0'意味着NULL,确实'\0\0'有任何特殊意义,或仅仅意味着2 NULL秒?

python string python-2.7 python-3.x

7
推荐指数
3
解决办法
4051
查看次数

获取任何可调用对象的参数?

我有兴趣获得一种获取可调用 Python 对象所采用的参数和关键字参数列表的通用方法。对于具有 function 的函数来说,这很简单inspect.getargspec,例如:

import inspect
from functools import partial

def foo(*args, **kwargs):
    return args, kwargs

print(inspect.getargspec(foo))
>>ArgSpec(args=[], varargs='args', keywords='kwargs', defaults=None)

def bar(*args):
    return args

print(inspect.getargspec(bar))
>>ArgSpec(args=[], varargs='args', keywords=None, defaults=None)
Run Code Online (Sandbox Code Playgroud)

但是,在以下情况下此操作会失败:

partial_function = partial(foo, kwarg="value")

inspect.getargspec(partial_function)
>>TypeError: <functools.partial object at 0x11748bc58> is not a Python function

class Foo(object):
    def __call__(self, *args, **kwargs):
        return args, kwargs

foo_instance = Foo()

inspect.getargspec(foo_instance)
>>TypeError: <__main__.Foo object at 0x116c13ed0> is not a Python function

inspect.getargspec(zip)
>>TypeError: <built-in function zip> is not a …
Run Code Online (Sandbox Code Playgroud)

python callable-object

7
推荐指数
1
解决办法
5253
查看次数

gensim入门错误:没有这样的文件或目录:'text8'

我正在学习python中的word2vec和GloVe模型,所以我在这里可以看到这个.

在Idle3中逐步编译这些代码之后:

>>>from gensim.models import word2vec
>>>import logging
>>>logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
>>>sentences = word2vec.Text8Corpus('text8')
>>>model = word2vec.Word2Vec(sentences, size=200)
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

2017-01-13 11:15:41,471 : INFO : collecting all words and their counts
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    model = word2vec.Word2Vec(sentences, size=200)
  File "/usr/local/lib/python3.5/dist-packages/gensim/models/word2vec.py", line 469, in __init__
    self.build_vocab(sentences, trim_rule=trim_rule)
  File "/usr/local/lib/python3.5/dist-packages/gensim/models/word2vec.py", line 533, in build_vocab
    self.scan_vocab(sentences, progress_per=progress_per, trim_rule=trim_rule)  # initial survey
  File "/usr/local/lib/python3.5/dist-packages/gensim/models/word2vec.py", line 545, in scan_vocab
    for sentence_no, …
Run Code Online (Sandbox Code Playgroud)

python error-handling python-3.x gensim word2vec

7
推荐指数
1
解决办法
2490
查看次数

mypy:是否可以为复杂类型定义快捷方式?

我正在使用 Python3 并且刚刚学会了如何使用mypy. 我正在阅读文档(特别是部分似乎相关),但找不到我的问题的任何答案:

是否可以为类型定义一些快捷方式?

例子:

而不是写作

from typing import List


def f(x: List[int]) -> List[int]:
    return x[1:]
Run Code Online (Sandbox Code Playgroud)

我想拥有

from typing import List

sequence = DefineTypeShortcut(List[int])

def f(x: sequence) -> sequence:
    return x[1:]
Run Code Online (Sandbox Code Playgroud)

只是为了澄清,我不想定义一个新类Sequence,我只是想要更容易阅读的函数签名。

python type-hinting python-3.x mypy

7
推荐指数
1
解决办法
1202
查看次数