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