# -*- coding: utf-8 -*-
"""******************************===
author: keen
created on: 2019/5/18
e-mail:[email protected]
******************************===
"""import random
class basetank(object):
# 類屬性,定義初始值
def __init__(self):
self.live = 1
self.position = random.randint(1, 10)
self.hp = 1
self.attck_position = random.randint(1, 10)
def hit(self, other):
if self.attck_position == other.position:
other.hp -= 1
if other.hp == 0:
other.live = 0
class mytank(basetank):
def move(self):
while true:
try:
# 將位置更新為移動的目標位置
self.position = int(input("請輸入要移動的目標位置【1-10】:"))
# 判斷輸入是否符合業務規範,不符合則丟擲異常
if self.position not in range(1, 11):
ex = exception("請輸入1-10之間的整數")
raise ex
else:
return self.position
# 捕獲資料型別錯誤異常
except valueerror:
print("請輸入整數!")
# 捕獲丟擲的異常
except exception as res:
print(res)
def bullet_launch(self):
while true:
try:
self.attck_position = int(input("請輸入要攻擊的目標位置【1-10】:"))
if self.attck_position not in range(1, 11):
ex = exception("請輸入1-10之間的整數")
raise ex
else:
return self.attck_position
except valueerror:
print("請輸入整數!")
except exception as res:
print(res)
class pctank(basetank):
def move(self):
# 移動後,更新位置
self.position = random.randint(1, 10)
def bullet_launch(self):
self.attck_position = random.randint(1, 10)
def main():
my = mytank()
pc = pctank()
while true:
# 玩家和電腦先後**
my.bullet_launch()
pc.bullet_launch()
# 判斷是否被擊中,並輸出戰況
my.hit(pc)
print("玩家**=>電腦位置%s,玩家攻擊位置%s,電腦生命值%s"
% (pc.position, my.attck_position, pc.hp))
if pc.live == 0:
print("遊戲結束,玩家勝利!")
break
pc.hit(my)
print("電腦**=>玩家位置%s,電腦攻擊位置%s,玩家生命值%s"
% (my.position, pc.attck_position, my.hp))
# 判斷存活狀態,為0則輸出結果,退出遊戲
if my.live == 0:
print("遊戲結束,電腦勝利!")
break
my.move()
pc.move()
if __name__ == '__main__':
main()
Python入門之經典練習題
第 1 題,輸出九九乘法表 分析思路 1.for 迴圈機制,先取第乙個for迴圈i的第1個值,跟j遍歷完來組合。11 12 13 21 22 23.得出結論,此處的 i 無需做限制。2.找規律 第1行 j 1 i 1 第2行 j 1,2 i 2 第3行 j 1,2,3 i 3 得出結論 j 的最大取...
python入門練習題
1.使用者鍵盤輸入一年份,判斷是否為閏年?如果是閏年,則輸出 是閏年 如果不是閏年,則輸出 不是閏年 判斷閏年的方法 1 能被4整除但不能被100整除 2 能被400整除 2.for迴圈巢狀 列印9 9乘法表 3.輸入兩個數,求這兩個數的最大公約數和最小公倍數 1.企業發放的獎金根據利潤提成。利潤 ...
python入門練習題2
1.利用遞迴方法求5!def tang j sum value 0 if j 0 sum value 1 else sum value j tang j 1 return sum valuefor i in range 10 print d d i,tang i 利用遞迴函式呼叫方式,將所輸入的5個...