社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Amadan

Amadan 最近创建的主题
Amadan 最近回复了

cursor.fetchone() 以元组形式返回一行中的所有选定字段。例如,如果你做了 SELECT first, last ... ,你会得到一个2元组 ("John", "Smith") .

您只请求了一个字段,所以得到了1元组 ("John",) :你没有字符串 "John" ! 改为:

name = cursor.fetchone()[0]

编辑:或者,正如文森特在下面警告的那样,更加有力:

row = cursor.fetchone()
name = row[0] if row else None

看见 How to create a tuple with only one element 讨论1元组,以及为什么有逗号。

3 年前
回复了 Amadan 创建的主题 » 这个Python代码中的错误是什么

这是一个普通字符串,它有转义机制,在某些字符前加上反斜杠,为它们创建特殊的含义(例如。 \n , \u791c ...) 或者剥夺它们的特殊意义( \" , \\ ...). 然而,序列 \d 未定义,以及 "\d" 相当于 "d" .

(因此,您的代码将只匹配由字母的任意重复次数组成的字符串。) d 没有别的,比如 “d” , "dd" "dddddddd" ,这大概不是你想要的——这就是为什么编辑警告你那里可能有什么气味。)

这对于正则表达式来说相当不方便,因为正则表达式也使用反斜杠进行转义,所以每个反斜杠都必须另外转义。生成包含 \d ,必须将反斜杠加倍,以便反斜杠保留下来,以便包含在字符串中: \\d .如果你真的想在正则表达式中匹配反斜杠,你必须在正则表达式中转义它,但你也需要在字符串文本中转义它,这会导致一个看起来很可笑的结果 "\\\\" .

为此,Python有“原始字符串”,反斜杠转义不起作用——反斜杠就是反斜杠。要制作原始字符串,只需预加 r .

因此,你应该写下以下其中一个:

"^\\d+$"
r"^\d+$"
6 年前
回复了 Amadan 创建的主题 » 如果DEBUG=False,为什么Django不加载静态文件?

在调试模式下,Django将提供所有服务,这样您就不必为Apache/Nginx之类的东西操心了。

在生产模式下,使用Python提供静态内容是浪费资源,Django假设您将设置一个web服务器来提供静态内容。见:

尤其是

你很有可能被淘汰了。 9.8556435e-01 (也称为 0.98556435 )意味着该分类器认为其有98.556435%的中毒概率。 1.0463297e-03 (也称为 0.0010463297 意味着只有0.10463297%的可能性是有毒的。您可以设置50%作为断点,并按如下方式执行:

toxic = toxic_prob >= 0.5
6 年前
回复了 Amadan 创建的主题 » 为什么python中的round()函数会给出不同的结果?

docs :

如果两个倍数相等,则向偶数选择进行舍入(例如,round(0.5)和round(-0.5)均为0,round(1.5)均为2)。

也就是说,python 3可以 "rounding half to even" .

你可以这样做“围捕”:

import math
def round_up(x):
    return math.floor(x + 0.5)
5 年前
回复了 Amadan 创建的主题 » 如何将python代码转换成Java

x[::-1] 在python中,意思是“序列的所有元素” x 从最后一个开始,以第一个结束)。 range(y) 从中生成所有数字 0 y - 1 . 因此,您的行将生成从最后一个索引开始的索引 script_lines 到0。

不过,这不是一个很好的python代码——它创建了一个不需要的列表。使用 __len__ 这种方法也不受欢迎,因为它是一种给排水的方法;而是使用瓷器。 len 功能。一个更好的写作方法应该是

for i in range(len(script_lines) - 1, -1, -1):

(开始于 length - 1 ,到达前停止 -1 添加时 - 1 每次迭代。)但从 i 实际上在提取之后从未提及 temp_line 重写得更好

for temp_line in reversed(script_lines):

Java没有任何类似的东西 reversed ,因此您必须对索引使用循环:

for (int i = scriptLines.size() - 1; i >= 0; i--) {
6 年前
回复了 Amadan 创建的主题 » 理解Git Diff

Unix将一行定义为“以行结束符结尾的字符串”。因此,几乎所有基于Unix的编辑器都有这样的行:

1\n
2\n
3\n

在哪里? \n 表示lf字符,表示行尾。如果您在这里添加第四行,它实际上只是一个新行。

Windows不共享此定义,许多基于Windows的编辑器考虑CR+LF组合(如下所示 \r\n )作为线条 分离器 ,不是线条 终结者 . AS git 注意到“文件末尾没有换行符”,您的文件是

1\r\n
2\r\n
3

当你添加另一行时,你

1\r\n
2\r\n
3\r\n
4

所以从 吉特 以Unix为中心的观点,您通过附加 \rn 对它。

现在去误会一下 diff 输出格式:默认为, 微分 正在为您提供“统一”格式,并在更改周围提供一些上下文。这些变化只是 + - 前缀:删除了原来的第3行,插入了新的第3行和第4行。符号 @@ -1,3 +1,4 @@ 下面的代码片段描述了旧文件的第1-3行和新文件的第1-4行。通常,统一的diff输出默认也会在每次更改前后为您提供两行上下文,以帮助人类准确理解更改的内容。( -U2 )如果不需要上下文,可以使用 -U0 .