Strange behaviour with a for loop.
Sean Murphy
mhysnm1964 at gmail.com
Sat Jan 4 00:54:42 EST 2014
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 at 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
More information about the Python-list
mailing list