三歲用白話和你一起學python
循環語句經典案例:坐火車
什麼是坐火車
現在對火車站管理嚴格,去坐火車需要買車票,然後纔可以過安檢,進大廳,候車。
過安檢需要查看是否有違禁品等。
我們編寫一個程序查看進火車站的流程
需要考慮的問題
- 買車票
- 安檢
- 是否有違禁品
- 違禁品是不是刀具
- 刀具長度(本例子以刀身長度超過150毫米的各類單刃、雙刃和多刃刀具爲例長度爲15釐米)
- 進站候車
申明
本文只是舉例,並非實際規定
下圖爲官方規定截取
僞代碼
輸入:是否買票
買了:
可以安檢
是否有違禁品:
沒有 候車
有: 是否爲刀具
刀具長度:
小於15或大於15
沒買:
基礎代碼
ls = eval(input('請輸入是否買車票(購買:1,未購買:0): ')
le = eval(input('刀具長度(大於等於0):')
if ls == 1 :
print('請進行安檢:')
if le <= 15 :
print('請在候車大廳等待上車')
else:
print('有違禁品不能夠進入')
else:
print('沒有車票不能進入,請去售票大廳購票')
測試結果
請輸入是否買車票(購買:1,未購買:0): 1
刀具長度(大於等於0):12
請進行安檢:
請在候車大廳等待上車
代碼解析:
eval():格式化輸入內容,使輸入內容原始化(輸入的形式與輸出形式相同)
input():輸入函數,輸入結果統一爲字符串
# 使用eval(input())就是使輸入結果爲原始內容(該處也可以使用int()強制轉換)
if進行判定用來檢測,判斷
代碼疑惑
該代碼結果與實際順序不符
安檢後直接出結果,不符合實際。
進行以下修改:
代碼修改
ls = eval(input('請輸入是否買車票(購買:1,未購買:0): '))
if ls == 1 :
print('請進行安檢:')
le = eval(input('刀具長度(大於等於0):'))
if le <= 15 :
print('請在候車大廳等待上車')
else:
print('有違禁品不能夠進入')
else:
print('沒有車票不能進入,請去售票大廳購票')
測試結果:
請輸入是否買車票(購買:1,未購買:0): 1
請進行安檢:
刀具長度(大於等於0):2
請在候車大廳等待上車
該代碼相對符合實際,但是話說回來突然問一句刀具長度有好多人都慌了,能不能改進一下
代碼改進弍
ls = eval(input('請輸入是否買車票(購買:1,未購買:0): '))
if ls == 1 :
print('請進行安檢:')
lf = eval(input('請輸入是否有刀具(有:1,無:0): '))
if lf == 0:
print('請在候車大廳等待上車')
else:
le = eval(input('刀具長度(大於等於0):'))
if le <= 15 :
print('請在候車大廳等待上車')
else:
print('有違禁品不能夠進入')
else:
print('沒有車票不能進入,請去售票大廳購票')
測試1:
請輸入是否買車票(購買:1,未購買:0): 1
請進行安檢:
請輸入是否有刀具(有:1,無:0): 0
請在候車大廳等待上車
測試2
請輸入是否買車票(購買:1,未購買:0): 1
請進行安檢:
請輸入是否有刀具(有:1,無:0): 1
刀具長度(大於等於0):15
請在候車大廳等待上車
這個代碼基本上沒有什麼大問題的,這個簡單的代碼解決了一個簡單的問題,棒棒噠!!!
寫代碼嘛,個人認爲就是多測試,多修改!!!
今天就到這裏啦!