1.设计一个登录验证程序
"""
任务:设计一个登录验证程序,输入用户名和密码,输出登录是否成功的提示信息,只有三次输入机会。
"""
#循环验证:输入用户名密码;判断正确性;验证正确跳出循环
for n in range(3):
name=input("请输入用户名:")
password=input("请输入密码:")
if name =="user"and password =="123456":
print("登录成功")
break
else:
print("用户名或者密码错误,请重试!")
else:
print("登录失败")
#测试例设计:原则覆盖所有分支
#1)第一次输入就成功
#2) 失败两次第三次成功:用户错误;密码错误;都对了
#3) 三次都没成功:用户错误;密码错误;用户名和密码都错误
2.编写程序模拟决赛现场最终成绩计算过程
"""
任务:编写程序模拟决娄现场最終成續计算过程
分析提示:评委人数要大于2,每个评委打分要在0到100之间。最终成绩为去除最高分和最低分的平均分。
"""
def calculate_final_score():
while True:
try:
num_judges = int(input("请输入评委人数:")) # 获取有效的评委数
if num_judges <= 2:
print("评委人数必须大于 2。")
continue
scores = []
for i in range(num_judges): # 循环所有评委打分
while True:
try:
score = int(input(f"请输入第 {i + 1} 个评委的打分(0 - 100):"))
if score < 0 or score > 100:
print("打分必须在 0 到 100 之间。")
continue
scores.append(score)
break
except ValueError:
print("请输入有效的整数分数。")
scores.sort()
scores = scores[1:-1]
total_score = sum(scores)
final_score = total_score / len(scores)
return round(final_score, 2)
except ValueError:
print("请输入有效的评委人数。")
result = calculate_final_score()
if result is not None:
print(f"最终成绩是:{result}")
3.抓狐狸游戏(并带有详细的异常情况检测)
"""
任务内容:
编写程序,模拟抓狐狸小游戏支持用户依据需要持续玩此游戏。游戏难度分三个等级:1级有5个洞;2级有10个洞;3级有15个洞。
游戏规则:假设一排有5个洞口,小狐狸最开始的时候随机在其中一个洞里。然后,玩家选择一个洞口,如果里面有狐狸则玩家赢结束本轮游戏;如果洞里没有狐狸就到第二天再抓,但是第二天狐狸会在玩家抓之前跳到隔壁洞里。玩家一轮游戏只能抓3次,如果3次用完还没抓到狐狸则玩家输结束本轮游戏。
"""
import random
import time
def game_level():
while True:
try:
level = int(input("请选择游戏难度等级(1 级有 5 个洞;2 级有 10 个洞;3 级有 15 个洞):"))
if level == 1:
hole_num = 5
break
if level == 2:
hole_num = 10
break
if level == 3:
hole_num = 15
break
else:
print("输入的等级有误,请重新输入整数 1、2 或者 3。")
except ValueError:
print("输入的等级有误,请重新输入整数 1、2 或者 3。")
return hole_num
def fox_game():
hole_num = game_level()
fox_pos = random.randint(0, hole_num - 1)
attempts = 0
while attempts < 3:
try:
print(f"你还有{3 - attempts}次机会。")
guess = int(input(f"请选择一个洞口(0 - {hole_num - 1}):"))
if guess < 0 or guess >= hole_num:
print(f"输入的洞口编号有误,请在 0 - {hole_num - 1} 之间选择。")
continue
if guess == fox_pos:
print("恭喜你,抓到狐狸了!")
break
else:
print("没抓到狐狸,狐狸跑到隔壁洞了。")
if fox_pos == hole_num - 1:
fox_pos -= 1
elif fox_pos == 0:
fox_pos += 1
else:
move_direction = random.choice([-1, 1])
fox_pos += move_direction
attempts += 1
pause = input("是否需要暂停游戏(y/n):")
if pause.lower() == 'y':
continue_game = input("是否继续游戏(y/n):")
if continue_game.lower()!= 'y':
print("游戏暂停。")
time.sleep(3)
return
except ValueError:
print("输入有误,请输入一个整数。")
else:
print("很遗憾,3 次机会用完了,你没有抓到狐狸。")
play_again = input("是否再玩一轮(y/n):")
if play_again.lower() == 'y':
fox_game()
else:
print("游戏结束。")
fox_game()
4.列表推导式
"""
任务1:给定一个列表1,使用列表推导式生成列表2,使得列表2中只包含列表1中的非负数,
同时完成不使用列表推导式的代码编写
"""
#列表推导式:
list1 = [1, -2, 3, 0, -4, 5]
list2 = [num for num in list1 if num >= 0]
print(list2)
#不使用列表推导式
list1 = [1, -2, 3, 0, -4, 5]
list2 = []
for num in list1:
if num >= 0:
list2.append(num)
print(list2)
5.去除整型数据
"""
任务2:给定一组数据,利用列表和元组的相互转换实现元组元素的更改,去除其中的整型数据。
"""
# 给定一组数据作为元组
data_tuple = (123, 'apple', 456, 'banana', 789, 'orange')
# 将元组转换为列表
data_list = list(data_tuple)
# 去除列表中的整型数据
new_data_list = [item for item in data_list if not isinstance(item, int)]
# 将列表转换回元组
new_data_tuple = tuple(new_data_list)
print(new_data_tuple)
6.控制台一次性输入一组整数值,去除其中的偶数
"""
任务3:控制台一次性输入一组整数值,去除其中的偶数
"""
input_str = input("请输入一组整数值,用逗号分隔:")
input_list = eval(input_str)
result_list = [num for num in input_list if num % 2!= 0]
print(result_list)