Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #77377
| Date | 2014-09-01 01:23 +0100 |
|---|---|
| From | MRAB <python@mrabarnett.plus.com> |
| Subject | Re: This could be an interesting error |
| References | <pm270ap6g01k6a5ip10ij1lgtebsrv00mr@4ax.com> <mailman.13668.1409523047.18130.python-list@python.org> <2jc70at4qcpqmbes72r2f0tsjk8up0j6mn@4ax.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.13672.1409531019.18130.python-list@python.org> (permalink) |
On 2014-09-01 01:04, Seymore4Head wrote:
> On Sun, 31 Aug 2014 16:10:27 -0600, Michael Torrie <torriem@gmail.com>
> wrote:
>
>>On 08/31/2014 03:02 PM, Seymore4Head wrote:
>>> def pigword(test):
>>> for x in range(len(test)):
>>> if test[x] in "AEIOUaeiou":
>>> stem = test [x:]
>>> prefix = test [:x]
>>> pigword = stem + prefix + "ay"
>>> print ("Stem ",stem)
>>> print ("Prefix",prefix)
>>> print (pigword)
>>> break
>>> return (pigword)
>>
>>So, what do you think will happen if the word contains no vowels? Where
>>is pigword defined?
>>
>>> for x in range(len(newex)):
>>> sentence = sentence + pigword(newex[x])+ " "
>>> print (sentence)
>>> wait = input (" Wait")
>>
>>You don't need to iterate over range(len(blah)). The standard idiom
>>when you need index as well as the item itself is to iterate over
>>enumerate(). Or if you don't need the index, just iterate directly.
>>You can iterate directly over the list, or the letters in the word,
>>optionally getting an index. It's much cleaner and less error prone.
>>Consider something like:
>>
>>def pigword(word):
>> for x,letter in enumerate(word):
>> # x is index (position), letter is the value at that index
>> if letter in "AEIOUaeiou":
>> ...
>>
>>for word in list_of_words:
>> sentence = sentence + pigword(word) + " "
>> ...
>>
>>That doesn't solve your little logic problem, though I think you can
>>figure that part out easily!
>>
> I am still kind of shooting in the dark.
>
> I wanted to try your example and it doesn't seem to work.
> This is the latest version of changes I have made so the entire
> program looks like this:
>
> newex='Hey buddy get away from my car'
> newex = newex.split()
> sentence=""
>
> print (newex)
> wait = input (" Wait")
>
> def pigword(test):
> for x in range(len(test)):
> if test[x] in "AEIOUYyaeiou":
> stem = test [x:]
> prefix = test [:x]
> pigword = stem + prefix + "ay"
> print ("Stem ",stem)
> print ("Prefix",prefix)
> print (pigword)
> break
> return (pigword)
>
> for x in range(len(newex)):
> sentence = sentence + pigword(newex[x])+ " "
> print (sentence)
> wait = input (" Wait")
>
> Trying to use your example
>>def pigword(word):
>> for x,letter in enumerate(word):
>> # x is index (position), letter is the value at that index
>> if letter in "AEIOUaeiou":
> BTW I added "AEIOUYyaeiou" y as a vowel.
>
> I tried changing:
> for x in range(len(test)):
> to
> for x in enumerate(test):
>
> That causes an error to popup in a different place. I don't
> understand why.
> Traceback (most recent call last):
> File "C:\Functions\piglatin.py", line 26, in <module>
> sentence = sentence + pigword(newex[x])+ " "
> File "C:\Functions\piglatin.py", line 15, in pigword
> if test[x] in "AEIOUYyaeiou":
> TypeError: string indices must be integers
>
Try printing out x. That should give you a clue!
> Since you included:
>>for word in list_of_words:
>> sentence = sentence + pigword(word) + " "
> I take it you anticipated a fault here. I don't understand why.
>
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
This could be an interesting error Seymore4Head <Seymore4Head@Hotmail.invalid> - 2014-08-31 17:02 -0400
Re: This could be an interesting error Seymore4Head <Seymore4Head@Hotmail.invalid> - 2014-08-31 17:07 -0400
Re: This could be an interesting error Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-08-31 22:38 +0100
Re: This could be an interesting error Seymore4Head <Seymore4Head@Hotmail.invalid> - 2014-08-31 18:04 -0400
Re: This could be an interesting error Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-08-31 23:26 +0100
Re: This could be an interesting error Seymore4Head <Seymore4Head@Hotmail.invalid> - 2014-08-31 18:42 -0400
Re: This could be an interesting error Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-09-01 00:21 +0100
Re: This could be an interesting error Seymore4Head <Seymore4Head@Hotmail.invalid> - 2014-08-31 20:08 -0400
Re: This could be an interesting error Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-09-01 01:56 +0100
Re: This could be an interesting error Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-09-01 12:53 +1000
Re: This could be an interesting error Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-09-01 07:34 +0100
Re: This could be an interesting error Ned Batchelder <ned@nedbatchelder.com> - 2014-08-31 22:12 -0400
Re: This could be an interesting error Seymore4Head <Seymore4Head@Hotmail.invalid> - 2014-08-31 22:54 -0400
Re: This could be an interesting error Larry Hudson <orgnut@yahoo.com> - 2014-08-31 21:55 -0700
Re: This could be an interesting error Chris Angelico <rosuav@gmail.com> - 2014-09-01 15:12 +1000
Re: This could be an interesting error Rustom Mody <rustompmody@gmail.com> - 2014-08-31 23:53 -0700
Re: This could be an interesting error MRAB <python@mrabarnett.plus.com> - 2014-08-31 22:53 +0100
Re: This could be an interesting error Seymore4Head <Seymore4Head@Hotmail.invalid> - 2014-08-31 18:07 -0400
Re: This could be an interesting error Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-09-01 12:12 +1000
Re: This could be an interesting error Seymore4Head <Seymore4Head@Hotmail.invalid> - 2014-08-31 22:13 -0400
Re: This could be an interesting error Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2014-09-01 19:25 +1200
Re: This could be an interesting error Michael Torrie <torriem@gmail.com> - 2014-08-31 16:10 -0600
Re: This could be an interesting error Seymore4Head <Seymore4Head@Hotmail.invalid> - 2014-08-31 18:31 -0400
Re: This could be an interesting error Seymore4Head <Seymore4Head@Hotmail.invalid> - 2014-08-31 20:04 -0400
Re: This could be an interesting error MRAB <python@mrabarnett.plus.com> - 2014-09-01 01:23 +0100
Re: This could be an interesting error Seymore4Head <Seymore4Head@Hotmail.invalid> - 2014-08-31 20:35 -0400
Re: This could be an interesting error Michael Torrie <torriem@gmail.com> - 2014-08-31 22:15 -0600
Re: This could be an interesting error Michael Torrie <torriem@gmail.com> - 2014-08-31 22:52 -0600
csiph-web