|
|
鱼油写得不错!整体逻辑清晰,函数封装也很棒。这里给几个小优化建议,让代码更“甲鱼风”:
1. 边界检查
如果用户输入的数字超出范围(比如 0 或 101),其实可以提前提醒,不用浪费猜测次数。在 int() 转换后加个判断:
- if guess < LOWER_BOUND or guess > UPPER_BOUND:
- print(f"Please enter a number between {LOWER_BOUND} and {UPPER_BOUND}!")
- continue
复制代码
2. 输入空值处理
用户直接回车时,input() 会得到空字符串,int() 会报错。虽然已经被 except 捕获,但可以更友好地提示“不能为空”:
- guess_str = input("Please input your assumption: ")
- if not guess_str.strip():
- print("Empty input! Please enter a whole number~")
- continue
复制代码
3. 减少重复判断
当前代码里 check_guess 判断了大小,后面又用 guess == secret_number 判断是否成功。可以改为让函数返回一个元组,避免重复比较:
- def check_guess(guess, secret):
- if guess < secret:
- return False, "Too small! Try a larger one~"
- elif guess > secret:
- return False, "Too large! Try a smaller one~"
- else:
- return True, "Congratulations! You've found out the corresponding number!"
复制代码
然后在主循环里:
- success, message = check_guess(guess, secret_number)
- print(message)
- if success:
- print(f"{attempts} times till you get the answer! Well done! ")
- break
复制代码
4. 最最重要的:继续游戏
现在一次游戏结束就退出,很不“甲鱼”。可以加一个外层循环,问用户“是否再来一局”:
- while True:
- # 原有游戏代码...
- play_again = input("Play again? (yes/no): ").strip().lower()
- if play_again != "yes":
- print("Bye bye~ See you next time!")
- break
复制代码
整体代码结构已经很好,继续加油!记住:好代码不是写出来的,是改出来的~
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|