# 随机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)