读进来的是什么
玩家在键盘上敲了 50 回车。程序用 input() 读到手的是【0】。
不合法的输入怎么办
玩家敲了 abc。对游戏来说最合理的处理是【0】。
带空格的数字
玩家敲了 " 42 "(前后带空格)。int() 能转,但 isdigit() 说它不是数字。稳妥的做法是【0】。
只检查是不是数字够不够
玩家敲了 101,是数字。校验时除了「是不是整数」,还必须【0】。
parse 对八种输入的判决
parse 把一行输入变成整数、命令或 None(不合法)。看它对八种输入各给什么: def parse(line): s = line.strip() if s in ("q", "r&quo
混着非法输入的一局
(每道题开头都有同一段游戏核心:new_round 开一局、parse 校验输入、judge 比大小、step 记一次猜测、score 算分。秘密固定是 73。) 输入里混着空格、字母、出界的数。非法的那几行不算次数。看提示序列和总次数:
补全:写出 parse
补全 parse:去两端空白;q 和 r 原样返回;不是纯数字或不在 1 到 100 里返回 None;否则返回整数。
补全:非法输入不算次数
(每道题开头都有同一段游戏核心:new_round 开一局、parse 校验输入、judge 比大小、step 记一次猜测、score 算分。秘密固定是 73。) 把输入校验接进主循环:parse 返回 None 就记一次「无效」、不 st
判定函数为什么只判定
judge(secret, n) 只交回「大了」「小了」「对了」三个字之一,不改状态、不打印。这样写的好处是【0】。
结束要看哪些状态
判断「这一局是不是结束了」,需要看的状态是【0】。