python-day18-初识面向对象

本文介绍了Python中面向对象的基本概念,并通过一个发红包的例子展示了如何利用算法实现公平的红包分配。

1.面向对象初识

2.发红包例子

 

 

1.面向对象初识

class Person:
    def __init__(self,name,age,gender):
        # 内部默认以字典存储这些传进来的数据
        self.name = name    # 属性
        self.age = age
        self.gender = gender
        # 之后会把字典返回给调用者,返回给那个对象

    def pri(self):  # 方法
        print('姓名:%s\n年龄:%s\n性别:%s'%(self.name,self.age,self.gender))

ze = Person('泽州',11,'m')   # 实例对象
ze.pri()  # 调用对象方法
print(ze.__dict__)  #  {'name': '泽州', 'age': 11, 'gender': 'm'}
# ze的对象空间会有一个字典
ze.temp = 'aaa'  # 增加一个key和value
print(ze.__dict__)
# {'name': '泽州', 'age': 11, 'gender': 'm', 'temp': 'aaa'}

 

2.发红包例子

# 为了实现公平,先随机去除红包数-1的随机数,进行排序,添加头尾,循环该列表后一个元素减去前一个元素得到每个人的红包。

import random
def t3(money,num):
    l = random.sample(range(1,money*100),k=num-1)  #  *100会有小数
    # print(l)  # 随机的9个数
    l.sort()  # 排序
    l.insert(0,0)
    l.append(money*100)  # 添加总数
    # print(l)
    for i in range(len(l)-1):
        yield (l[i+1] - l[i]) / 100

ret = t3(100,10)
count = 1
for i in ret:
    print("第%s个人:%s元" % (count,i))
    count += 1

 图例:

 

转载于:https://www.cnblogs.com/zezhou/p/10596743.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值