小编Ray*_*ger的帖子

如何最好地处理这个Python数字错误?

我有这个代码抛出math domain error异常:

v = -1.0

for i in range (201):
    print acos (v)
    v += 0.01
Run Code Online (Sandbox Code Playgroud)

但是,如果我将其更改为此,它的工作原理如下:

v = -100

for i in range (201):
    print acos (v / 100.0)
    v += 1
Run Code Online (Sandbox Code Playgroud)

这是因为四舍五入吗?

如何在Python中最好地解决这个问题?或者我应该像上一个例子那样做?

python math floating-point

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

装配中的高数量划分

我试图找到一个1896阵列的crusor位置(在2D中成为整个控制台,79*24).为此我取了位置并将它除以79.

MOV AX, [Y-16H]
 DEC AX
 MOV BX, 79
 DIV BX   
 MOV Z, DL
 ADD Z, DH
 MOV DL, Z
 MOV Z, AL
 ADD Z, AH
 MOV DH, Z
Run Code Online (Sandbox Code Playgroud)

我收到溢出错误.你能告诉我,我做错了吗?也许建议解决方案?

optimization x86 assembly

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

如何在使用__slots__时访问__getattr__

在申请之前__slots__,我可以这样做:

class C(object):

    def __init__(self):
        self.m_A = 1

    def __getattr__(self, name):
        if name in ("A"):
            return self.__dict__["m_%s" % name]
        raise AttributeError(name)

a = C()
a.A
Run Code Online (Sandbox Code Playgroud)

现在,我想用__slots__; 但是,这会禁用__dict__导致我的代码中断.

所以,我的问题是:

  1. 有没有其他方法可以做到这一点?(除外property)

  2. 我在使用Python时如何访问对象属性__slots__

python

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

进口package.submodule有什么好处?

使用numpy作为一个例子,我似乎无法实现什么做这样一个进口的好处将做到:

import numpy.lib
Run Code Online (Sandbox Code Playgroud)

导入完成后,numpy可以作为名称使用,相当于直接导入它:

import numpy
Run Code Online (Sandbox Code Playgroud)

这两种情况下,您lib只能使用虚线访问来访问子模块:

>>> numpy.lib
<module 'numpy.lib' from ....>
Run Code Online (Sandbox Code Playgroud)

是否存在做import numpy.lib有益的情况?

python import packages python-import

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

math.log输出错误

我正在尝试计算到非常大的数字的最接近的2 ^ n(<= 10 ^ 19)

我试图使用math.log(number,2)。但这对于很大的数字给出了错误的结果。我应该如何在不使用其他库的情况下执行此操作?

a = 9843649374639837463  # a is any num between 1 and 10^9
number = int(math.log(a,2))
Run Code Online (Sandbox Code Playgroud)

python floating-point precision logarithm python-3.x

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

随机将项目放在Python列表中

我是使用Python的初学者,我一直在尝试编写一个扫雷游戏.基本上,我有点迷失在如何设置我的类,以便它使用列表列表创建一个5x5网格的单元格,然后随机地在这个网格上放置3个地雷,并计算每个单元格邻域中的地雷数量.

我想我会使用一种__init__方法来调用另外两种方法:一种用于放置地雷,另一种用于计算每个小区的邻域.

虽然有任何建议,但我对如何设置它们有点迷茫?

python list minesweeper

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

使用Python创建单位圆计算器?

作为一个年轻的程序员,我总是试图寻找我的技能的应用程序.

无论如何,我现在正在接受trig并且我们正在研究单位圆,从度数转换为坐标的公式是(sinθ,cosθ)(据我所知).

但是,我遇到的困难是我需要将值保持为分数.

基本上,我计划的算法是:

i = 0
while i < 360:
    print(i, "=", calc(i))
    i += 15
Run Code Online (Sandbox Code Playgroud)

现在,calc可以给出任何名称,并且将是一个函数,它返回x和y的坐标(可能是一个元组)给定x =sinθ和y =cosθ.

我遇到的问题是Python中的sin会返回介于-1和1之间的浮点,但是,我需要找到一种方法让它返回一个分数.例如,在该图中 ,坐标是有理数.

我该怎么办?我应该编写自己的正弦函数和余弦函数吗?如果是,我应该怎么做?

python math trigonometry symbolic-math fractions

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

Python:如何将函数分配给Object属性?

基本上这开始于我在尝试查找索引是否存在于dict中时遇到的问题:

if collection[ key ]: # if exist
    #do this
else: # if no exist
    #do this
Run Code Online (Sandbox Code Playgroud)

但是当索引确实不存在时,它会抛出一个KeyError.所以,阅读Python文档.如果定义了missing(),则不会抛出KeyError.

collection = {}
def collection.__missing__():
    return false
Run Code Online (Sandbox Code Playgroud)

终端上面的代码给了我:

ghelo@ghelo-Ubuntu:~/Music$ python __arrange__.py
  File "__arrange__.py", line 16
    def allArts.__missing__():
               ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

那么,如何正确地做到这一点?顺便说一下,我需要在这上面使用Python 2.7.在Python 3上运行时有区别吗?

python function python-2.7 dictionary-missing

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

Python 2 __missing__方法

我写了一个非常简单的程序来子类化字典.我想__missing__在python中尝试该方法.经过一些研究后我发现在Python 2中可用defaultdict.(在python 3中我们使用collections.UserDict虽然..)如果找不到密钥,则__getitem__负责调用该__missing__方法.

当我__getitem__在下面的程序中实现时,我得到一个关键错误,但是当我没有它实现时,我得到了所需的值.

import collections
class DictSubclass(collections.defaultdict):

    def __init__(self,dic):
        if dic is None:
            self.data = None
        else:
            self.data = dic

    def __setitem__(self,key,value):
        self.data[key] = value

    ########################
    def __getitem__(self,key):
        return self.data[key]
    ########################

    def __missing__(self,key):
        self.data[key] = None

dic = {'a':4,'b':10}
d1 = DictSubclass(dic)
d2 = DictSubclass(None)    
print  d1[2]
Run Code Online (Sandbox Code Playgroud)

我认为我需要实施,__getitem__因为它负责呼叫__missing__.据我所知,defaultdict的类定义有一个__getitem__方法.但即便如此,说我想写自己的__getitem__,我该怎么做?

python dictionary python-2.x dictionary-missing

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

如何在Python中按列表的另一个列表划分列表?

我有q = [[7,2,3],[4,5,6]]r=[[6,1,2],[3,4,5]].我需要用r中的相应元素来划分q.(即[[7/6,2/1,3/2],[4/3,5/4,6/5]])

所需产出B = [[1.16,2,1.5],[1.33,1.25,1.2]]

码:

B= [[float(j)/float(i) for j in q] for i in r].

但是,我一直收到错误:TypeError:float()参数必须是字符串或数字.我从未来进口部门.有什么建议?

python algorithm floating-point list division

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