Reputation: 41
My input needs to be for example name surname, street name 22b, 10000 Zagreb
and it need to output like this:
name and surname: name surname
Street: street name
street number: 22
house number: b
postal code: 100000
place: zagreb
and this is my code
whole_string =input("Person: ")
string_list = whole_string.split(", ")
split_street_and_street_number = string_list[1].split(" ")
postal_code_and_city = string_list[2].split(" ")
print(f"name and surname: {string_list[0]}")
print(f"street: {split_street_and_street_number[0]}")
print(f"street number: {split_street_and_street_number[1]}")
print(f"postal code: {postal_code_and_city[0]}")
print(f"city: {postal_code_and_city[1]}")
Upvotes: 0
Views: 179
Reputation: 1029
Please check out this.
import re
text = '22b'
street_number =" ".join(re.findall("[0-9]+", text))
house_number =" ".join(re.findall("[a-zA-Z]+", text))
print(street_number)
print(house_number)
Upvotes: 1
Reputation: 13
You can find the index of the first letter and split the string using that index:
def find_index_of_first_letter(text):
for index, value in enumerate(text):
try:
int(value)
except ValueError:
return index
print('No letter in the text')
text = '22b'
first_letter = find_index_of_first_letter(text)
number, letters = text[:first_letter], text[first_letter:]
Upvotes: 1