Python - wydzielanie z tekstu cyfr i wyrazow

0

Cześć,

Dopiero zaczynam przygodę z Python i mam zadanie z napisów, aby stworzyć skrypt który wczytuje z klawiatury tekst i wpisuje czy ten tekst to wyraz, czy cyfra np:

Ala
Wyraz: Ala
ma
Wyraz: ma
1kot
Wyraz: kot
Cyfra:1
Itp...
Dostałem wskazowke że mogę zastosować swift case, i tutaj kompletnie poleglem. Jak zastosować do tego swift case?
Jedyne co udało mi się napisać co się kompiluje to:

Import re
tekst = str(input('wprowadź test:')
cyfra = r'\d'
search = re.search(cyfra, test)

If search:
    cyfra = search.group()
    print ('cyfra: ', cyfra) 
else: print ('wyraz:', tekst) 

Byłbym wdzięczny jeśli ktoś mógłby napisać jak chociaż zacząć i jakie warunki powinny być postawione? Podobno proste zadanie a całkowicie nie umiem sobie poradzić i zrozumieć jak działa swift case.

1

Taki POC:

try:
	text = int(input())
	print("Number")
except ValueError:
	print("Text")

Pytanie, czy 042, to poprawna liczba? try się wtedy wykonuje i sprawdzamy też czy float?

EDYCJA:
motto:

Bez regexa będzie ciężko to podzielić na cyfry i słowa. Łatwiej byłoby na cyfry i litery.

A powyżej to niedoczytanie, topornie robimy tak:

text = input("Enter text: ")

strings = []

digits = []

for ch in text:
	if ch.isalpha():
		strings.append(ch)
	elif ch.isdigit():
		digits.append(ch)
if strings:
	print("Alphanumeric: ", "".join(strings))
if digits:
	print("Number: ", "".join(digits))

Profit: uczymy się list, metod na stringach i co jest True i False w Pythonie.
https://www.tutorialspoint.com/join-function-in-python
https://docs.python.org/3/tutorial/datastructures.html

1

Jeśli to mają być faktycznie cyfry i słowa, to możesz np. tak:

import re

text = input("Wprowadź tekst: ")

for item in re.findall(r"\d|\D+", text):
    print(f"{'Cyfra' if str.isnumeric(item) else 'Wyraz'}: {item}")

Jeśli to nie ma być cyfra, tylko liczba, to zamień \d na \d+ i oczywiście słowo "Cyfra" na słowo "Liczba".

1 użytkowników online, w tym zalogowanych: 0, gości: 1