小编Thu*_*ira的帖子

Python迭代器行为

给定一个任意输入字符串,我想找到该字符串中所有数字的总和.这显然要求我在迭代它时知道字符串中的NEXT元素......并决定它是否为整数.如果前一个元素也是一个整数,则这两个元素形成一个新的整数,所有其他字符都被忽略,依此类推.

例如输入字符串

ab123r.t5689yhu8 
Run Code Online (Sandbox Code Playgroud)

应该导致总和123 + 5689 + 8 = 5820.

这一切都是在不使用正则表达式的情况下完成的.

我已经在python中实现了一个迭代器,我认为其(next())方法返回下一个元素,但是传递输入字符串

acdre2345ty 
Run Code Online (Sandbox Code Playgroud)

我得到以下输出

a
c
d
r
e
2
4
t
y
Run Code Online (Sandbox Code Playgroud)

有些数字3和5缺失了......为什么会这样?我需要next()为我工作,以便能够筛选输入字符串并正确地进行计算

更好的是,我应该如何实现下一个方法,以便在给定的迭代期间直接生成元素?

这是我的代码

class Inputiterator(object):
    '''
    a simple iterator to yield all elements from a given
    string successively from  a given input string
    '''
    def __init__(self, data):
        self.data = data
        self.index = 0

    def __iter__(self):
        return self

    def next(self):
        """
        check whether we've reached the end of the input
        string, if not continue …
Run Code Online (Sandbox Code Playgroud)

python iterator generator

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

python中的OR行为:

我写了下面这段代码,我想要做的就是打印一个是,如果传递的数字是一个字符串表示为1,0或2,其他一切都是假的:

number=raw_input()
if number is "1" or "0" or "2":
    print "Yes"
else:
     print "no"
Run Code Online (Sandbox Code Playgroud)

我知道如何使预期的逻辑工作,但我只是想需要知道为什么它打印是任何数i传递给的raw_input.我希望答案尽可能详细,因为我无法理解为什么会失败,对我来说似乎是pythonic

python

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

标签 统计

python ×2

generator ×1

iterator ×1