只用python写出一个简易的火车售票系统,其中包括不同座位不同车次的选择,还有余票限制
时间: 2024-03-01 18:53:36 浏览: 34
好的,以下是一个简易的火车售票系统的 Python 代码:
```python
# 定义火车票信息
trains = [
{'name': 'G1', 'seats': {'商务座': 10, '一等座': 20, '二等座': 50}},
{'name': 'G2', 'seats': {'商务座': 5, '一等座': 10, '二等座': 30}},
{'name': 'G3', 'seats': {'商务座': 8, '一等座': 15, '二等座': 40}},
]
# 显示车次信息
print('车次信息:')
for i, t in enumerate(trains):
print(f'{i+1}. {t["name"]}')
# 选择车次
while True:
choice = input('请选择车次编号,按回车键结束:')
if choice == '':
break
choice = int(choice)
if choice < 1 or choice > len(trains):
print('输入错误,请重新输入!')
continue
train = trains[choice-1]
print(f'您选择了车次 {train["name"]}')
# 显示座位信息
print('座位信息:')
for s, n in train['seats'].items():
print(f'{s} 余票数量:{n}')
# 选择座位类型
while True:
seat_type = input('请选择座位类型,按回车键结束:')
if seat_type == '':
break
if seat_type not in train['seats']:
print('输入错误,请重新输入!')
continue
if train['seats'][seat_type] == 0:
print('该座位类型余票不足,请选择其他座位类型!')
continue
train['seats'][seat_type] -= 1
print(f'您选择了 {seat_type} 座位,购票成功!')
break
```
实现过程:
首先,我们定义一个火车票信息的列表 `trains`,其中每个火车都是一个字典,包含车次名称和座位信息。座位信息也是一个字典,包含不同座位类型和余票数量。
接着,我们使用一个 `for` 循环遍历火车票信息列表,显示出每个车次的名称。
然后,我们使用一个 `while` 循环让用户选择车次,用户输入车次的编号,然后将该车次的座位信息显示出来。
接下来,我们使用一个内部的 `while` 循环让用户选择座位类型,用户输入座位类型,然后检查该座位类型的余票数量是否足够。如果余票不足,提示用户选择其他座位类型;否则,将余票数量减 1,并显示购票成功信息。
注意:这个简易火车售票系统没有对用户输入进行严格的错误处理,例如用户输入非数字字符时程序会崩溃,实际使用时需要进行更完善的错误处理。