需求
编写一个名为 GetACard 的函数,该函数从用户输入的一行中读取面值(1-13),后跟一个空格,然后是一张牌的花色(C D H S, 如 ‘C 12’。 然后检查任一输入是否无效,如果无效,请要求用户重新输入卡片。 当输入有效时,将卡片的元组返回给调用程序。 包括一个主程序,根据用户需要多次调用该函数。
实战
代码实现
def GetACard(string):
colourList=[' C',' D',' H',' S']
result = []
for colour in colourList:
colour_index = string.find(colour)
if colour_index == 0:
continue
elif colour_index == 1:
if string[0]>='1' and string[0]<='9':
str = string[2] + ' ' + string[0]
result.append(str)
else:
last_char = string[colour_index - 2]
last_char1 = string[colour_index - 1]
if last_char == '1' and last_char1 > '0' and last_char1 < '4':
str = string[colour_index + 1] + ' ' + last_char + last_char1
result.append(str)
elif last_char1 > '0' and last_char1 <= '9':
str = string[colour_index + 1] + ' ' + last_char1
result.append(str)
return tuple(result)
def main():
while True:
string = input("请输入一行字符:")
result =GetACard(string)
if not result :
print("输入无效卡片,请重新输入:")
else:
print(result)
if __name__ == '__main__':
main()
如果学习上有遇到问题,加/:yiyi990805(备注:阿里云tony)即可。