一、实验内容
1.奖池中电话号码通过文件输入,文件中每一行一个电话号码;
2.在控制台中每 100 毫秒在新行输出一个电话号码,模拟滚动效果;
3.用户单击回车键,停止滚动,输出中奖号码。
4.命令行:python lucky.py filename
a) lucky.py 为编写的 Python 代码文件;
b) filename 为奖池文件的路径;
c) 程序执行结果输出到控制台 stdout;
d) 处理文件不存在异常。
5.程序效果:
C:\temp>python lucky.py pool.txt
滚动开始(输入回车,滚动停止):
13155566543
......
中奖的号码为:15966668888
参考提示
1.依次从文件读取电话号码到一个列表,利用随机数模块打乱列表;
2.将打乱后的列表在控制台滚动输出;
3.利用 msvcrt 模块获取键盘输入,利用 kbhit()函数判断是否有键盘输入可读,如果有
则判断是否是回车键,是则退出。判断代码:
if msvcrt.kbhit():
k = msvcrt.getch()
if k in "\r\n": break
4.Msvcrt 模块参考 https://docs.python.org/2/library/msvcrt.html
二、新知识
1.随机数程序
2.msvcrt.kbhit()只能在命令行控制,不要问我为什么知道。。。。。
三、代码
# -*- coding: utf-8 -*-
# -*- coding:gb2312 -*-
import sys
import random
import time
import msvcrt
if __name__=="__main__":
fo=open("pool.txt","r+")
i=0
N=8
list=[]
while i<8:
list.append(fo.readline(50))
print list[i],
i=i+1
random.shuffle(list)
print "the random is \n"
for i in range(1,8):
if msvcrt.kbhit():
k = msvcrt.getch()
if k in "\r\n": break
else:
print list[i],
time.sleep(2) #进程延迟命令,变量单位为秒
i=i+1