「Python」控制台建议滚动抽奖

简介: 制作滚动抽奖的缘由:为什么要弄一个控制台滚动抽奖呢?市面上抽奖的东西多了去了。其实是当初初学Python的时候,对一些没见过的东西感兴趣吧。虽然说市面上的抽奖层出不穷。但是远没有自己实现的东西来的实在。每当自己手动实现一个小东西的时候,总会有满满的成就感。希望大家能够保持最初的的那份热忱啊,与诸君共勉~

「Python」控制台建议滚动抽奖


前言


制作滚动抽奖的缘由:为什么要弄一个控制台滚动抽奖呢?

市面上抽奖的东西多了去了。其实是当初初学Python的时候,对一些没见过的东西感兴趣吧。虽然说市面上的抽奖层出不穷。但是远没有自己实现的东西来的实在。

每当自己手动实现一个小东西的时候,总会有满满的成就感。希望大家能够保持最初的的那份热忱啊,与诸君共勉~🚌🚌🚌

用到的库包括随机函数random以及监听键盘事件的keyborad库。利用keyboard.is_pressed()监听键盘的输入。


主要是如何清空控制台,实现模拟滚动的效果,这里先卖个关子,如果是你,在Python中,你会考虑如何实现,从而达到滚动抽奖的效果呢?


注意,本文只在控制台实现了滚动的效果,并没有实现很炫酷的效果,读者可以自行尝试利用窗口设计的tkinter进行简单的设计。

游戏玩法:运行程序,按enter键,选出幸运儿


前置知识简介:


open("xxx.txt","r+") -- 打开文件

其中"r+"表示既可以读取还可以写,r:仅仅表示读入

本文中数据放置在多行,所以需要使用splitlines函数,表示按行读入。并返回获取的名称列表。


具体实现


实现思想:


最外层嵌套一个while true:每次清空控制台,(使用\r回到某一行的开头)输出一个名字。

采用keyboard.is_pressed()方法监听键盘的输入,当用户按下enter键的时候,跳出while循环,从而达到控制台滚动出现名字的效果。


实现代码

import random
import keyboard
if __name__ == "__main__":
    filename = "pool.txt"
    file = open(filename, "r+", encoding='utf-8')
    lst = file.read().splitlines()  # 按行读入数据
    random.shuffle(lst)  # 先打乱数据
    idx = 0
    n = len(lst)
    while True:
        print("\r%s " % (lst[idx]), end='')  # \r 回到某一行的开头
        idx = (idx + 1) % n
        if idx == 0:
            random.shuffle(lst)
        if keyboard.is_pressed('enter'):  # 按下enter键,停止
            break
    print("\rthe random is ", lst[idx])

实现效果


1.png

写在最后:这是初学者的一些些小实验,如有不妥还请指正!

相关文章
|
2天前
|
数据可视化 Python Windows
使用 Python 代码在 windows 控制台打印正弦三角函数
使用 Python 代码在 windows 控制台打印正弦三角函数
22 0
|
6月前
|
Python
python pyqt5 cmd 命令行 控制台 打印 print 输出 显示打印内容 实时显示 界面
python pyqt5 cmd 命令行 控制台 打印 print 输出 显示打印内容 实时显示 界面
203 0
|
2天前
|
数据可视化 数据处理 索引
Python用GARCH对ADBL股票价格时间序列趋势滚动预测、损失、可视化分析
Python用GARCH对ADBL股票价格时间序列趋势滚动预测、损失、可视化分析
|
2天前
|
数据采集 Web App开发 JavaScript
Python 网络爬虫技巧分享:优化 Selenium 滚动加载网易新闻策略
Python 网络爬虫技巧分享:优化 Selenium 滚动加载网易新闻策略
|
2天前
|
JSON 数据格式 Python
13 Python 阶段性总结抽奖系统(文末附代码地址)
13 Python 阶段性总结抽奖系统(文末附代码地址)
58 0
13 Python 阶段性总结抽奖系统(文末附代码地址)
|
2天前
|
Python
[Python] 如何在控制台进行输入输出
[Python] 如何在控制台进行输入输出
31 0
|
2天前
|
Python
Python selenium 页面滚动
Python selenium 页面滚动
16 0
|
2天前
|
NoSQL 开发工具 数据库
基于Python开发的学生信息管理系统控制台程序(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)
基于Python开发的学生信息管理系统控制台程序(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)
|
2天前
|
编译器 Python
【python】控制台中文输出乱码解决方案
【python】控制台中文输出乱码解决方案
103 0
|
7月前
|
Python
python之实现班级随机抽奖
python之实现班级随机抽奖