+ 1
why does this code only work for one case?. python
https://www.sololearn.com/coach/74?ref=app https://code.sololearn.com/ccpte48rG59k/?ref=app n=str(input()) a=0 b="" for i in range(len(n)): if n[len(n)-i-1]== ("=" or "/"): a+=i break else: continue for i in range(len(n)-a,len(n)): b+=str(n[i]) print(b)
27 Answers
+ 7
i dont understand how changing the literal to list changes anything. edited the code to this
n=str(input())
a=[]
b=""
for i in range(len(n)):
if n[len(n)-i-1]== "=" or n[len(n)-i-1]=="/":
a.append(i)
break
else:
continue
for i in range(len(n)-a[0],len(n)):
b+=str(n[i])
print(b)
and it worked for all cases. i also tried fixing the logical error first and that didnt work, so the only problem was having the number not in a list. i still dont understand how changing a single number to a list does anything, but thanks anyway!!!
Rik Wittkopp visph Eddy M Mir Abir Hossain Atul
+ 5
I think, you have to try on PC.
Because I have problems with
Sololearn ide to take user input.
+ 4
Mir Abir Hossain and Sazal Jain are right: left side of `n[len(n)-i-1]== ("=" or "/")` is right, but `("=" or "/")` always gives "=" (`or` operator: if value from the left converted to Boolean (bool) is True (in case of strings (str), if contains at least one character), return it; otherwise return the value from the right).
If you fix it, your code is working (although you wrote a lot of unnecessary code which can be shortened using slices and other things you possibly do not know yet and language aspects).
+ 3
No one knows about that
Please show your attempt and specify the language too
+ 3
There are some syntax mistake and some logical mistake.
if n[len(n)-i-1]==("=" or "/"):
should be -->
if n[len(n)-i-1]=="=" or n[len(n)-i-1]=="/"
(This is causing you no output)
and logical mistake was a+=i.
Instead you can use -->
a=[]
a.append(i)
That way you can keep track of all the '/' and '='
(This is not a solution. Just figuring out what is going wrong in your code.)
+ 3
Syntax mistake
It should be n[len(n)-1-i]=="=" or n[len(n)-1-i]=="/":
+ 2
what is the task description/requirements? I cannot access the code coach link ^^
+ 2
visph
Task details attached for you:
You and your friends like to share YouTube links all throughout the day. You want to keep track of all the videos you watch in your own personal notepad, but you find that keeping the entire link is unnecessary.
Keep the video ID (the combination of letters and numbers at the end of the link) in your notepad to slim down the URL.
Task:
Create a program that parses through a link, extracts and outputs the YouTube video ID.
Input Format:
A string containing the URL to a YouTube video. The format of the string can be in "https://www.youtube.com/watch?v=kbxkq_w51PM" or the shortened "https://youtu.be/KMBBjzp5hdc" format.
Output Format:
A string containing the extracted YouTube video id.
Sample Input:
https://www.youtube.com/watch?v=RRW2aUSw5vU
Sample Output:
RRW2aUSw5vU
+ 2
# with re module:
import re
url = input()
print(re.search('\w+#x27;,url).group(0))
+ 2
Central Processing Unit
Might I suggest that your code could be completed using easier logic.
visph has provided a simple solution.
Or you could consider this:
print((input()[-11:]))
+ 2
Rik Wittkopp your solution is quite simpler, but requires to be sure that video id is always 11 char long ;)
+ 2
Rik Wittkopp that may be the case... but who knows? only youtube has the response ^^
+ 2
Congrats! Central Processing Unit
changing into list made the code work because you used a+=i. i values are different from a values in your previous code. Suppose your i values are 5 and 7. But your a value is 12 (5+7) so in the next for loop len(n)-a is creating len(n)-12, whereas you needed len(n)-7. Check this wrong code and output to get an idea how it went wrong.
https://code.sololearn.com/cEM5HFgLJDHR/?ref=app
+ 2
Deepika Pathak
Spam is not welcome in the Q&A thread.
Please delete your posts and reserve this thread for coding related questions only.
Treat Sololearn with respect and you will be treated with respect also
+ 2
Try this =>
import re
takeLink =list(input())
stri="".join(takeLink )
backSlash=0
if re.search("com",stri):
for i in range(len(takeLink)):
if takeLink[i]==r'=':
break
print("".join(takeLink[i+1:]))
else:
for i in range(len(takeLink )):
if takeLink[i]==r'/':
backSlash +=1
if backSlash == 3:
break
print ("".join(takeLink[i+1:]))
+ 1
Atul i have put the code in.
+ 1
Tried some other strings:
#"==abc" >>> "bc==abc"
#"a=b=c" >>> "=b=c"
#"=abc=" >>> "abc="
#"a=bc=" >>> "bc="
#"abc==" >>> "="
+ 1
visph
That's true, I will need to look into that further.
It was an assumption I made at the time I was looking for a solution
+ 1
i dont really know whats wrong with my code. in the test cases. sometimes it works and sometimes it has no output. no clue whats going on here.
Rik Wittkopp visph Eddy M Atul
+ 1
visph 😂