小编Gan*_*ndi的帖子

无限嵌套列表中究竟发生了什么?

可以在Python中创建无限的嵌套列表.这很清楚,虽然不受欢迎,但绝对没用,这是一个众所周知的事实.

>>> a = [0]
>>> a[0] = a
>>> a
[[...]]
>>> a[0] == a
True
Run Code Online (Sandbox Code Playgroud)

我的问题是,这里发生了什么:

>>> a = [0]
>>> b = [0]
>>> a[0], b[0] = b, a
>>> a
[[[...]]]
>>> b
[[[...]]]
>>> a == b
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
RuntimeError: maximum recursion depth exceeded in cmp
>>> a[0] == b
True
>>> a[0][0] == b
Traceback (most recent call last):
  File "<stdin>", line 1, in <module> …
Run Code Online (Sandbox Code Playgroud)

python list infinite

31
推荐指数
4
解决办法
2755
查看次数

如何完成sys.stdin.readlines()输入?

这可能是一个愚蠢的问题,但由于我找不到答案,我不得不问它.

在交互式python中,我想处理一条消息:

>>> message = sys.stdin.readlines()
Run Code Online (Sandbox Code Playgroud)

一切正常,但是......如何阻止它获取输入并将其保存到消息变量中?使用ctrl + c停止会停止整个过程,因此无需在任何地方保存输入.我想有一个简单的答案,我找不到...

python interactive input sys

25
推荐指数
4
解决办法
5万
查看次数

如何捕获IndentationError

首先 - 我对错误的代码没有问题,我知道这个异常是如何工作的.

我问,如果有任何方法在try/except块的代码中捕获IndentationError?例如,假设我正在为其他人编写的函数编写测试.我想在try/except块中运行它并处理他/她可以做出的所有警告.我知道,这不是一个最好的例子,但第一个出现在我脑海中.请不要专注于一个例子,而是关注问题.

我们来看看代码:

try:
    f()
except IndentationError:
    print "Error"

print "Finished"
Run Code Online (Sandbox Code Playgroud)

功能:

def f():
  print "External function"
Run Code Online (Sandbox Code Playgroud)

结果是:

External function
Finished
Run Code Online (Sandbox Code Playgroud)

这就是我已经准备好理解的东西,因为外部函数的缩进是一致的.

但是当函数看起来像这样:

def f():
  print "External function"
     print "with bad indentation"
Run Code Online (Sandbox Code Playgroud)

异常未处理:

    print "with bad indentation"
    ^
IndentationError: unexpected indent
Run Code Online (Sandbox Code Playgroud)

有没有办法实现它?我想这是编译的问题,到目前为止我看不到任何可能性.是否except IndentationError任何意义?

python exception-handling indentation

10
推荐指数
3
解决办法
1356
查看次数

如何在python中更改for循环中的对象变量

我不确定,这是一个容易解决的简单问题,还是需要深入挖掘的东西.

假设我有一个Item带变量Item.a和对象的对象Item.b.现在我有两个这些对象的实例:Item1Item2

我需要的是这样的:

for (value_1, value_2) in [(Item1.a, Item2.a), (Item1.b, Item2.b)]:
    if value_1 != value_2:
        value_1 = value_2
Run Code Online (Sandbox Code Playgroud)

当然,这只是一个更复杂问题的例子.替换是可以的,它找到对象之间的差异并替换它们.问题是,我一直在这些变量的副本上进行,而不是在对象引用上.一旦它完成循环,我可以同时打印Item1Item2他们是一样的循环之前.

有没有可能将引用传递给循环?我知道如何使用列表,但我找不到对象的答案.

python loops reference

6
推荐指数
1
解决办法
2532
查看次数

Django - 如何从其他两个字段自动填充表单字段

这就是我要找的东西.在我的表格中,我有三个字段,都是CharFields.这些是姓名,姓氏和用户名.用户名应设置为Name和Surname的总和,因此对于Name = Joe,Surname = Black,Username = Joe Black.

显示表单时,所有字段都为空.我想在将数据写入Name或Surname时自动填充用户名.这样做的原因是我不必填写用户名字段,但是在我想要的时候,我可以将它设置为与Name + Surname不同.

是否可以不使用jQuery?如果是这样,有没有这方面的好教程?

forms django auto-populate

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