這題python該如何解?想破頭都想不出來~

依底下規則,將輸入的字串進行分類或切割,並將其結果列印出來。

  • 先輸入一個正整數m,它代表接下來將會輸入m行的字串
  • 所以,接著請輸入m行的任意字串,字串可能是由單純數字構成,也可能是由多種動物的英文名稱構成
  • 若是字串由動物的英文名稱構成,則每種動物名稱之間會用%隔開
  • 必須將所有的數字放入一個串列(list)中
  • 對於包含動物英文名稱的字串,必須先切割成每一種動物名稱,再放入另一個串列(list)中。
  • 最後請印出包含數字的串列及動物英文名稱的串列
    舉例來說,若輸入的字串是 tiger%monkey%bird%
    則它會被切割成[tiger, money, bird] 三種動物名稱
    【註】若沒有輸入數字,則無需印出;同理,沒輸入動物名稱,亦無需印出

範例:
[輸入-1]
3
tiger%monkey%bird
5678
crow%bird%turkey
[輸出-1]
[5678]
['tiger', 'monkey', 'bird', 'crow', 'bird','turkey']

[輸入-2]
4
123
duck%lion%bear%zebra
911
elephant%sheep
[輸出-2]
[123, 911]
['duck', 'lion', 'bear', 'zebra', 'elephant','sheep']

[輸入-3]
1
963
[輸出-3]
[963]

[輸入-4]
2
sheep%giraffe
bat
[輸出-4]
['sheep', 'giraffe', 'bat']

n = int(input())
ali = []
bli = []
for i in range(n):
    s = input()
    if s.isdigit():
        ali.append(int(s))
    else:
        bli.extend(s.split("%"))
if len(ali)>0:
    print(ali)
if len(bli)>0:
    print(bli)

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

n = int(input(">>>"))
d = {'num': [], 'str': [], }
for _ in range(n):
    line = input(">>>")
    if line.isdigit():
        d['num'].append(int(line))
    else:
        d['str'] = d['str'] + line.split("%")

if d.get('num', []) != []:
    print(d['num'])
if d.get('str', []) != []:
    print(d['str'])