笔记:
类(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()
类(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()