DEV Community

Guru prasanna
Guru prasanna

Posted on

Python Day-21 String functions logic using loops

1) replace(): Returns a string where a specified value is replaced with a specified value.

txt = "I like bananas"
already = "bananas"
new = "apples"

l = len(already) # l = 7
start = 0 
end = l 
while end<=len(txt):
    if txt[start:end] == 'bananas':
        print(txt[:start],new)
    start+=1
    end+=1
Enter fullscreen mode Exit fullscreen mode

Output:

I like  apples
Enter fullscreen mode Exit fullscreen mode

--> In Python, everything is an object.
--> Every different object has different memory space.
--> String is Immutable:
--> Immutable: Non-changeable - மாறாது.
--> If we try to edit an existing string, it wont get changed. Instead, a new memory will be created for storing the new value.
-->Identical strings can refer to the same memory.

Example:

country1 = 'India'
country2 = 'India'
country3 = 'India'
country4 = 'India'
print(id(country1))
print(id(country2))
print(id(country3))
print(id(country4))
country1 = "Singapore"
print(id(country1))
Enter fullscreen mode Exit fullscreen mode

Output:

137348796892288
137348796892288
137348796892288
137348796892288
137348795520944
Enter fullscreen mode Exit fullscreen mode

So for the last print statement a new memory has been created and string cannot be changed.

2) Difference between rfind() and rindex():
Searches the string for a specified value and returns the last position of where it was found.
Example:1

txt = "Mi casa, su casa."

x = txt.rfind("basa")
print(x) 
x = txt.rindex("basa")
print(x)
Enter fullscreen mode Exit fullscreen mode

Output:

-1
ValueError: substring not found
Enter fullscreen mode Exit fullscreen mode

-->In rfind() if string not found it returns -1.
-->In rindex() if string not found it returns valueError.

Example:2(Logic)

txt = "Python is my favourite language"
key = 'my'
l = len(key)
start = len(txt) - l
end = len(txt)

while start >= 0:
    if txt[start:end] == key:
        print(start)
        break
    start -= 1
    end -= 1
else:
    print('-1 or ValueError')
Enter fullscreen mode Exit fullscreen mode

Output:

10
Enter fullscreen mode Exit fullscreen mode

3) split(): Splits the string at the specified separator, and returns a list.

txt = "Today is Wednesday"
word = ''
start = 0
i = 0 
while i<len(txt):
    if txt[i]==' ':
        print(txt[start:i])
        start = i+1
    elif i == len(txt)-1:
        print(txt[start:i+1])
    i+=1
Enter fullscreen mode Exit fullscreen mode

Output:

Today
is
Wednesday
Enter fullscreen mode Exit fullscreen mode

Top comments (0)