Sujet : Re: Flubbed it in the second interation through the string: range error... HOW?
De : list1 (at) *nospam* tompassin.net (Thomas Passin)
Groupes : comp.lang.pythonDate : 29. May 2024, 06:14:07
Autres entêtes
Message-ID : <mailman.54.1716960627.2909.python-list@python.org>
References : 1 2 3
User-Agent : Mozilla Thunderbird
Your code is unreadable. The lines have all run together. And after that, kindly explain what you want your code sample to do. "Process" doesn't say much.
From what I can make out about what you are trying to do, you would do better to index through your string with
for i, chr in enumerate(name):
# do something with the character
Also, it's 2024 ... time to start using f-strings (because they are more readable than str.format())
On 5/29/2024 12:33 AM, Kevin M. Wilson via Python-list wrote:
The following is my effort to understand how to process a string, letter, by letter:
def myfunc(name): index = 0 howmax = len(name) # while (index <= howmax): while (index < howmax): if (index % 2 == 0): print('letter to upper = {}, index {}!'.format(name[index], index)) name = name[index].upper() print('if block {} and index {}'.format(name[index], index)) elif (index % 2 > 0): print(index) print('Start: elseif block, index is {}, letter is {}'.format(index, name)) # print('letter to lower = {}'.format(name[index])) # print('Already lowercase do noting: name = {}'.format(name[index])) index += 1 # index = name.upper()
return name
myfunc('capitalism')
Error message: Not making sense, index is 1, letter s/b 'a'letter to upper = c, index 0!
if block C and index 0
1
Start: elseif block, index is 1, letter is C
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
Cell In[27], line 21
17 # index = name.upper()
19 return name
---> 21 myfunc('capitalism')
Cell In[27], line 8, in myfunc(name)
6 while (index < howmax):
7 if (index % 2 == 0):
----> 8 print('letter to upper = {}, index {}!'.format(name[index], index))
9 name = name[index].upper()
10 print('if block {} and index {}'.format(name[index], index))
IndexError: string index out of range***************************************************
So, I'm doing something... Stupid!!
***************************************************
"When you pass through the waters, I will be with you: and when you pass through the rivers, they will not sweep over you. When you walk through the fire, you will not be burned: the flames will not set you ablaze."
Isaiah 43:2