Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #63116 > unrolled thread

Re: Strange behaviour with a for loop.

Started bySean Murphy <mhysnm1964@gmail.com>
First post2014-01-04 16:54 +1100
Last post2014-01-04 16:54 +1100
Articles 1 — 1 participant

Back to article view | Back to comp.lang.python

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: Strange behaviour with a for loop. Sean Murphy <mhysnm1964@gmail.com> - 2014-01-04 16:54 +1100

#63116 — Re: Strange behaviour with a for loop.

FromSean Murphy <mhysnm1964@gmail.com>
Date2014-01-04 16:54 +1100
SubjectRe: Strange behaviour with a for loop.
Message-ID<mailman.4896.1388820668.18130.python-list@python.org>
Thanks everyone.

Mark thanks for the correction on the ':'. Since I didn't cut and copy, rather typed it out. Errors crept in. :-)

another question in relation to slicing strings. If you want to get a single character, just using the index position will get it. If I use the following, shouldn't it also work? when I use Python 3.3, it didn't provide anything.

a = "test.txt"
print a[3]

result is:

't


print a[3:1]

Nothing is printed. 

print a[3:2]


Nothing is printed.

print a[3:-1]

t.tx is printed.


Why doesn't the positive number of characters to be splice return anything while the negative value does?

sorry about these basic questions. I do like the splice feature within Python. Also what is the best method of testing for a blank string?

end of paragraph line 1 


new paragraph of line 1.


The above example text is what I want to test for. I am planning to either load the whole file in as a single chunk of memory using fp.read() or store it into an array by using fp.readlines(). The first option I see being useful because you can create a regular expression to test for multiple '\n'. While in an array (list) I would have to test for a blank line which I assume would be "".

Any suggestions on this would be welcomed.

Sean 



print a[

On 04/01/2014, at 4:38 PM, Mark Lawrence <breamoreboy@yahoo.co.uk> wrote:

> On 04/01/2014 04:03, Sean Murphy wrote:
>> Hello all.
>> 
>> This is a newly question. But I wish to understand why the below code is providing different results.
>> 
>> import os, sys
>> 
>> 
>> if len(sys.argv) > 2:
>>   filenames = sys.argv[1:]
>> else
>>   print ("no parameters provided\n")
>>   sys.edit()
>> 
>> for filename in filenames:
>>   print ("filename is: %s\n" %filename)
>> 
>> The above code will return results like:
>> 
>> filename is test.txt
>> 
>> If I modify the above script slightly as shown below, I get a completely different result.
>> 
>> if len(sys.argv) > 2:
>>   filenames = sys.argv[1]
>> else
>>   print ("no parameters provided\n")
>>   sys.exit()
>> 
>> for filename in filenames:
>>   print ("filename is:  %s\n" % filename)
>> 
>> The result is the filename is spelled out a character at a time. The bit I am missing is something to do with splicing or referencing in Python.
>> 
>> Why am I getting different results? In other languages I would have got the whole content of the element when using the index of the array (list).
>> 
>> 
>> Sean
>> filename is: t
>> filename
>> 
> 
> As you've already had answers I'd like to point out that your test for len(sys.argv) is wrong, else is missing a colon and sys.edit() is very unlikely to work :)
> 
> -- 
> My fellow Pythonistas, ask not what our language can do for you, ask what you can do for our language.
> 
> Mark Lawrence
> 
> -- 
> https://mail.python.org/mailman/listinfo/python-list

[toc] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web