执行main函数猜错时不打印“对不起您输入的数字未在指定区间”
来源:3-2 项目作业
Venpnn
2020-02-26 15:46:07
import sys
import random
import datetime
def guide_page(guide_word):
print("{}{}{}".format('*'*20, guide_word, '*'*20))
def all_num(n):
is_num = n.isdigit()
if is_num == False:
print('您输入的为非法数字字符,请重新启动!')
sys.exit()
return (n)
def num_legal(ls):
if ls[0] == ls[1]:
print("您输入的区间数字相同!!请重新启动程序")
sys.exit()
elif ls[0] > ls[1]:
print("您输入的数字区间大小有误!!请重新启动程序")
sys.exit()
else:
return ()
def set_final_num(num1,num2):
final_num = random.randint(int(num1),int(num2))
return final_num
def check_num_legal(num):
ls1 = [int(a),int(b)]
if int(num) < ls1[0] or int(num) > ls1[1]:
return False
else:
return True
def write_record(times,value):
datetime1 = datetime.datetime.now()
with open('record.txt',"a+") as file_object:
file_object.write(f"{datetime1}:第{times}次您猜测的数字为{value}\n")
def main(rand1):
times = 0
while times+1:
num = int(input('请继续输入您猜测的数字'))
if not check_num_legal(num):
print('对不起你输入的数字未在指定区间')
continue
else:
times += 1
write_record(times,num)
if num < rand1:
print('*'*10)
print('Lower than the answer')
elif num > rand1:
print('*' * 10)
print('Higher than the answer')
else:
print('*' * 10)
print(f'恭喜您!只用了{times}次就赢得了游戏')
break
if __name__ == '__main__':
guide_page("欢迎进入数字猜猜猜小游戏")
a = input('数字区间起始值:')
b = input('数字区间终止值:')
all_num(a)
all_num(b)
num_ls = [a,b]
num_legal(num_ls)
d = set_final_num(a,b)
print(f"所产生的随机数字区间为:['{a}', '{b}']")
main(d)1回答
同学,你好。当猜测的值不在区间内时是会输出"对不起你输入的数字未在指定区间"。
同学若实现不了可以将具体操作及截图提供下,方便更好的为您解决。

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
相似问题
回答 1