day 16 作業 構建函式
阿新 • • 發佈:2018-11-22
|
# 隨機4到6位的驗證碼,驗證碼包含大小寫字母和數字。使用者輸入驗證碼,忽略大小寫。
# 然後進行驗證,如果字母(不分大小寫)和數字相同,則成功,反之重來
1 import random, string 2 class Random1(): 3 def __init__(self): 4 self.number = 0 5 self.aZ = 0 6 def show(self): 7 while True: 8 a1 = random.randint(4, 6)9 a = "%s%s" % (self.number, self.aZ) 10 rr = "" 11 for i in range(a1): 12 rr += random.choice(a) 13 print(rr) 14 return str(rr).lower() 15 r1 = Random1() 16 r1.number = string.digits 17 r1.aZ = string.ascii_letters 18 def shuru():19 while True: 20 a = r1.show() 21 num = input("輸入驗證碼") 22 num = str(num).lower() 23 if a == num: 24 print("成功") 25 break 26 else: 27 print("驗證碼錯誤,請重新輸入") 28 pass 29 shuru()
# 使用者在註冊賬號的時候我們需要輸入使用者資訊, # 建立一個使用者類,變數有:使用者名稱、密碼、性別。 # 要求:使用者名稱必須以字母開頭,密碼必須是6位以上,性別只能是男和女。 # 寫一個show方法列印使用者名稱、密碼、性別的資訊。 # 在主函式中建立一個使用者物件,給三個變數賦值, # 如果賦值不滿足要求則重新輸入。否則呼叫show方法輸出資訊即可
1 import string 2 3 4 class User(): 5 def __init__(self): 6 self.__name = "" 7 self.__password = "" 8 self.__sex = "" 9 10 def get_user_show(self): 11 print("資訊如下") 12 return "姓名%s 密碼%s 性別%s" % (self.__name, self.__password, self.__sex) 13 14 def set_user_show(self): 15 quan_dui = False 16 while True: 17 if quan_dui == True: 18 break 19 name = input("輸入使用者名稱") 20 if name[0] in string.ascii_letters: 21 self.__name = name 22 else: 23 print("不合法") 24 continue 25 while True: 26 if quan_dui == True: 27 break 28 password = input("輸入密碼") 29 if len(password) >= 6: 30 self.__password = password 31 else: 32 print("不合法") 33 continue 34 while True: 35 sex = input("輸入性別") 36 if sex in "男" or sex in "女": 37 self.__sex = sex 38 quan_dui = True 39 40 break 41 else: 42 print("不合法") 43 44 45 u1 = User() 46 u1.set_user_show() 47 print(u1.get_user_show())
# 定義一個英雄類,包含玩家數量,生命值,攻擊力和玩家姓名, # 同時包含一個方法攻擊方法,呼叫攻擊方法時顯示如圖資訊, # 建構函式中需要初始化資料,當玩家加入遊戲後需要顯示玩家姓名和數量
1 class player(): 2 def __init__(self, name, art, hp, number): 3 self.name = name 4 self.art = art 5 self.hp = hp 6 self.number = number 7 8 def join(self): 9 print("新玩家%s加入遊戲,當前玩家數為%d" % (self.name, self.number)) 10 11 def artte(self): 12 i = 0 13 while player1.hp > 0: 14 player1.hp = player1.hp - player2.art 15 print("玩家%s受到玩家%s的%d點傷害,hp剩餘%d" 16 % (player1.name, player2.name, player2.art, player1.hp)) 17 i += 1 18 if player1.hp == 0: 19 break 20 if i == 2 : 21 i -= 2 22 while player2.hp > 0: 23 player2.hp = player2.hp - player1.art 24 print("玩家%s受到玩家%s的%d點傷害,hp剩餘%d" 25 % (player2.name, player1.name, player1.art, player2.hp)) 26 i += 1 27 if player2.hp == 0: 28 break 29 if i == 2: 30 i -= 2 31 input("請安任意鍵繼續") 32 break 33 num = 1 34 while True: 35 player1 = player("Tom", 5, 200, num) 36 player1.join() 37 num += 1 38 player2 = player("Lucy", 10, 150, num) 39 player2.join() 40 if num == 2: 41 break 42 player1.artte()
#看了老師重寫
1 class player(): 2 number = 0 3 4 def __init__(self, name, art, hp): 5 self.name = name 6 self.art = art 7 self.hp = hp 8 player.number += 1 9 print("新玩家%s加入遊戲,當前遊戲玩家數為%d" 10 % (self.name, player.number)) 11 12 def artt(self, p): 13 p.hp -= self.art 14 print("玩家%s受到玩家%s的%d點傷害,剩餘hp為%d" 15 % (p.name, self.name, self.art, p.hp)) 16 p1 = player("Tom", 5, 200) 17 p2 = player("Lucy", 10, 150) 18 p2.artt(p1) 19 p2.artt(p1) 20 p1.artt(p2) 21 p1.artt(p2)