python基礎 循環語句經典案例 坐火車


三歲用白話和你一起學python

循環語句經典案例:坐火車

什麼是坐火車

現在對火車站管理嚴格,去坐火車需要買車票,然後纔可以過安檢,進大廳,候車。
過安檢需要查看是否有違禁品等。

我們編寫一個程序查看進火車站的流程

需要考慮的問題

  • 買車票
  • 安檢
  • 是否有違禁品
  • 違禁品是不是刀具
  • 刀具長度(本例子以刀身長度超過150毫米的各類單刃、雙刃和多刃刀具爲例長度爲15釐米)
  • 進站候車
申明

本文只是舉例,並非實際規定
下圖爲官方規定截取
在這裏插入圖片描述

僞代碼

輸入:是否買票
買了:
    可以安檢
    是否有違禁品:
    沒有   候車
    有:   是否爲刀具
    刀具長度:
    小於15或大於15
沒買:
    

基礎代碼

ls = eval(input('請輸入是否買車票(購買:1,未購買:0): ')
le = eval(input('刀具長度(大於等於0):')
if ls == 1 :
    print('請進行安檢:')
    if le <= 15 :
        print('請在候車大廳等待上車')
    elseprint('有違禁品不能夠進入')
elseprint('沒有車票不能進入,請去售票大廳購票')

測試結果
請輸入是否買車票(購買: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
請在候車大廳等待上車

這個代碼基本上沒有什麼大問題的,這個簡單的代碼解決了一個簡單的問題,棒棒噠!!!

寫代碼嘛,個人認爲就是多測試,多修改!!!
今天就到這裏啦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章