• 实现用户的历史记录功能(1.5)




    实现用户的历史记录功能

    很多应用有历史记录的功能

    • 浏览器里最近访问页面
    • 视频播放器里 最近播放的视频
    • Shell查看以前用过的命令

    注:下边1,2,3是方法,后边是一个其他的东西

    1. 猜数字游戏

    from random import randint
    import time
    
    def guess(temp_num, target):
        if temp_num == target:
            print("you are right!")
            return  True
        elif temp_num > target: 
            print("%d is greater than target" % temp_num)
        else:
            print("%d is less than target" % temp_num)
        return False
    
    def guess_num_game():
        target = randint(0, 100)
        while 1:
            temp_num = input("please input a num: ")
            if temp_num.isdigit():
                temp_num = int(temp_num)
                if guess(temp_num, target):
                    break
    
    guess_num_game()
    

    2 如何记录已经猜过的数字

    from collections import deque
    
    def guess_num_game2():
        target = randint(0, 100)
        history = deque([], 5)
    
        while 1:
            temp_num = input("please input a num: ")
            if temp_num.isdigit():
                temp_num = int(temp_num)
                history.append(temp_num)
                if guess(temp_num, target):
                    break
            elif temp_num == '?':
                print(list(history))
    
    guess_num_game2()
    

    3. 如何写到文件里

    from collections import deque
    import pickle
    
    def guess_num_game3():
        target = randint(0, 100)
        history = pickle.load(open('history', 'rb'))
    
        while 1:
            temp_num = input("please input a num: ")
            if temp_num.isdigit():
                temp_num = int(temp_num)
                history.append(temp_num)
                pickle.dump(history, open('history', 'wb'))
                if guess(temp_num, target):
                    break
            elif temp_num == '?':
                history = pickle.load(open('history', 'rb'))
                print(list(history))
    
    guess_num_game3()
    

    说一下deque

    deque是一个双向队列,可以从左右两边插入或删除

    >>> import collections
    >>> d = collections.deque()
    >>> d.append(1)
    >>> d.append(2)
    >>> d.append(3)
    >>> d.appendleft(1)
    >>> print(d)
    >>> d.extend([3,4,5])
    >>> d.extendleft([3,4,5])
    >>> print(d)
    >>> d.pop()
    >>> d.popleft()
    >>> print(d)
    deque([1, 1, 2, 3])
    deque([5, 4, 3, 1, 1, 2, 3, 3, 4, 5])
    deque([4, 3, 1, 1, 2, 3, 3, 4])
    

    让字典保持有序

    python2.7的话 字典是无序的 如何让字典保持有序 需要使用collections.OrderedDict

    python3已经有序了,直接使用dict就可以了

    >>> d = {}
    >>> d['Jim'] = (1, 35)
    >>> d['Leo'] = (2, 40)
    >>> d['Bob'] = (3, 45)
    >>> 
    # py2
    >>> for k in d:
        	 print (k)
    Bob
    Jim
    Leo
    
    # py3
    >>> for k in d:
        	 print (k)
    Jim
    Leo
    Bob
    

    br/>

  • 相关阅读:
    看看时间,我的博客都有一年了。
    asp.net 读取数据库生成百度sitemap_baidu.xml和谷歌sitemap.xml
    克隆后自动改IP计算机名的批处理
    网奇iwms插件之“我浏览过的文章”
    Jetty7 Continuation 学习(一)
    PostgreSQL 和 MySQL 创建帐号,数据库,权限
    OpenLayers 学习笔记 (3) 使用 Google Maps 作底图
    Tomcat 和 Jetty 下 JNDI 配置 DBCP 连接池
    PostgreSQL 中 POLYGON 到 MULTIPOLYGON 的转换
    CentOS 5.4 安装 DNS
  • 原文地址:https://www.cnblogs.com/wangjiale1024/p/10311746.html
Copyright © 2020-2023  润新知