小编Tur*_*urn的帖子

为什么NaN不等于NaN?

相关的IEEE标准定义了一个数字常量NaN(不是数字),并规定NaN应该比较为不等于它自己.这是为什么?

我熟悉的所有语言都实现了这个规则.但它经常会导致严重的问题,例如当NaN存储在容器中时,NaN存在于正在排序的数据中等时的意外行为等.更不用说,绝大多数程序员都希望任何对象都等于自身(在他们了解NaN之前,令人惊讶的是他们增加了错误和混乱.

IEEE标准经过深思熟虑,因此我确信NaN的比较与其本身相同是很糟糕的.我只是想不通它是什么.

language-agnostic floating-point nan ieee-754

114
推荐指数
5
解决办法
3万
查看次数

SQLAlchemy对象已附加到会话

我正在尝试为应用程序运行服务器,但我在登录时遇到错误:

[!] Object '<User at 0x7f12bc185a90>' is already attached to session '2' (this is '3')
Run Code Online (Sandbox Code Playgroud)

我正在添加的会话似乎已经存在于数据库中.这是导致问题的代码片段:

@app.route('/login', methods=['POST'])
def login():
    u = User.query.filter(User.username == request.form["username"]).first()
    if not u or u.password != request.form["password"]:
        return error("E1")

    s = Session.get_by_user(u)
    if s is not None:
         db_session.delete(s)
         db_session.commit()

     print db_session.execute("SELECT * FROM sessions").fetchall()

     s = Session(u)
     db_session.add(s)
     db_session.commit()

     return jsonify(s.values)
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我在尝试添加任何内容之前从会话表中打印内容,它是空的!([])

还有什么可能导致这个?

这是"会话"实施:

class Session(Base):
__tablename__ = "sessions"
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey('users.id'), unique=True)
user = relationship(User)
key = Column(String(50), unique=True) …
Run Code Online (Sandbox Code Playgroud)

python session sqlalchemy python-2.7 flask-sqlalchemy

14
推荐指数
4
解决办法
1万
查看次数

在STM32上生成C中的纳秒延迟

我正在使用STM32F2控制器,我通过8位并行接口与ST7036 LCD显示器连接.

数据表说地址保持和建立时间之间应该有20纳秒的延迟.

如何在C中产生20纳秒的延迟?

c lcd stm32

10
推荐指数
2
解决办法
8984
查看次数

SHA 256不同的结果

如果我从Mac调用命令

echo hello | shasum -a 256
Run Code Online (Sandbox Code Playgroud)

或者来自ubuntu

echo hello | sha256sum
Run Code Online (Sandbox Code Playgroud)

然后我得到以下结果

5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03  -
Run Code Online (Sandbox Code Playgroud)

我注意到最后有冲刺.

但是当我使用Python hashlib或Java时java.security.MessageDigest,它们会给我相同的结果如下:

2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
Run Code Online (Sandbox Code Playgroud)

所以,有人能指出我错在哪里吗?

谢谢.


蟒蛇:

>>> import hashlib
>>> hashlib.sha256("hello").hexdigest()
Run Code Online (Sandbox Code Playgroud)

Java的:

MessageDigest md = MessageDigest.getInstance("SHA-256");
String text = "hello";
md.update(text.getBytes("UTF-8"));
byte[] digest = md.digest();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < digest.length; i++) {
    sb.append(String.format("%02x", digest[i] & 0xFF))
}
System.out.println(sb.toString());
Run Code Online (Sandbox Code Playgroud)

python hash cryptography sha256

10
推荐指数
2
解决办法
6822
查看次数

如何在带有多个游标的Emacs中插入数字序列?

如何multiple-cursors在Emacs中插入包的数字序列?

例如:

aa|    aa1
aa| => aa2
aa|    aa3
Run Code Online (Sandbox Code Playgroud)

emacs

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

如何使用Python脚本退出Linux终端?

import sys

def end():
    foo=raw_input()
    sys.exit()

print 'Press enter to Exit python and Terminal'

end()
Run Code Online (Sandbox Code Playgroud)

当我们运行程序时,我们应该能够退出Python解释器和终端本身.但它只退出python解释器,而不是终端.

提前致谢.

python linux terminal python-2.7 python-3.x

6
推荐指数
2
解决办法
4542
查看次数

在数组中查找奇数

我正在尝试解决一个问题,我给出了一个数组,例如[0,0,1,1,2,2,6,6,9,10,10],其中所有数字都重复两次,不包括一个数字,我需要返回不重复的数字.

我想这样做:

def findNumber(self, nums):

    if (len(nums) == 1):
        return nums[0]

    nums_copy = nums[:]

    for i in nums:
        nums_copy.remove(i)

        if i not in nums:
            return i
        else:
            nums_copy.remove(i)
Run Code Online (Sandbox Code Playgroud)

但是当它到达else语句时,会出现以下错误:

ValueError:list.remove(x):x不在列表中

这是在i进入时发生的nums_copy,所以我不明白为什么在这种情况下会发生这种错误?

python algorithm python-3.x

6
推荐指数
3
解决办法
1417
查看次数

修补父类

我在用mock.patch.

这是一个测试用例:

parent.py

import mock

class Parent():
    def __init__(self):
        print("Original recipe")
Run Code Online (Sandbox Code Playgroud)

child.py

from parent import Parent

class Child(Parent):
    def foo(self):
        print('Parent is {}'.format(Parent))
Run Code Online (Sandbox Code Playgroud)

test.py

import mock

from child import Child

c = Child()  # expect 'Original recipe'
c.foo()

with mock.patch('child.Parent'):
    c = Child() # expect silence
    c.foo()
Run Code Online (Sandbox Code Playgroud)

当我跑步时,test.py我希望得到:

Original recipe
Parent is <class 'parent.Parent'>
Parent is <MagicMock name='Parent' id='4325705712'>    
Run Code Online (Sandbox Code Playgroud)

但我得到:

Original recipe
Parent is <class 'parent.Parent'>
Original recipe
Parent is …
Run Code Online (Sandbox Code Playgroud)

python mocking python-3.x

5
推荐指数
1
解决办法
3054
查看次数

何时在javaScript中使用set

我只是javaScript的初学者,拥有python的背景.我正在尝试这个练习来检查string2的每个字符是否都包含在string1中.例如,如果STRING1是"你好",我会回来true,如果字符串2是"列城"的false,如果字符串2为"低".

我提出的是这个:

function mutation(arr) {
  var set = new Set(string1.split(''));
  for (var i = 0; i < string2.length; i++)
    if (!set.has(string2[i]))
      return false;
  return true;
}
Run Code Online (Sandbox Code Playgroud)

我还可以去转换字符串2为一组,然后就采取即操作的差异set(string2) - set(string1),这将取我的一组是包含字符串,但不是在字符串1个字符,但我读创建一组是昂贵的,所以我没有去先.

我检查了其他解决方案,每个人都在使用string1.indexOf(letter)方法来检查string2中的每个字母是否都在string1中.

我想知道什么时候应该使用一组差异.为什么每个人都在使用array.indexOf()花费O(n)而不是set.has()O(1)的方法的方法.如果我正在使用,是否有任何陷阱set.has().(说浏览器兼容性)?

任何建议都有帮助.

javascript arrays set indexof

5
推荐指数
1
解决办法
1382
查看次数

内容修改后是否可以保留文件的相同 md5 校验和?

许多网站为可下载文件添加 md5 校验和,以便用户可以根据下载文件的 md5 验证字符串。有人可以修改原始文件的内容但仍保留原始 md5 校验和吗?

hash md5 cryptography

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