- #!/usr/bin/python3
- # 开始学习python
- print("hello,world")
- # 条件语句
- a, b = 3, 1
- if a < b:
- print('a({}) is less than b({})'. format(a,b))
- else:
- print('a({}) is great than b({})'. format(a,b))
- # ?: 模仿三元表达式
- print("foo" if a < b else "bar");
- # while循环 fabonacci
- a,b = 0,1 # 赋值 a = 0 , b = 1
- while b < 50:
- print(b)
- a, b = b, a+b
- print("Done.")
- # for循环,迭代输出文本信息
- #lines.txt
- #01 This is a line of text
- #02 This is a line of text
- #03 This is a line of text
- #04 This is a line of text
- #05 This is a line of text
- fh = open("lines.txt")
- for line in fh.readlines():
- print(line, end='')
- # 计算素数的函数,素数(只能被1和自己整除的数)
- def isprime(n):
- if n == 1:
- #print("1 is special")
- return False
- for x in range(2, n):
- if n%x == 0:
- #print("{} equals {} x {}".format(n, x, n // x))
- return False
- else:
- #print(n, "is a prime")
- return True
- for n in range(1, 30):
- isprime(n)
- # 迭代函数 primes, phper表示很难理解.
- # yield返回当前的素数,primes下次迭代时,将会从yield返回的数字开始。
- def primes(n = 1):
- while(True):
- if isprime(n): yield n
- n += 1
- for n in primes():
- if n > 100: break
- print(n)
- # oop 基本类的定义
- class Fibonacci():
- def __init__(self, a, b):
- self.a = a
- self.b = b
- # 含有yield语法的应该都是一个构造器,可以内部迭代
- def series(self):
- while (True):
- yield(self.b)
- self.a, self.b = self.b, self.a + self.b
- # 迭代构造器 Fibonacci.series()
- f = Fibonacci(0,1)
- for r in f.series():
- if r > 100: break
- print(r, end=' ')
- # 一个简单的mvc模式
- # oop2 继承与多态,高级概念
- # Duck,Person,Dog都继承AnimalActions
- # --- VIEW ---
- class AnimalActions:
- def quack(self): return self._doAction('quack')
- def feathers(self): return self._doAction('feathers')
- def bark(self): return self._doAction('bark')
- def fur(self): return self._doAction('fur')
- def _doAction(self, action):
- if action in self.strings:
- return self.strings[action]
- else:
- return "The {} has no {}".format(self.animalName(), action)
- def animalName(self):
- return self.__class__.__name__.lower()
- # --- MODEL ---
- class Duck(AnimalActions):
- strings = dict(
- quack = "Quaaaak!",
- feathers = "The duck has gray and white feathers."
- )
- class Person(AnimalActions):
- strings = dict(
- quack = "The person iitates a duck!",
- feathers = "The person takes a feather from the ground and shows it.",
- bark = "The person says woof.",
- fur = "The person puts on a fur coat."
- )
- class Dog(AnimalActions):
- strings = dict(
- bark = "Arf!",
- fur = "The dog has white fur with black spots."
- )
- # --- CONTROLLER ---
- def in_the_doghouse(dog):
- print(dog.bark())
- print(dog.fur())
- def in_the_forest(duck):
- print(duck.quack())
- print(duck.feathers())
- def main():
- donald = Duck()
- john = Person()
- fido = Dog()
- # 三个对象都能在不同的地方拥有同样的行为
- print("- In the forest:")
- for o in ( donald, john, fido ):
- in_the_forest(o)
- print("- In the doghouse:")
- for o in ( donald, john, fido ):
- in_the_doghouse(o)
- if __name__ == '__main__': main()
- # 异常 phper表示很强大
- # 尝试打开一个不存在的文件
- try:
- fh = open("xline.txt")
- for line in fh.readlines():
- print(line)
- except IOError as e:
- print("something bad happend {}.".format(e))
- #该片段来自于http://www.codesnippet.cn/detail/0704201512108.html
来源: http://www.codesnippet.cn/detail/0704201512108.html