1. 程式人生 > >day 16 作業 構建函式

day 16 作業 構建函式

 
# 隨機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)