Hello, Here is the whole exercise with examples. # By Sam the Great from forums # That freaking superhero has been frequenting Udacity # as his favorite boss battle fight stage. The 'Udacity' # banner keeps breaking, and money is being wasted on # repairs. This time, we need you to proceduralize the # fixing process by building a machine to automatically # search through debris and return the 'Udacity' banner # to the company, and be able to similarly fix other goods. # Write a Python procedure fix_machine to take 2 string inputs # and returns the 2nd input string as the output if all of its # characters can be found in the 1st input string and "Give me # something that's not useless next time." if it's impossible. # NOTE: # If you are experiencing difficulties taking # this problem seriously, please refer back to # "Superhero flyby", the prequel, in Problem Set 11. # TOOLS: # if statement # while loop # string operations # Unit 1 Basics # BONUS: # # 5***** # If you've graduated from CS101, # Gold # try solving this in one line. # Stars! # def fix_machine(debris, product): ### WRITE YOUR CODE HERE ### ### TEST CASES ### print "Test case 1: ", fix_machine('UdaciousUdacitee', 'Udacity') == "Give me something that's not useless next time." print "Test case 2: ", fix_machine('buy me dat Unicorn', 'Udacity') == 'Udacity' print "Test case 3: ", fix_machine('AEIOU and sometimes y... c', 'Udacity') == 'Udacity' print "Test case 4: ", fix_machine('wsx0-=mttrhix', 't-shirt') == 't-shirt' Roelof
> To: tutor@python.org > From: alan.ga...@btinternet.com > Date: Sun, 12 Jan 2014 00:45:11 +0000 > Subject: Re: [Tutor] another better way to do this ? > > On 11/01/14 21:24, Roelof Wobben wrote: > > > I have two strings a and b > > > > Now I have to check if the characters of b are all in a. > > But they do have to be in the same order. > > I'm not sure exactly what you mean? Can you give some examples of > data that pass and that fail the criteria? > > Your algorithm below might meet one definition of the spec but > its not valid code since it uses return but is not a function. > > > length = len(b) > > start = 1 > > while start < length : > > check = a.find (b[start]) > > if check == -1 : > > return False > > start = start + 1 > > return True > > Problems I see are: > 1) you start testing at b[1] not b[0] > 2) you don't check if the letters are in the same sequence in a as in b > 3) you probably could tidy it up using a for loop over b rather than > indexing > > > But according to the site this can be solved in a one-liner. > > That depends on the spec. > And have you covered regular expressions? That is probably one > way to do a one-liner... > > But just because you can do it in one line doesn't mean you > should. It's better for code to be readable than short. > > > HTH > -- > Alan G > Author of the Learn to Program web site > http://www.alan-g.me.uk/ > http://www.flickr.com/photos/alangauldphotos > > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > https://mail.python.org/mailman/listinfo/tutor
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor