NikoRan
NikoRan

Reputation: 41

how to split string from a integer in python?

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

Answers (2)

krishna
krishna

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

Gaspar Neto
Gaspar Neto

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

Related Questions