题目顺序与难度无关,觉得太难可以看下一道题。
无需多言,直接上代码。
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() |
