老师请教一下 main函数这里实在不知道怎么写了
来源:3-2 项目作业
weixin_慕工程2106797
2019-09-09 18:28:50
import datetime
import sys
import random
# 定义游戏进入提示函数guide_page(guide_word)
def guide_page(guide_word):
print('{0}{1}{0}'.format('*' * 20, guide_word))
# 定义数字类型判断函数all_num(n)
def all_num(n):
n_isdigit = n.isdigit()
return n_isdigit
# 定义数值合法性判定函数num_legal(ls)
def num_legal(ls):
"""若两者相等,则退出程序,并提示玩家重新启动程序;
若表示数字区间起始位置的值大于数字区间终止位置的值,则退出程序,并提示玩家重新启动程序;
反之,则返回值为1"""
if ls[0] == ls[1]:
print('重新启动程序')
sys.exit()
elif ls[0] > ls[1]:
print('重新启动程序')
sys.exit()
else:
return 1
# 定义产生指定区间随机数函数set_final_num(num1,num2)
def set_final_num(num1, num2):
a = [num1, num2]
isnum = filter(all_num, a)
if len(list(isnum)) == 2:
if num_legal(a) == 1:
print('随机数区间{}'.format(a))
s = random.randint(int(num1), int(num2))
return s
else:
print('输入的为非数字字符,请重新启动')
sys.exit()
# 定义核查数值是否属于指定区间函数check_num_legal(num)
def check_num_legal(num):
"""
依据输入的数字区间起始值和终止值,利用条件语句判断输入数值是否在指定区间,
若不在该区间内,则提示玩家所输入的数字未在指定区间,若输入非数字字符则提示
玩家重新输入
"""
if num < int(i) or num > int(j):
print('输入的数字未在指定区间')
# 定义日志写入函数write_record(times,value)
def write_record(times, value):
with open('record.txt' , 'w+',encoding='utf-8') as f:
f.write('{}:第{}次猜测的数字为:{}'.format(datetime.datetime.now(), times, value))
# 定义main(rand1)函数(依据所产生的随机数字(rand1),提示玩家输入猜测数字并进行比对直到猜测到正确数字)
def main(rand1):
temp = 0
while True:
output = int(input('请输入所猜测的数字:'))
if check_num_legal(output) == True:
print('输入的数字不在指定的区间内')
continue
write_record(temp, output)
temp += 1
if output == rand1:
print('恭喜你只用{}次赢得游戏'.format(temp))
elif output < rand1
# 控制程序逻辑执行流程(if __name__ == '__main__':):
if __name__ == '__main__':
# 调用guide_page( )输出效果图所示的标题信息
guide_page('欢迎来到游戏猜猜猜')
# 设置两个变量(i,j)分别接收用户输入数字区间的起始值和终止值
i = input('请输入起始值:')
j = input('请输入终止值:')
# 调用set_final_num( )函数得到随机数,赋值给变量r
r = set_final_num(i, j)
# 调用main( )执行程序流程
main(rand1)
1回答
同学你好:
注意条件判断的缩进,非数字字符时,结束程序。
符合条件判断,做一个返回值,方便下边调用该方法进行条件判断使用
写入记录时的选项是a或者w,a是追加写入,在这个场景较为适合。可以在记录一条数据之后加一个换行符\n。
由于同学的计数是从0开始的,所以文件记录时,temp应先加1.
猜测的数字等于生成的随机数时,需要跳出循环
条件判断猜测数字的值如标注部分。
main()函数接收的参数是r不是rand。rand变量没有定义。
注意缩进。
如果我解决了同学的问题,请采纳!学习·愉快^_^。
相似问题