大家好,小编来为大家解答以下问题,python 麦语言,python数麦芒,现在让我们一起来看看吧!
显示中国省份省会信息
class Province:
country = "China"
capital = "Beijing"
__country_describe = "中华人民共和国,简称“中国”。\n" \
"以五星红旗为国旗、《义勇军进行曲》为国歌,国徽内容为国旗、天安门、齿轮和麦稻穗Python中的所有运算符号。\n" \
"56个民族共同组成的统一的多民族国家。"
count = 0
def __init__(self, pname, pcapital):
self.pname = pname
self.pcapital = pcapital
Province.count += 1
@classmethod
def modify_des(cls, cd):
cls.__country_describe += cd
@classmethod
def get_des(cls):
return cls.__country_describe
def print_province(self):
print(self.pname, self.pcapital, sep='\t')
@staticmethod
def menu():
print("*" * 70)
print(f"国家:{Province.country}", f"首都:{Province.capital}", f"简介:{Province.get_des()}", sep='\n')
print("*" * 70)
def __del__(self):
Province.count -= 1
print(f"{self.pname}省份对象被撤销,省份对象剩{Province.count}")
pro_list = [Province("河北", "石家庄"), Province("山东", "济南"), Province("上海", "直辖市")]
Province.country = "中国"
Province.capital = "北京"
Province.modify_des("创立于1949年10月1日")
Province.menu()
for i in range(0, len(pro_list)):
pro_list[i].print_province()
人员信息输出
实现内容介绍:
定义一个学校人员类SchoolPerson,其中,私有类属性:school_name学校名称(初值空字符串),school_address学校地址(初值空字符串),count人数(初值0)——(学校信息)
私有实例属性:name姓名、sex性别、age年龄,post职务——(人员信息)
方法:
init()方法,完成实例属性的初始化;
del()方法,完成输出“**人员信息被撤销,还剩*人…”这一句话;
修改人员信息modify_person()方法;
输出人员信息show_person()方法;
修改学校信息modify_school()方法;
输出学校信息show_school()方法;
输出表头的方法menu()。
定义好类以后,再定义3个人员进行测试。
class SchoolPerson:
school_name=''
school_address=''
count=0
def __init__(self,name,sex,age,post):
self.name=name
self.sex=sex
self.age=age
self.post = post
SchoolPerson.count += 1
def __del__(self):
SchoolPerson.count -= 1
print(f"{self.name}对象被撤销,人员对象剩{SchoolPerson.count}")
@classmethod
def modify_school(cls, cd):
cls.school_address += cd
@classmethod
def show_school(cls):
return cls.school_address
def show_person(self):
print(f"姓名:{self.name}",f"性别:{self.sex}",f"年龄:{self.age}",f"职务:{self.post}",sep='\t')
@staticmethod
def menu():
print("*" * 70)
print(f"学校名称:{SchoolPerson.school_name}", f"学校地址:{SchoolPerson.school_address}", sep='\n')
print("*" * 70)
def __del__(self):
SchoolPerson.count -= 1
print(f"{self.name}对象被撤销,人员对象剩{SchoolPerson.count}")
pro_list = [SchoolPerson("张三", "男","18","学生"), SchoolPerson("李四", "女","16","学生"), SchoolPerson("王五", "男","38","老师")]
SchoolPerson.school_name = "唐山学院"
SchoolPerson.school_address= "河北省唐山市路北区大学西道11号"
SchoolPerson.menu()
for i in range(0, len(pro_list)):
pro_list[i].show_person()
猜拳游戏
方法一:
import random
# 定义一个人类
class person():
def play(self):
while True: # 做一个死循环,直到选择正确为止
finger = input("请输入要出拳的选项:\n1---石头 2---剪刀 3---布\n")
if finger.isdigit(): # isdigit() 方法检测字符串是否只由数字组成
finger = int(finger) # 将input默认输入的为字符类型,将它转化为数字类型
if finger == 1: # 用if判断玩家的出拳
print("[玩家]选择出---石头") # 输出玩家的出拳
break # 选择正确时,结束死循环
elif finger == 2:
print("[玩家]选择出---剪刀")
break
elif finger == 3:
print("[玩家]选择出--- 布 ")
break
else:
print("输入数字有误!请重新输入---")
else:
print("输入选项有误!请输入数字---")
return finger # 返回玩家的出拳
# 定义一个电脑类
class computer():
def stochastic(self):
random_number = random.randint(1, 3) # 用random.randint(1,3)产生一个1到3的随机整数
if random_number == 1: # 用if判断电脑的出拳
print("[电脑]选择出---石头") # 输出电脑的出拳
elif random_number == 2:
print("[电脑]选择出---剪刀")
else:
print("[电脑]选择出--- 布 ")
return random_number # 返回电脑的出拳
# 定义一个过程类
class process():
print("---------------人机大战---------------\n")
case1 = 0 # case1表示玩家胜利的次数
case2 = 0 # case2表示平局的次数
case3 = 0 # case1表示电脑胜利的次数
def _init_(self):
person_object = person() # person类 对象
computer_object = computer() # computer类 对象
while True: # 做一个死循环,一直进行游戏,直到玩家想要结束游戏
person_result = person_object.play() # 用person_result接受玩家的出拳
computer_result = computer_object.stochastic() # 用computer_result接受电脑的出拳
# 1:石头,2:剪刀,3:布,比较结果,判断此次游戏谁赢
if person_result == 1 and computer_result == 2 or \
person_result == 2 and computer_result == 3 or \
person_result == 3 and computer_result == 1:
print("------------------------玩家赢!")
self.case1 += 1 # 此时玩家胜利的次数case1+1
elif person_result == computer_result:
print("------------------------ 平局! ")
self.case2 += 1 # 此时平局的次数case2+1
else:
print("------------------------电脑赢!")
self.case3 += 1 # 此时电脑胜利的次数case3+1
if input(
"是否继续游戏:yes or no ?\n按任意键继续,输入n或者N结束游戏\n").lower() == "n":
# 接收输入,玩家是否想要继续游戏,将接收的输入转化为小写,和'n'进行比较,如果等于结束游戏,反之继续
break
if self.case1 > self.case3: # 玩家选择结束游戏之后,对之前所有的战局进行统计对比,判断谁赢
result = "玩家胜利!"
elif self.case1 == self.case3:
result = "平局"
else:
result = "电脑胜利"
print("---------------人机大战---------------\n游戏结束:\n"
"玩家共赢{0}次---电脑共赢{1}次---平局次数{2}次\n---总结果为:{3}" \
.format(self.case1, self.case3, self.case2, result)) # 输出整个游戏的结束,其中\在Python语言中表示一行未结束,下一行紧跟上一行,相当于一行
# 主函数,开始游戏
game_object = process()._init_()
方法二:
import random
class Player:
def __init__(self):
self.dict={0:'剪刀',1:'石头',2:'布'}
def gesture(self):#手势
player_input=int(input("请输入(0:'剪刀',1:'石头',2:'布':)"))
return self.dict[player_input]
class AIPlayer(Player):
play_data=[]
def ai_gesture(self):
computer=random.randint(0,2)
if len(self.play_data)>=4:#获取玩家出拳的最大概率
max_prob=max(self.play_data,key=self.play_data.count)
if max_prob =='剪刀':
return '石头'
elif max_prob=='石头':
return '布'
else:
return '剪刀'
else:
return self.dict[computer]
class Game:
def game_judge(self):
player=Player().gesture()
AIPlayer().play_data.append(player)
aiplayer=AIPlayer().ai_gesture()
if(player=='剪刀'and aiplayer=='布')or \
(player=='石头' and aiplayer=='剪刀')\
or(player=='布' and aiplayer=='石头'):
print(f"电脑出的手势是{aiplayer},恭喜,你赢了!")
elif (player == '剪刀' and aiplayer == '剪刀') or \
(player == '石头' and aiplayer == '石头') \
or (player == '布' and aiplayer == '布'):
print(f"电脑出的手势是{aiplayer},打成平局了!")
else:
print(f"电脑出的手势是{aiplayer},你输了,再接再厉!")
def game_start(self):
self.game_judge()
while True:
option=input("是否继续y/n\n")
if option=='y':
self.game_judge()
else:
break
g=Game()
g.game_start()
ps:说实话,这些代码是之前写的 现在早就考完python 所以如果有问题的话 自己纠错 不要问我 谢谢