python基礎系列:
python自學篇一[ Anaconda3安裝 ]
python自學篇二[ pycharm安裝及使用 ]
python自學篇三[ 判斷語句if的使用 ]
python自學篇四[ 基本數據類型和字符串常用處理 ]
python自學篇五[ 列表 ]
python自學篇六[ 元組 ]
python自學篇七[ 字典+深拷貝與淺拷貝 ]描述
python自學篇八[ 循環:while+for+pass+range()+推導式 ]
python自學篇九[ 函數(一):參數+對象 ]
python自學篇九[ 函數(二):返回值return+yield+迭代器+生成器 ]
python自學篇九[ 函數(三):變量作用域+ATM+5個小練習 ]
python自學篇九[ 函數(四):遞歸函數+匿名函數+內置函數+高階函數 ]
python自學篇十[ 面向對象 (一) :面向對象概念+定義類+練習一]
python自學篇十[ 面向對象 (二) :繼承+多繼承+類屬性+實例屬性]
python自學篇十[ 面向對象 (三) :訪問限制+類方法+靜態方法]
python自學篇十[ 面向對象 (四) :王者榮耀小遊戲+模擬一個簡單的銀行進行業務辦理的類]
python自學篇十一[ 模塊簡介+模塊製作+dir()函數+標準模塊+包]
python自學篇十二[ 文件:打開+讀取+寫入+3個習題]
練習:亡者農藥小遊戲
1、創建三個遊戲人物,分別是:
屬性:
名字:name,定位:category,血量:Output技能:Skill
英雄:
鎧,戰士,血量:1000 技能:極刃風暴
王昭君,法師 ,血量:1000 技能:凜冬將至
阿軻,刺客,血量:1000 技能:瞬華
2、遊戲場景,分別:
偷紅buff,釋放技能偷到紅buff消耗血量300
solo戰鬥,一血,消耗血量500
補血,加血200
- 完整代碼:
#-*- conding:utf-8 -*-
class hero():
#定義屬性
def __init__(self,name,category,skill,output=1000,score = 0):
self.name = name
self.category = category
self.skill = skill
self.output = output
self.score = score
#戰鬥場景1,偷紅BUFF
def red_buff(self):
self.output -= 300
print('%s%s到對面野區偷紅BUFF,消耗血量300'%(self.category,self.name))
#戰鬥場景2solo戰鬥
def solo(self,n=1):
self.output -= 500
if self.output < 0:
print('%s%s,送了一個人頭,血染王者峽谷'%(self.category,self.name))
else:
if self.score == 0:
self.score += n
print('%s%s solo戰鬥拿到一血,消耗血量500'%(self.category,self.name))
else:
self.score += n
print('%s%s solo戰鬥拿收割%d個人頭,消耗血量500'%(self.category,self.name,n))
#場景三,加血
def add_xue(self):
self.output += 200
print('%s%s被輔助及時奶了一口,加血200'%(self.category,self.name))
#查看英雄相惜信息
def getInfo(self):
if self.output <= 0:
print('%s%s,正在復活,拿到%d個人頭'%(self.category,self.name,self.score))
else:
print('%s%s超神啦!血量還有%d,拿到%d個人頭'%(self.category,self.name,self.output,self.score))
#實例化對象
kai = hero('鎧','戰士','極刃風暴')
#操作
kai.red_buff()#打紅buff
kai.getInfo()#查看英雄信息
kai.solo()#單挑殺人
kai.getInfo()#查看英雄信息
kai.add_xue()#奶媽加血
kai.getInfo()#查看英雄信息
kai.solo()#單挑殺人
kai.getInfo()#查看英雄信息
模擬一個簡單的銀行進行業務辦理的類
類:
創建一個銀行類
屬性:
一個屬於銀行的類屬性
用來存儲所用銀行的開戶信息,包含卡號、密碼、用戶名、餘額
(外界不能隨意訪問和修改。開戶時要進行卡號驗證,查看卡號是否已經存在)
每個對象擁有
卡號、密碼、用戶名、餘額
(外界不能隨意訪問和更改)
方法:
銀行類擁有
查看本銀行的開戶總數
查看所有用戶的個人信息(包含卡號、密碼、用戶名、餘額)
每個對象擁有
實例化對象的時候傳入相關參數
初始化對象及類屬性
取錢(需要卡號和密碼驗證)
通過驗證卡號和密碼對個人的餘額進行操作,如果取錢大於餘額,返回餘額不足
存錢(需要卡號和密碼驗證)
通過驗證卡號和密碼對個人的餘額進行操作,返回操作成功
查看個人詳細信息(需要卡號密碼驗證)
返回個人的卡號,用戶名,餘額信息
- 完整代碼:
class Bank():
#一個屬於銀行的類屬性
__Users = {}
#每個對象擁有 卡號、密碼、用戶名、餘額
def __init__(self,CradId,pwd,name,balance):
if CradId not in Bank.__Users:
Bank.__Users[CradId] = {'pwd':pwd,'Username':name,'Balance':balance}
self.__CradId = CradId
self.__pwd = pwd
self.__name = name
self.__balance = balance
#查看本銀行的開戶總數
@classmethod
def nums(cls):
print('當前用戶數:%d'%(len(cls.__Users)))
#查看所有用戶的個人信息(包含卡號、密碼、用戶名、餘額)
@classmethod
def get_Users(cls):
for key,val in cls.__Users.items():
print('卡號:%s \n 用戶名:%s \n密碼:%d \n 餘額:%d'%(key,val['Username'],val['pwd'],val['Balance']))
print()
#驗證方法
@staticmethod
def check_User(CradId,pwd):
if (CradId in Bank.__Users) and (pwd == Bank.__Users[CradId]['pwd'] ):
return True
else:
return False
#驗證金額
@staticmethod
def check_money(money):
if isinstance(money,int):
return True
else:
return False
# 取錢(需要卡號和密碼驗證)
def q_money(self,CradId,pwd,money):
if Bank.check_User(CradId,pwd):
#開始取錢
if Bank.check_money(money):
if Bank.__Users[CradId]['Balance'] >= money:
Bank.__Users[CradId]['Balance'] -= money
print('當前卡號%s,當前取款金額%d,當前餘額%d'%(CradId,money,Bank.__Users[CradId]['Balance']))
else:
print('餘額不足')
else:
print('您輸入的金額有誤')
else:
print('卡號或者密碼有誤')
def c_money(self,CradId,pwd,money):
if Bank.check_User(CradId,pwd):
#開始取錢
if Bank.check_money(money):
Bank.__Users[CradId]['Balance'] += money
print('當前卡號%s,當前存款金額%d,當前餘額%d'%(CradId,money,Bank.__Users[CradId]['Balance']))
else:
print('您輸入的金額有誤')
else:
print('卡號或者密碼有誤')
#查看個人詳細信息(需要卡號密碼驗證)
def getInfo(self,CradId,pwd):
if Bank.check_User(CradId, pwd):
print('當前卡號%s,當前用戶名%s,當前餘額%d' % (CradId, Bank.__Users[CradId]['Username'], Bank.__Users[CradId]['Balance']))
else:
print('卡號或者密碼有誤')
joe = Bank('1001',111111,'joe',100)
joe2 = Bank('1001',111111,'joe',100)
Bank.nums()
print('_'*50)
Bank.get_Users()
print('_'*50)
joe.c_money('1001',111111,500)
print('_'*50)
joe.q_money('1001',111111,300)
print('_'*50)
joe.getInfo('1001',111111)