入门体验小游戏:猜数字游戏 题目描述: 电脑产生一个零到100之间的随机数字,然后让用户来猜,如果用户猜的数字比这个数字大,提示太大,否则提示太小, 当用户正好猜中电脑会提示,”恭喜你猜到了这个数是……”。在用户每次猜测之前程序会输出用户是第几次猜测,如果用 户输入的根本不是一个数字,程序会告诉用户”输入无效
(尝试使用try catch异常处理结构对输入情况进行处理)
获取随机数采用random模块。
import randomguess=random.randint(1,101)i=1while True:print ("第%d次猜,请输入一个整数数字:"%(i))try:temp=int(input())i+=1except ValueError :print ("输入无效")continueif temp==guess:print ("恭喜你猜对了,就是这个数",guess)break;elif (temp>guess):print ("大了")elif (temp<guess):print ("小了")
我们现在完成了这个功能, 我们改进一下
import randomdef functions01(number, number_):if number == number_:return f"恭喜你猜对了,就是这个数{number_}"elif number < number_:return "大了"elif number > number_:return "小了"def functions02(number, number_):_error = "小了" if number > number_ else "大了"return f"恭喜你猜对了,就是这个数{number_}" if number == number_ else _error_number = random.randint(1, 101)i = 1while True:print(f"第{i}次猜,请输入一个整数数字")try:input_number = int(input())print(_number)except ValueError:print("输入无效")continue# def_function = functions01(number=_number, number_=input_number) # 功能实现一def_function = functions02(number=_number, number_=input_number) # 功能实现二print(def_function)if def_function == f"恭喜你猜对了,就是这个数{input_number}":breakelse:i += 1
好的, 我们现在在其中使用了
_error = "小了" if number > number_ else "大了"return f"恭喜你猜对了,就是这个数{number_}" if number == number_ else _error
这里使用的是变量名 = 变量值1 if 逻辑表达式 else 变量值1
好的,我们现在再来优化一下
import randomclass Random_Number:def __init__(self):self._number = random.randint(1, 101)self._i = 1self._input_number = Nonedef _is_break(self):_error = "小了" if self._number > self._input_number else "大了"return f"恭喜你猜对了,就是这个数{self._input_number}" if self._number == self._input_number else _errordef _Main(self):while True:print(f"第{self._i}次猜,请输入一个整数数字")try:self._input_number = int(input())print(self._number)except ValueError:print("输入无效")continuedef_function = self._is_break()print(def_function)if def_function == f"恭喜你猜对了,就是这个数{self._input_number}":breakelse:self._i += 1def __str__(self):return self._Main()if __name__ == '__main__':Random_Number().__str__()
