码迷,mamicode.com
首页 > 编程语言 > 详细

从代码中学Python语法六(持续更新)

时间:2015-11-20 19:16:07      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

# -*- coding:utf-8 -*-
class MyClass:
    """A simple example class"""

    i = 12345

    def __init__(self, l, r):
        self.data = []
        self.l=l
        self.r=r

    def f(self):
        return hello world

print(MyClass.i)
print(MyClass.__doc__)
x=MyClass(1,2)
print(x.data)
print(x.l)


class Bag:
    def __init__(self):
        self.data = []
    def add(self, x):
        self.data.append(x)
    def addtwice(self, x):
        self.add(x)
        self.add(x)

s = abc
it = iter(s)
print(next(it))

# 这种形式的访问清晰、简洁、方便。
# 迭代器的用法在 Python 中普遍而且统一。
# 在后台, for 语句在容器对象中调用 iter() 。
#  该函数返回一个定义了 next() 方法的迭代器对象
# ,它在容器中逐一访问元素。
# s=iter(Bag)
class Reverse:
    """Iterator for looping over a sequence backwards."""
    def __init__(self, data):
        self.data = data
        self.index = len(data)
    def __iter__(self):
        return self
    def __next__(self):
        if self.index == 0:
            raise StopIteration
        self.index = self.index - 1
        return self.data[self.index]
rev = Reverse(spam)
k = iter(rev)
print(next(k))
print(next(k))
# print(next(k))
# print(next(k))
# print(next(k))
for char in rev:
    print(char)

# Generator 是创建迭代器的简单而强大的工具。
# 它们写起来就像是正规的函数,
# 需要返回数据的时候使用 yield 语句。
# 每次 next() 被调用时,
# 生成器回复它脱离的位置(它记忆语句最后一次执行的位置和所有的数据值)。
# 以下示例演示了生成器可以很简单的创建出来:
def reverse2(data):
    for index in range(len(data)-1, -1, -1):
        yield data[index]

for char in reverse2(golf):
    print(char)
q = reverse2("ff")
p = iter(q)
print(next(p))

sum(i*i for i in range(10))                 # sum of squares
xvec = [10, 20, 30]
yvec = [7, 5, 3]
sum(x*y for x,y in zip(xvec, yvec))         # dot product

 

从代码中学Python语法六(持续更新)

标签:

原文地址:http://www.cnblogs.com/nima/p/4981315.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!