编程一则----随机选饭程序

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

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

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

这里是第一版,使用 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===============================================

源码地址

原文地址:https://www.cnblogs.com/bufubaoni/p/5649735.html