小编ASm*_*ASm的帖子

计算范围内的平方数(python)

我希望能够执行以下代码:

for i in Squares(5, 50):
      print(i)
Run Code Online (Sandbox Code Playgroud)

现在使用循环很容易实现,但是我想使用迭代器.

所以我定义了以下类:

import math

class Squares(object):

    def __init__(self, start, stop):
       self.start = start
       self.stop = stop

    def __iter__(self): 
        return self

    def __next__(self):
        start = self.start
        stop = self.stop
        squareroot = math.sqrt(start)

        if self.start > self.stop:
            raise StopIteration

        if squareroot == math.ceil(squareroot):
            start += 1
Run Code Online (Sandbox Code Playgroud)

但目前这种情况None无数次返回.这意味着必须是因为StopIteration即使它不应该执行也是如此.我认为我的if squareroot == math.ceil(squareroot):情况是正确的,因为我单独测试它,但我无法弄清楚要改变什么来获得我想要的输出.任何帮助表示赞赏.

编辑:对于如下代码:

for i in Squares(4, 16):
    print(i)
Run Code Online (Sandbox Code Playgroud)

我希望输出为:

4
9
16
Run Code Online (Sandbox Code Playgroud)

python iterator

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

在python中评估后缀?

我想编写一个函数来评估作为列表传递的后缀表达式。到目前为止,我有:

def evalPostfix(text):
    s = Stack()
    for symbol in text:
        if symbol in "0123456789":
            s.push(int(symbol))
        if not s.is_empty():
            if symbol == "+":
                plus = s.pop() + s.pop()
            if symbol == "-":
                plus = s.pop() - s.pop()
            if symbol == "*":
                plus = s.pop() * s.pop()
            if symbol == "/":
                plus = s.pop() / s.pop()
Run Code Online (Sandbox Code Playgroud)

但我认为我有错误的方法。帮助?

python postfix-notation

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

处理异常 - python中的负平方根

我正在尝试编写一段代码来处理负平方根的例外,因为我只想要一个正结果.我的代码是:

def sqRoot(x):
    try: 
        result = (x)**0.5
    except ValueError:
        result = "This is a negative root"
    except TypeError:
        result = "Please enter a number"
    return result
Run Code Online (Sandbox Code Playgroud)

出于某种原因,当我使用调用运行此代码时

x = sqRoot(-200)
Run Code Online (Sandbox Code Playgroud)

我没有得到错误,而是python给了我一个复数的结果.我似乎无法在代码中看到错误.

python python-3.x

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

标签 统计

python ×3

iterator ×1

postfix-notation ×1

python-3.x ×1