题目顺序与难度无关,觉得太难可以看下一道题。
无需多言,直接上代码。

from random import *
def ques1():
    # 猜拳游戏,包含普通模式、困难模式和简单模式,玩家可选择模式进行游戏,并统计总局数和玩家获胜局数,玩家可随时退出游戏,程序结束时显示统计结果。
    # 普通模式:电脑随机出拳。
    # 困难模式:电脑有 80% 的概率出能赢玩家的拳。
    # 简单模式:电脑有 70% 的概率出能输给玩家的拳。
    # 游戏规则:剪刀(0)胜布(2),布(2)胜石头(1),石头(1)胜剪刀(0)。
    # 电脑出拳策略根据玩家选择的模式进行调整。
    total_game = 0
    player_wins = 0
    mode = 'normal'
    print("欢迎来到猜拳游戏!\n")
    print("="*50)
    user_input = input("选择游戏模式\n1-普通模式\n2-困难模式\n3-简单模式\n0-退出游戏\n请输入数字选择模式:\n")
    if user_input == '2':
        mode = 'hard'
        print("已选择困难模式!\n")
    elif user_input == '3':
        mode = 'easy'
        print("已选择简单模式!\n")
    elif user_input == '0':
        print("已退出游戏,欢迎下次再来!")
        exit()
    else:
        print("已选择普通模式!\n")
        
    while True:
        x = input("请出拳:剪刀(0)、石头(1)、布(2)、退出游戏(3)\n")
        if x == '3':
            print("已退出游戏,欢迎下次再来!")
            break
        elif x not in ['0', '1', '2']:
            print("输入有误,请重新输入!\n")
            continue
        player_choice = int(x)
        total_game += 1
        if mode == 'normal':
            computer_choice = randint(0, 2)
        elif mode == 'hard':
            if player_choice == 0:
                cal = randint(1, 10)
                if cal <= 2:
                    computer_choice = 2
                else:
                    computer_choice = randint(0, 1)
            elif player_choice == 1:
                cal = randint(1, 10)
                if cal <= 2:
                    computer_choice = 0
                else:
                    computer_choice = randint(1, 2)
            else:
                cal = randint(1, 10)
                if cal <= 2:
                    computer_choice = 1
                else:
                    while True:
                        computer_choice = randint(0, 2)
                        if computer_choice != 1:
                            break
        elif mode == 'easy':
            if player_choice == 0:
                cal = randint(1, 10)
                if cal <= 7:
                    computer_choice = 2
                else:
                    computer_choice = randint(0, 1)
            elif player_choice == 1:
                cal = randint(1, 10)
                if cal <= 7:
                    computer_choice = 0
                else:
                    computer_choice = randint(1, 2)
            else:
                cal = randint(1, 10)
                if cal <= 7:
                    computer_choice = 1
                else:
                    while True:
                        computer_choice = randint(0, 2)
                        if computer_choice != 1:
                            break
        choices = ['剪刀', '石头', '布']
        print(f"你出的是{choices[player_choice]},电脑出的是{choices[computer_choice]}。")
        if player_choice == computer_choice:
            print("本局平局!\n")
        elif (player_choice == 0 and computer_choice == 2) or (player_choice == 1 and computer_choice == 0) or (player_choice == 2 and computer_choice == 1):
            player_wins += 1
            print("你赢了本局!\n")
        else:
            print("电脑赢了本局!\n")
def ques2():
    # 水仙花数,即一个三位数,其各位数字的立方和等于该数本身。例如:153 = 1^3 + 5^3 + 3^3。
    # 找出所有的水仙花数并打印出来。
    for i in range(1, 1000):
        num = i
        sum_of_cubes = 0
        while num > 0:
            digit = num % 10
            sum_of_cubes += digit ** 3
            num //= 10
        if sum_of_cubes == i:
            print(f"{i}是一个水仙花数。")
def ques3():
    # 手机号码数字表格,将用户输入的手机号码的每个数字重复打印 9 次,形成一个表格。
    phone_number = input("请输入手机号码:\n")
    for digit in phone_number:
        print(str(digit + "\t")*9)
def ques4():
    # 找出小于用户输入的正整数 n 的最大质数并打印出来。
    n = int(input("请输入一个大于1的正整数n:\n"))
    for i in reversed(range(3, n)):
        is_prime = True
        for j in range(2, int(i**0.5) + 1):
            if i % j == 0:
                is_prime = False
                break
        if is_prime:
            print(f"{i}是小于{n}的最大质数。")
            break
    
def ques5():
    # 猜数游戏,程序随机生成一个 1 到 100 之间的整数,用户输入猜测的数字,程序提示猜测结果(太大、太小或猜对),并统计猜测次数,直到用户猜对为止。
    ans = randint(1, 100)
    attempts = 0
    print("欢迎来到猜数字游戏!")
    while True:
        guess = input("请输入你猜的数字(1-100),或输入0退出游戏:")
        if guess == '0':
            print("已退出游戏,欢迎下次再来!")
            break
        if not guess.isdigit() or int(guess) < 0 or int(guess) > 100:
            print("输入有误,请输入1到100之间的数字,或输入0退出游戏。")
            continue
        guess = int(guess)
        if guess == ans:
            attempts += 1
            print(f"恭喜你,猜对了!你一共猜了{attempts}次。")
        else:
            attempts += 1
            if guess < ans:
                print("你猜的数字太小了,请再试一次。")
            else:
                print("你猜的数字太大了,请再试一次。")
def ques6():
    # 99 乘法表
    for i in range(1, 10):
        for j in range(1, 10):
            print(f"{i}x{j}={i*j}\t", end="")
        print()
            
def ques7():
    # 设计一个简单的计算器,分别用函数实现加法、减法、乘法和除法运算。
    def display_menu():
        print("欢迎使用简单计算器!")
        print("请选择运算类型:")
        print("1. 加法")
        print("2. 减法")
        print("3. 乘法")
        print("4. 除法")
        print("5. 退出")
        do = input()
        return do
    
    def add(a, b):
        return a + b
    def subtract(a, b):
        return a - b
    def multiply(a, b):
        return a * b
    def divide(a, b):
        if b == 0:
            return "错误:除数不能为零。"
        return a / b
    
    def get_numbers():
        x = input("请输入第一个数字:")
        num1 = float(x)
        y = input("请输入第二个数字:")
        num2 = float(y)
        return num1, num2, x, y
    
    def calculate(num1, num2, x, y, do):
        if do == '1':
            result = add(num1, num2)
            print(f"{x} + {y} = {result}")
        elif do == '2':
            result = subtract(num1, num2)
            print(f"{x} - {y} = {result}")
        elif do == '3':
            result = multiply(num1, num2)
            print(f"{x} * {y} = {result}")
        elif do == '4':
            result = divide(num1, num2)
            if result == "错误:除数不能为零。":
                print(result)
            else:
                print(f"{x} / {y} = {result}")
        else:
            print("输入有误,请重新启动计算器。")
        
    do = display_menu()
    if do == '5':
        print("已退出计算器,欢迎下次再来!")
        return
    num1, num2, x, y = get_numbers()
    calculate(num1, num2, x, y, do)           
             
def ques8():
    # 找出用户指定范围内的所有回文素数并打印出来。
    def palindrome(x):
        x = str(x)
        re = "".join(list(reversed(x)))
        if x == re:
            return True
        else:
            return False
    def prime(x):
        if x < 2:
            return False
        for i in range(2, x):
            if x % i == 0:
                return False
        return True
    
    print("请给出一个范围区间,我将输出这个区间中所有回文素数")
    start = int(input("起始值:"))
    end = int(input("结束值:"))
    for i in range(start, end + 1):
        if palindrome(i) and prime(i):
            print(str(i) + "是回文素数")
    
def ques9():
    # 找出下列列表中,字符串中数字和最大的字符串,并打印出来。
    source = ['a1b23', 'nodigits', 'c7d3e11', 'x5y4t']
    def sum_of_digits(s):
        sumValue = 0
        for k in s:
            if k.isdigit():
                sumValue += int(k)
        return sumValue
    
    max_string = max(source, key=lambda s: sum_of_digits(s))
    print(f"字符串中数字和最大的字符串是:{max_string}")
    
def ques10():
    # 将摄氏温度转换为华氏温度,使用 map 函数对一组摄氏温度进行转换,并打印出转换后的华氏温度列表。
    temper = [0, 10, 25, 30, 100]
    def change(temper):
        fff = temper * 9 / 5 + 32
        return fff
    results = list(map(lambda x: change(x), temper))
    print(results)
    
if __name__ == "__main__":
    # ques1()
    # ques2()
    # ques3()
    # ques4()
    # ques5()
    # ques6()
    # ques7()
    # ques8()
    # ques9()
    ques10()
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

RunfarAI 微信支付

微信支付

RunfarAI alipay

alipay

RunfarAI paypal

paypal