Python作业

作业:文件的读写

作业

import datetime
import random
#输出文字并记录到任务日志里
def guide_page(guide_word):
    file_name='second_text.txt'
    print(guide_word)
    with open(file_name,'a',encoding='utf-8') as f:
        f.write(guide_word)
        f.write('\n')
#单写入不输出print
def guide_page1(guide_word):
    file_name='second_text.txt'
    with open(file_name,'a',encoding='utf-8') as f:
        f.write(guide_word)
        f.write('\n')
#判断是否为数字
def all_num(n):
    i=False
    #判断n是否是int类型数据,isdigit主要作用是判断是否为十进制的数据
    if n.isdigit()==i:
        guide_page("不是int类型数字,请重新打开程序")
        guide_page("*************")
        return False
    else:
        return True
#判断起始值和终止值是否相等
def num_equal(s):
    l=list(s)
    if l[0]==l[1]:
        guide_page("起始值等于终止值,请重新打开程序")
        guide_page("*************")
        return False
    else:
        return True
#设定需要判断的最终的值
def set_final_num(num1,num2):
    l=[num1,num2]
    #可用filter语句判断是否为int类型数字
    guide_page("所产生的随机数字区间为【{0},{1}】".format(l[0],l[1]))
    r=random.randint(l[0],l[1])
    return  r
#获得起始值和终止值的列表
def construct_range_value():
    l=[0,0]
    print("请输入数字起始值:")
    n=input()
    guide_page1("请输入数字起始值:{}".format(n))
    all_num(n)
    l[0]=int(n)
    print("请输入数字终止值:")
    m=input()
    guide_page1("请输入数字终止值:{}".format(m))
    all_num(m)
    l[1]=int(m)
    return l
#判断玩家输入数字是否超出范围
def check_num_legal(l,num):
    i=False
    if num<l[0] or num>l[1]:
        guide_page("超出范围,请重新输入")
        guide_page("*************")
        return i
#总结判断次数以及输出猜测数字结果
def write_record(times,value):
    file_name='second.txt'
    rest="本次猜测数字为{0},已经猜测次数为{1},猜测时间为{2}".format(value,times,datetime.datetime.now())
    with open(file_name,'a',encoding='utf-8') as f:
        f.write(rest)
        f.write('\n')




if __name__=='__main__':
    while(True):
        guide_page("*****************欢迎进入数字猜猜猜小游戏*****************")
        l=construct_range_value()#获取起始值的方法
        chl=num_equal(l)
        if chl==False:
            break
        r=set_final_num(l[0],l[1])#r是随机数
        rd = 0  # 猜测计数器
        while True:
            print("请输入您猜测的数字:")
            stri = input()#猜测的数字,后续程序中确保为int类型转成变量i
            guide_page1("请输入您猜测的数字:{0}".format(stri))
            if all_num(stri)==False:
                break# 判断是否为数字
            i = int(stri)
            #判断猜测数字是否超出范围
            if check_num_legal(l, i)==False:
                continue
            # 判断猜测数字是否合法
            if i<r :
                guide_page("Lower than the number")
                guide_page("*************")
                rd+=1
                write_record(rd,i)
            elif i>r:
                guide_page("Higher than the number")
                guide_page("*************")
                rd += 1
                write_record(rd, i)
            elif i==r:
                rd+=1
                write_record(rd,i)
                #猜对了终止程序
                break
        guide_page("恭喜你!!你只用了{0}次就猜对了".format(rd))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值