zoukankan      html  css  js  c++  java
  • 编程一则----随机选饭程序

    今天一碗面条下去,感觉选择真的是一件太痛苦的事情了。我先先来也写个实用一点点程序吧。

    软件并未动工,稍后会是第一版

    ========================================================

    这里是第一版,使用 python3.5编辑,2.x系列也应该没有问题。

    没什么要说的,注意缩进

     1 #!/usr/bin/env python
     2 # -*- coding: utf-8 -*-
     3 # Created by Alex on 2016/7/7
     4 import random
     5 import time
     6 
     7 
     8 #食物列表,只需要更改列表即可
     9 foodlist = ['面条', 'kfc19元套餐', 'kfc19.5元套餐']
    10 
    11 
    12 def get_random_number(seed, len_foodlist):
    13     random.seed(seed)
    14     random_number = random.randint(0, len_foodlist-1)
    15     return random_number
    16 
    17 
    18 def get_food(foodlist, random_number):
    19     return foodlist[random_number]
    20 
    21 
    22 def choocie_food(foodlist):
    23     seed = time.time()
    24     len_foodlist = len(foodlist)
    25     random_number = get_random_number(seed, len_foodlist)
    26     print(get_food(foodlist, random_number))
    27 
    28 if __name__ == '__main__':
    29     choocie_food(foodlist)

     现在是你该考虑自己的菜单了。

    ==========================================================================

    突然想到一个问题就是 应该会 一闪而过。还应该阻止黑框

    1     try:
    2         key = raw_input("press any key to exit!")
    3     except:
    4         key = input("press any key to exit!")

    如果单单使用 input 在2.x 有一个 EOF 异常. key 仅仅是个无用变量而已。

    不得不承认 win 上的程序总是有明明奇妙的错误

    例如 使用 py2运行的时候就会出现汉字乱码,更改起来其实很简单

    1 def get_food(foodlist, random_number):
    2     try:
    3         return foodlist[random_number].decode('utf8')
    4     except Exception:
    5         return foodlist[random_number]

    将get_food 方法的返回值解码成 unicode就可以了,由于 py3 的str 是没有decode 方法的灰执行另外的代码~!

    ===========================================16/08/09================================================

    其实上边代买应该有点问题,没有交待清楚,如果 输入的 是类似于u"中文"这样的汉字,其实并不会执行到第一行,总会是第二行。

    对于2和3的判断可以使用

    1 import sys
    2 
    3 
    4 _ver = sys.version_info
    5 
    6 is_py2 = (_ver[0]==2)
    7 is_py3 = (_ver[0]==3)

    之后 就可以 不适用try ......catch 异常处理来区分2~3的行为了。

    ============================================16/08/23===============================================

    源码地址

  • 相关阅读:
    request.json 打印中文乱码解决
    看懂项目代码需要掌握的技能 (java语言)
    jmeter响应断言通过,结果树中却显示红色
    nginx的upstream后端名称居然变成了请求的host了?
    基于QRcode创建和识别二维码的研究
    thinkphp访问mysql中文字段问题
    apache https访问配置
    如何获得bibitem格式的参考文献
    CSharp: Image Matting
    word2vec回顾
  • 原文地址:https://www.cnblogs.com/bufubaoni/p/5649735.html
Copyright © 2011-2022 走看看