python 学习 3

31 

# 数列 1 1 2 3 5 8 13 21 34

def fibonacci(n):
    if n < 0:
        print("输入错误")
        return -1

    if n == 1 or n == 2:
        return 1
    else :
        return fibonacci(n-1) + fibonacci(n-2)
number = int(input("请输入当前第几个月:"))
result = fibonacci(number)
print (result)

 

32 

def hanoi(n,x,y,z):
    if n == 1:
        print( x,"->" ,z)
    else :
    # 将前n-1个盘子从x 移动到 y上
        hanoi(n-1,x,z,y)
    # 将最下面一个盘子移动到 z上
        print(x,"->",z)
    # 将 y上的n-1个盘子移动到z上
        hanoi(n-1,y,x,z)
n = int(input("请输入层数:"))
hanoi(n,"x","y","z")

 

33

class Ball:
    def __init__ (self,name):
        self.name = name
    def kick(self):
        print("I am %s"%self.name)
a = Ball("A")
a.kick()

 

34

class Rectangle():
    def __init__(self,x,y):
        self.x = x
        self.y = y
    def getPeri(self):
        z = (self.x + self.y) * 2
        print(z)

    def getArea(self):
        s = self.x * self.y
        print(s)

rect = Rectangle(3,4)
rect.getPeri()

rect.getArea()

 

35

class Ball:
    def setName(self,name):
        self.name = name
    def kick(self):
        print("I am %s"%self.name)
a = Ball()
a.setName("A")
b = Ball()
b.setName("B")

a.kick()
b.kick()

 

36

# 类,大写字母开头
class Turtle :
    # 属性
    color = "green"
    weight = 10
    legs = 4
    shell = True
    mouth = "big"
# 方法
    def climb(self):
        print("Climbing")
    def run(self):
        print("running")
    def bite(self):
        print("bite bite bite")
    def eat(self):
        print("eating")
    def sleep(self):
        print("good night")

# 将类赋值给tt
tt = Turtle()

# Turtle().climb() 等同于 tt.climb()

# 方法调用
tt.climb()
tt.run()
tt.bite()
tt.eat()
tt.sleep()

 

37

class Parent:
    def hello(self):
        print("正在调用父类的方法...")
class Child(Parent):
    def hello(self):
        print("正在调用子类的方法...")
p = Parent()
p.hello()

# 运行结果:正在调用父类的方法...
c = Child()
c.hello()

# 正在调用子类的方法...,如果子类中有与父类相同的方法或者属性,则覆盖父类,执行子类的方法

 

38

class Parent:
    def hello(self):
        print("正在调用父类的方法...")
class Child(Parent):
    pass
p = Parent()
p.hello()

# 运行结果:正在调用父类的方法...
c = Child()
c.hello()

# 运行结果:正在调用父类的方法.

 

39

# 多重继承
class Base1:
    def fool1(self):
        print("我是fool1")
class Base2:
    def fool2(self):
        print("我是fool2")
class C(Base1,Base2):
    pass

c = C()
c.fool1()
# 调用 Base1 中fool1方法
c.fool2()
# 调用 Base2中 fool2方法

 

40

# 组合,把不同对象放到一起 。横向。纵向是继承

class Turtle():
    def __init__(self,x):
        self.num = x
class Fish():
    def __init__(self,y):
        self.num = y
class Pool():
    def __init__(self,x,y):
        self.turtle = Turtle(x)
        self.fish = Fish(y)
    def print_num(self):
        print("水里有乌龟 %d 只,小鱼 %d条" %(self.turtle.num,self.fish.num))
# self.tutle.num 是x的值
# print("%d,%d"%(1,2)) ,注意格式,没有符号,没有空格,不能有中文字符,包含括号


pool = Pool(1,10)
pool.print_num()

 

41

# 继承

import random as r

class Fish:
    def __init__(self):
        self.x = r.randint(0,10)
        self.y = r.randint(0,10)
    def move(self):
        self.x -= 1
        print("我的位置是:",self.x,self.y)

class GoldFish(Fish):
    pass
class CarpFish(Fish):
    pass
class Saleon(Fish):
    pass

class Shark(Fish):
    def __init__(self):
        super().__init__() # 如果没有super方法,则不能直接继承 move方法
        self.hungry = True
    def eat(self):
        if self.hungry :
            print("我饿了")
            self.hungry = False
        else :
            print("我吃饱了")

goldfish = GoldFish()
goldfish.move()
# 随机生成一个位置
goldfish.move()
# 移动一个位置

shark = Shark()
shark.move()
# 随机生成一个位置

shark.eat()
# 调用eat方法,执行 if 语句,我饿了
shark.eat()
# 将if执行后值改为False,执行else语句 ,我吃饱了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值