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?
我正在通过掌握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运算符列表中找不到它.
我试图通过使用模块中的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)
谢谢.
我有一份清单清单:
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中发现了关于迭代器行为的这个问题:
当我输入代码时:
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发行版.
具有多个参数和类型提示的方法的悬挂缩进的正确语法是什么?
在第一个参数下对齐
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支持凹槽下面的一个级别,但不指定是否允许在第一个参数下进行对齐.它指出:
使用悬挂式凹痕时,应考虑以下因素; 第一行应该没有参数,应该使用进一步的缩进来明确区分自己作为延续线.
我正在查看第三方API,他们有以下代码:
def array_u16 (n): return array('H', '\0\0'*n)
Run Code Online (Sandbox Code Playgroud)
我明白这'\0'意味着NULL,确实'\0\0'有任何特殊意义,或仅仅意味着2 NULL秒?
我有兴趣获得一种获取可调用 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中的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) 我正在使用 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 ×10
python-3.x ×8
type-hinting ×4
annotations ×1
gensim ×1
inspect ×1
interpreter ×1
jupyter ×1
list ×1
md5 ×1
mypy ×1
nested-lists ×1
pep8 ×1
printing ×1
python-2.7 ×1
string ×1
word2vec ×1