From 8fc93fcc0e49eb20415f451f898688260949893d Mon Sep 17 00:00:00 2001 From: xiaoyang Date: Mon, 30 Mar 2026 20:07:49 +0800 Subject: [PATCH] =?UTF-8?q?docs:=202026-03-24=E4=BD=9C=E4=B8=9A=5Fpython?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 2026-03-24/2026-03-24_hw_1.py | 28 ++++++++++++++++ 2026-03-24/2026-03-24_hw_2.py | 61 +++++++++++++++++++++++++++++++++++ 2026-03-24/2026-03-24_hw_3.py | 28 ++++++++++++++++ 3 files changed, 117 insertions(+) create mode 100644 2026-03-24/2026-03-24_hw_1.py create mode 100644 2026-03-24/2026-03-24_hw_2.py create mode 100644 2026-03-24/2026-03-24_hw_3.py diff --git a/2026-03-24/2026-03-24_hw_1.py b/2026-03-24/2026-03-24_hw_1.py new file mode 100644 index 0000000..70fe7a9 --- /dev/null +++ b/2026-03-24/2026-03-24_hw_1.py @@ -0,0 +1,28 @@ +# 实现简单的四则运算计算器 +# 输入两个数一个运算符,输出结果 + + +def add(num1:float, num2:float) -> float: + return num1 + num2 +def sub(num1:float, num2:float) -> float: + return num1 - num2 +def mul(num1:float, num2:float) -> float: + return num1 * num2 +def div(num1:float, num2:float) -> float: + return num1 / num2 + +def main(): + a1 = float(input("请输入第一个数: ")) + a2 = float(input("请输入第二个数: ")) + s = input("请输入运算符: ") + + if s not in ["+", "-", "*", "/"]: + print("请输入正确的符号") + return + + p = {"+": add, "-": sub, "*": mul, "/": div} + print(p[s](a1, a2)) + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/2026-03-24/2026-03-24_hw_2.py b/2026-03-24/2026-03-24_hw_2.py new file mode 100644 index 0000000..cf145af --- /dev/null +++ b/2026-03-24/2026-03-24_hw_2.py @@ -0,0 +1,61 @@ +# 入机猜拳 + + +import random + +class Player: + def __init__(self): + self.dict_gesture = {0: '剪刀', 1: '石头', 2: '布'} + + def gesture(self, num): + return self.dict_gesture[num] + +class AIPlayer(Player): + play_data = [] # 存储玩家猜拳手势(类属性) + + def ai_gesture(self): + while True: + 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_gesture[computer] + +class Game(Player): + def game_judge(self): + player_num = int(input("请输入(0剪刀、1石头、2布:)")) # 玩家输入的手势 + player = self.gesture(player_num) + AIPlayer().play_data.append(player) + ai_player = AIPlayer().ai_gesture() + + if (player == '剪刀' and ai_player == '布') or \ + (player == '石头' and ai_player == '剪刀') or \ + (player == '布' and ai_player == '石头'): + print(f"电脑出的手势是{ai_player},恭喜,你赢了!") + elif (player == '剪刀' and ai_player == '剪刀') or \ + (player == '石头' and ai_player == '石头') or \ + (player == '布' and ai_player == '布'): + print(f"电脑出的手势是{ai_player},打成平局了!") + else: + print(f"电脑出的手势是{ai_player},你输了,再接再厉!") + + def main(self): + self.game_judge() + while True: + option = input("是否继续:y/n\n") + if option == 'y': + self.game_judge() + else: + break + +# 程序入口 +if __name__ == "__main__": + game = Game() + game.main() diff --git a/2026-03-24/2026-03-24_hw_3.py b/2026-03-24/2026-03-24_hw_3.py new file mode 100644 index 0000000..3f84b21 --- /dev/null +++ b/2026-03-24/2026-03-24_hw_3.py @@ -0,0 +1,28 @@ +# 实现 Circle 类... + + +import math + +class Circle(): + radius = float(0) + def __init__(self, radius:float) -> None: + self.radius = radius + + def get_peimeter(self) -> float: + return math.pi * self.radius * 2 + + def get_area(self) -> float: + return math.pi * (self.radius ** 2) + + def __str__(self) -> str: + return f"radius: {self.radius}\npeimeter: {self.get_peimeter()}\narea: {self.get_area()}\n" + +def main() -> int: + cir1 = Circle(3.0) + # print(str(cir1)) + print(f"cir1: peimeter: {cir1.get_peimeter()}") + print(f"cir1: narea: {cir1.get_area()}") + return 0 + +if __name__ == "__main__": + main() \ No newline at end of file