描述
用户输入一个数字和一个字母组成的座位号,根据字母判断位置是窗口还是过道。目前中国高铁和国内飞机窗口位置的字母是’A’和’F’,过道位置是’C’和 ‘D’,中间位置是’E’。
每个车厢座位排数是1-17,字母不区分大小写。
输入格式
输出格式
‘窗口’或’过道’ 或’中间’或’输入错误’
首先判断一下输入的座位是否是一个合法的座位号。
题目要求座位排数是1-17:
1 <= int(s[:-1]) <= 17
最后一位代码座位的字母应该只能是 ‘ABCDFabcdf’ 中的一个,或者先将输入转大写,则字母只能属于’ABCDF’中的一个。
s[-1] in 'ABCDF'
# 或
s[-1] in 'ABCDFabcdf'
如果输入的是合法的座位号,再判定是窗口、过道还是中间,根据最后一个字母就可以判定了。
可以将判定合法性与判定座位在一个函数 中实现 :
def seat(s):
if 1 <= int(s[:-1]) <= 17 and s[-1] in 'ABCDFabcdf':
if s[-1] in 'AaFf':
return '窗口'
elif s[-1] in 'CcDd':
return '过道'
elif s[-1] in 'Bb':
return '过道'
else:
return '输入错误'
if __name__ == '__main__':
s = input()
可以将两部分功能分别用一个函数实现,每个函数只实现一个功能,每个函数的逻辑也更简单。
def seatNumbers(seat): # 判定座位是否合法
if 1 < int(seat[:-1]) <= 17 and seat[-1] in 'ABCDF':
return True
else:
return False
def windowOrAisle(seat): # 判定是窗口、过道还是中间
if seat[-1] in 'AF':
return '窗口'
elif seat[-1] in 'CD':
return '过道'
elif seat[-1] == 'B':
return '中间'
if __name__ == '__main__':
seat = input().upper()
if seatNumbers(seat):
print(windowOrAisle(seat))
else:
print('输入错误')