12.25

笔记:
类(class)
(1)类:具有相同属性和方法的对象的集合
(2)对象:万物皆对象
(3)类和对象的关系:
(4)类的包含属性和方法:
(5)语法:
class 类名:
属性
方法
(6)私有方法(方法前面加上__):def __test() 只能在当前类中使用


练习:
# 猜拳
import random
class computer:
    __names = ['刘备','曹操','孙权']
    __rps = ['剪刀','石头','布']
    def __init__(self):
        self.name 


 = self.__names[random.randint(0,2)]
    def morra(self):
        self.result = self.__rps[random.randint(0,2)]
        # print('{0}已经出好拳了!'.format(self.name 


))
class player:
    def setname(self):
        print('请输入你的名字:',end='')
        r = input()
        self.name 


 = r
    def morra(self):
        print('请你出拳(1.剪刀 2.石头 3.布):',end='')
        r = input()
        if r.isdigit():
            r=int(r)
            if r==1:
                self.result = '剪刀'
                print('你出了剪刀  ',end='')
            elif r==2:
                self.result = '石头'
                print('你出了石头  ',end='')
            elif r==3:
                self.result = '布'
                print('你出了布  ',end='')
            else:
                print('输入有误,请重新输入!')
                self.morra()
        else:
            print('输入有误,请重新输入!')
            self.morra()




pw = 0      #存储玩家赢得次数
cw = 0      #存储电脑赢得次数
dr = 0      #存储平局次数
def judge(a,b):
    cr = a.result
    pr = b.result
    global pw,cw,dr
    if (cr=='剪刀'and pr=='布') or (cr=='石头'and pr=='剪刀') or (cr=='布'and pr=='石头'):
        print('%s赢了'%(a.name 


))
        cw +=1
    elif (cr=='布'and pr=='剪刀') or (cr=='石头'and pr=='布') or (cr=='剪刀'and pr=='石头'):
        print('%s赢了'%(b.name 


))
        pw +=1
    else:
        print('平局')
        dr +=1
def main():
    c = computer()
    p = player()
    p.setname()
    c.morra()
    p.morra()
    print('%s出了%s'%(c.name 


,c.result))
    judge(c,p)
    while True:
        print('是否继续(y/n):',end='')
        go = input()
        if go=='y' or go=='Y':
            c.morra()
            p.morra()
            print('%s出了%s'%(c.name 


,c.result))
            judge(c,p)
        else:
            print('%svs%s:'%(c.name 


,p.name 


))
            print('{0}赢了{1}次,{2}赢了{3}次,平局{4}次'.format(c.name 


            ,cw,p.name 


,pw,dr))
            if cw>pw:
                print('最终结果:电脑%s赢了'%c.name 


)
            elif cw<pw:
                print('最终结果:玩家%s赢了'%p.name 


)
            else:
                print('最终结果:平局')
            break


main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值