This question already has answers here:
How to check for palindrome using Python logic
(35 answers)
Closed 7 years ago.
I'm trying to compare a string and check if it is palindrome or not. I'm using the next method:
name = input("Enter your string")
name1 = name[-1::-1]
if(name==name1):
print("True")
else:
print("False")
but it always shows me False
has anyone idea why its not working properly?
Because you are starting at the last character of the string. You want to use name[::-1] instead. That will take the entire string from beginning to end with a step of -1, meaning that it will be reversed.
Related
This question already has answers here:
Replace characters in string from dictionary mapping
(2 answers)
Closed 2 years ago.
Hey guys I am making an encoding system in which each letter gets converted into predefined gibberish.
For example, 'a' has already been set as 'ashgahsjahjs'.
But using if a in data: print("ashgahsjahjs") executes this for one time only, if there are more than one A in the word, it would not print them with gibberish.
Using a while loop does not work either as it keeps printing indefinitely, so is there a way to print the gibberish each time there is a new occurrence of a letter.
you could try indexing the string.
your_string = "are you an apple?"
for i in range(len(your_string)):
if "a" == your_string[i]:
print("Found a at position {pos}".format(pos=i))
else:
print("Nope")
This question already has answers here:
Changing one character in a string
(15 answers)
Closed 2 years ago.
A question I came up with:
I'm trying to write a function that replaces the first and the fourth letter of a word with the same letter just capitalized.
Currently I am working with the string.replace() method. It works great for most of the time, except when there is an equal letter to the one on the fourth place before it.
Example: "bananas"
What I would expect the program to do is to return "BanAnas" but for a reason it return "BAnanas". If I use the word "submarine" it would just work fine, "SubMarine".
The code I wrote is this:
def old_macdonald(name):
name = name.replace(name[0], name[0].upper(), 1)
name = name.replace(name[3], name[3].upper(), 1)
return name
Can someone explain why this is happening?
It's because name.replace(name[3], name[3].upper(), 1) looks for the first character matching name[3]. Stop using replace altogether, chop up your string by slicing.
This question already has answers here:
How to test multiple variables for equality against a single value?
(31 answers)
Closed 3 years ago.
How can I make Python quit if a list contains a particular word?
text = input("Input text: ")
if["exit","quit","close"] in text:
Quit()
It's the other way around
if text in ["exit","quit","close"]:
You can read it as pseudo English, you are checking if the string is in the list.
If you want to check if part of the input is in the list you can use any
if any(x in ["exit", "quit", "close"] for x in text.split(' ')):
You've got it backwards. Try
if text in ["...","..."]:
Think of it as "If this is in that".
This question already has answers here:
Remove final character from string
(5 answers)
Closed 4 years ago.
I'm trying to delete the last character of a string, and every documentation I can find says that this works.
string = 'test'
string[:-1]
print(string)
However, whenever I try it, my IDE tells me that line two has no effect, and when I run the code it outputs "test" and not "tes", which is what I want it to do. I think that the documentation I'm reading is about python 2 and not 3, because I don't understand why else this simple code wouldn't work. Can someone show me how to remove the last letter of a string in python 3?
new_string = string[:-1]
print(new_string)
You must save the string in the memory. When we assign a variable to the string without the last character, the variable then "stores" the new value. Thus we can print it out.
This question already has answers here:
How to test multiple variables for equality against a single value?
(31 answers)
How to check if a string contains an element from a list in Python
(8 answers)
Closed 5 years ago.
I'm a beginner in python and trying to achieve the following - need help pls...
In the below code snippet, it matches for ab but not for remaining two matches...Can anyone pls point what I'm missing.
I've a txt input which is captured in text.
for line in text:
parse = re.split('\s+', line)
print(parse)
if ("ab" or "yx" or "12") in line:
print("success")
continue
else:
print("failure")
The above code matches just "ab", it doesn't work for other matches like "yx" and "12". Don't know what I'm missing.
Thanks
I think you mean:
if "ab" in line or "yx" in line or "12" in line: