Python入门-实战练习-基于模块&三方模块

发布时间:2024年01月18日

1.实战1- 模拟高铁售票系统

案例描述:

假设高铁一节车厢的座位数有6行,每行5列。
每个作为初始显示"有票",用户输入座位位置(如:4,3)后
按回车,则该作为显示为 “已售”,使用到第三方模块 prettytable

import prettytable as pt


# 显示坐席
def show_ticket(row_num):
    tb = pt.PrettyTable()  # 创建一张表格
    # 设置标题(表格的排头部分)
    tb.filed_names = ['行号', '座位1', '座位2', '座位3', '座位4', '座位5']

    # 遍历有票
    for i in range(1, row_num + 1):
        lst = [f'第{i}行', '有票', '有票', '有票', '有票', '有票']
        tb.add_row(lst)

    print(tb)


# 订票
def order_ticket(row_num, row, column):
    tb = pt.PrettyTable()  # 创建一张表格
    tb.filed_names = ['行号', '座位1', '座位2', '座位3', '座位4', '座位5']
    for i in range(1, row_num + 1):
        if int(row) == i:
            lst = [f'第{i}行', '有票', '有票', '有票', '有票', '有票']
            lst[column] = '已售'
            tb.add_row(lst)
        else:
            lst = [f'第{i}行', '有票', '有票', '有票', '有票', '有票']
            tb.add_row(lst)

    print(tb)


if __name__ == '__main__':
    row_num = 6
    show_ticket(row_num)

    # 开始售票
    choose_num = input('请输入您选择的坐席:如4,3表示第4排第3列:')
    row, column = choose_num.split(',')  # 系列解包赋值
    order_ticket(row_num, row, int(column))

运行结果:

D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap10\实战1-模拟高铁售票系统.py 
+---------+---------+---------+---------+---------+---------+
| Field 1 | Field 2 | Field 3 | Field 4 | Field 5 | Field 6 |
+---------+---------+---------+---------+---------+---------+
|1|   有票  |   有票  |   有票  |   有票  |   有票  |
|2|   有票  |   有票  |   有票  |   有票  |   有票  |
|3|   有票  |   有票  |   有票  |   有票  |   有票  |
|4|   有票  |   有票  |   有票  |   有票  |   有票  |
|5|   有票  |   有票  |   有票  |   有票  |   有票  |
|6|   有票  |   有票  |   有票  |   有票  |   有票  |
+---------+---------+---------+---------+---------+---------+
请输入您选择的坐席:4,3表示第4排第3:4,3
+---------+---------+---------+---------+---------+---------+
| Field 1 | Field 2 | Field 3 | Field 4 | Field 5 | Field 6 |
+---------+---------+---------+---------+---------+---------+
|1|   有票  |   有票  |   有票  |   有票  |   有票  |
|2|   有票  |   有票  |   有票  |   有票  |   有票  |
|3|   有票  |   有票  |   有票  |   有票  |   有票  |
|4|   有票  |   有票  |   已售  |   有票  |   有票  |
|5|   有票  |   有票  |   有票  |   有票  |   有票  |
|6|   有票  |   有票  |   有票  |   有票  |   有票  |
+---------+---------+---------+---------+---------+---------+

2.实战2-推算几天后的日期

案例描述:

编写一个程序,输入开始日期和间隔天数,可以推算出结束日期
使用内置的 datetime模块

import datetime

# 输入 日期的函数
def input_date():
    inputdate=input('请输入开始日期:(20281001)后按回车:')
    datestr=inputdate[0:4]+'-'+inputdate[4:6]+'-'+inputdate[6:]  #字符串切片,切出 年,月,日

    # 类型转换
    dt= datetime.datetime.strptime(datestr,'%Y-%m-%d')
    return dt


# 主程序运行
if __name__ == '__main__':
    #print(input_date())
    date=input_date()
    in_num=eval(input('请输入间隔天数:'))
    date=date+datetime.timedelta(days=in_num)
    print('您推算的日期是:',date)

运行结果:

D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap10\实战2-推算几天后的日期.py 
请输入开始日期:(20281001)后按回车:20281001
请输入间隔天数:15
您推算的日期是: 2028-10-16 00:00:00

3.词云图

案例描述:

使用 Python 第三方库 jieba 与 wordcloud 实现对华为笔记本评论的词云图

首先准备一个 .txt文件,里面的内容是对华为手机评价的一些内容,放你项目目录里

import jieba
from wordcloud import WordCloud

# 读取数据
with open('华为手机.txt','r',encoding='utf-8') as file:
    s=file.read()

# 中文分词
lst=jieba.lcut(s)
# 排除词
stopword=['运行速度','屏幕效果','散热性能','外形外观','其他特色']

txt=''.join(lst)

# 绘制词云图
wordcloud=WordCloud(background_color='white',font_path='msyh.ttc',stopwords=stopword,
                    width=800,height=600)

# 由 txt文件生成 词云图
wordcloud.generate(txt)
# 保存图片
wordcloud.to_file('华为手机评价词云图.png')

运行结果:

在这里插入图片描述
会在你项目的路径,生成一张:华为手机评价词云图.png 文件

文章来源:https://blog.csdn.net/weixin_43582499/article/details/135670241
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。