Python 3.5中谈论最多的特性之一是类型提示。

本文中提到了类型提示的一个例子,同时也提到了负责任地使用类型提示。谁能多解释一下它们,什么时候该用什么时候不该用?

下面的代码给出了错误UnboundLocalError:在赋值前引用的局部变量'Var1':

Var1 = 1
Var2 = 0
def function(): 
    if Var2 == 0 and Var1 > 0:
        print("Result One")
    elif Var2 == 1 and Var1 > 0:
        print("Result Two")
    elif Var1 < 1:
        print("Result Three")
    Var1 =- 1
function()

我该如何解决这个问题?

我想在正则表达式中使用一个变量,我如何在Python中做到这一点?

TEXTO = sys.argv[1]

if re.search(r"\b(?=\w)TEXTO\b(?!\w)", subject, re.IGNORECASE):
    # Successful match
else:
    # Match attempt failed

我安装了最新版本的Python(3.6.4 64位)和最新版本的PyCharm(2017.3.3 64位)。然后我在PyCharm (Numpy, Pandas等)中安装了一些模块,但当我尝试安装Tensorflow时,它没有安装,我得到了错误消息:

无法找到一个满足需求的版本 没有找到匹配的TensorFlow分布。

然后我尝试从命令提示符安装TensorFlow,我得到了同样的错误消息。 不过,我确实成功安装了tflearn。

我也安装了Python 2.7,但我再次得到相同的错误消息。我在谷歌上搜索了这个错误,并尝试了一些建议给其他人的东西,但都不起作用(这包括安装Flask)。

如何安装Tensorflow?谢谢。

这是我的代码,

for line in open('u.item'):
# Read each line

每当我运行这段代码,它给出以下错误:

UnicodeDecodeError: 'utf-8' codec无法解码字节0xe9在位置2892:无效的延续字节

我试图解决这个问题,并在open()中添加了一个额外的参数。代码如下:

for line in open('u.item', encoding='utf-8'):
# Read each line

但是它又给出了同样的错误。那我该怎么办呢?

在Python 3中,将字节转换为十六进制字符串的正确方法是什么?

我看到一个字节的声明。十六进制方法,bytes.decode编解码器,并尝试了其他可能的最小惊讶函数,但没有任何效果。我只想要我的字节为十六进制!

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.)

现场文档。USER_BASE是一个有趣的*NIX主题的可怕虫洞,我不理解。

简单地说,用户的目的是什么?为什么要安装到~/。本地/重要吗?为什么不把一个可执行文件放在我的$PATH中?

filter, map和reduce在python2中完美地工作。这里有一个例子:

>>> def f(x):
        return x % 2 != 0 and x % 3 != 0
>>> filter(f, range(2, 25))
[5, 7, 11, 13, 17, 19, 23]

>>> def cube(x):
        return x*x*x
>>> map(cube, range(1, 11))
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

>>> def add(x,y):
        return x+y
>>> reduce(add, range(1, 11))
55

但在Python 3中,我收到以下输出:

>>> filter(f, range(2, 25))
<filter object at 0x0000000002C14908>

>>> map(cube, range(1, 11))
<map object at 0x0000000002C82B70>

>>> reduce(add, range(1, 11))
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    reduce(add, range(1, 11))
NameError: name 'reduce' is not defined

如果有人能给我解释一下这是为什么,我会很感激。

为进一步清晰起见,代码截图如下:

string.replace()在python 3.x上已弃用。新的方法是什么?

假设我有一个函数:

def get_some_date(some_argument: int=None) -> %datetime_or_None%:
    if some_argument is not None and some_argument == 1:
        return datetime.utcnow()
    else:
        return None

我如何为可以为None的东西指定返回类型?