第十章2 三方模块 实战

发布时间:2024年01月18日

实战一 模拟高铁售票系统 p148

不用三方库

def display_seat(lst):
    print('+-------'*6+'+')
    print('| 行号 | 座位1 | 座位2 | 座位3 | 座位4 | 座位5 |')
    print('+-------' * 6 + '+')

    for i in range(6):
        s=f'| 第{i+1}行 |'
        for item in lst[i]:
            if item==0:
                s+=' 已售|'
            else:
                s+=' 有票|'
        print(s)

    print('+-------'*6+'+')

if __name__ == '__main__':
    lst_seat = []
    for i in range(6):
        lst_row=[]
        for j in range(5):
            lst_row.append(1)
        lst_seat.append(lst_row)

    display_seat(lst_seat)
    while True:
        a,b=eval(input('请输入选择的坐席,如4,3表示第4排第3列:')) # 两个数字之间一定要用逗号分隔才行,不然函数报错
        lst_seat[a-1][b-1]=0
        display_seat(lst_seat)

使用三方模块prettytable

import prettytable as pt # as pt 就是给模块起个别名叫pt

# 显示座席
def show_ticket(row_num):
    tb=pt.PrettyTable() # 此方法会创建一张表格
    # 设置标题(表格的排头部分)
    tb.field_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.field_names = ['行号', '座位1', '座位2', '座位3', '座位4', '座位5']
    for i in range(1,row_num+1):
        if int(row)==i:
            lst = [f'第{i}行', '有票', '有票', '有票', '有票', '有票']
            lst[int(column)]='已售'
        else:
            lst = [f'第{i}行', '有票', '有票', '有票', '有票', '有票']
        tb.add_row(lst)

    print(tb)

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

    # 开始售票
    choose_num=input('请输入您选择的坐席:')
    row,column=choose_num.split(',') # 系列解包赋值,分成两个数字型字符串
    order_ticket(row_num,row,column)

注意系列解包赋值,对以逗号要求输入,可以先以变量存放,然后调用字符串的split方法分割

推算几天后的日期 p149

import datetime

a=datetime.timedelta(15)
start=datetime.datetime(2028,10,1,0,0,0)
end=start+a
print(end) # 默认就是以此种格式输出的 ‘2028-10-16 00:00:00’

import datetime

# 输入日期的函数
def input_date():
    input_date=input('请输入开始日期:(20281001)后按回车:')
    datestr=input_date[0:4]+'-'+input_date[4:6]+'-'+input_date[6:] # 切出 '年-月-日'格式
    # 类型转换 strptime
    dt=datetime.datetime.strptime(datestr,'%Y-%m-%d')
    return dt

# 主程序运行
if __name__ == '__main__':
    dt=input_date()
    # 输入间隔的天数
    in_num=eval(input('请输入间隔天数:'))
    date=dt+datetime.timedelta(int(in_num))
    print('您推算的日期是:',date)
文章来源:https://blog.csdn.net/engineer0/article/details/135666789
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。