Re: [Tutor] Please help, the program is not behaving as I want

2011-05-17 Thread Prasad, Ramit
Start solving the problem by viewing the text around what is being returned. 
Look at the +- 10-100 characters from what is being returned.

Where exactly on the page is the return coming from? Is this centered near 
where you expected it? If not, what could be causing that? If it is actually 
close (and not just an error that is returning something that looks close but 
is actually not related) to what you want then why are the boundaries for the 
slice not what you expect? Play around with the boundaries and see if you can 
get it closer. Goldstein's second email has narrowed down some of your 
problems, if you cannot find it.

Since you are doing text matches, be careful of case. What if WAter is typed 
instead of Water or water (as Andre noted) is typed?


Ramit



Ramit Prasad | JPMorgan Chase Investment Bank | Currencies Technology
712 Main Street | Houston, TX 77002
work phone: 713 - 216 - 5423

From: tutor-bounces+ramit.prasad=jpmchase@python.org 
[mailto:tutor-bounces+ramit.prasad=jpmchase@python.org] On Behalf Of I. 
Dooba
Sent: Tuesday, May 17, 2011 11:54 AM
To: tutor@python.org
Subject: Re: [Tutor] Please help, the program is not behaving as I want

Thanks, Joel Goldstick

There is no error message.
But the program is returning incomplete or too many characters.  For example, 
instead of "Halal" it will return "l Hala"
or "nol" depending on the length of the word the user inputs.

Since I can't predict the words the user will search for, I'm finding it 
difficult to tackle the problem.
___
I. Dooba
Hybrid Intelligence & Digital Infrastructure Research Group
Universiti Teknologi PETRONAS
+6014 644 5086
ibraheem_g01...@utp.edu.my<mailto:ibraheem_g01...@utp.edu.my>



This communication is for informational purposes only. It is not
intended as an offer or solicitation for the purchase or sale of
any financial instrument or as an official confirmation of any
transaction. All market prices, data and other information are not
warranted as to completeness or accuracy and are subject to change
without notice. Any comments or statements made herein do not
necessarily reflect those of JPMorgan Chase & Co., its subsidiaries
and affiliates.

This transmission may contain information that is privileged,
confidential, legally privileged, and/or exempt from disclosure
under applicable law. If you are not the intended recipient, you
are hereby notified that any disclosure, copying, distribution, or
use of the information contained herein (including any reliance
thereon) is STRICTLY PROHIBITED. Although this transmission and any
attachments are believed to be free of any virus or other defect
that might affect any computer system into which it is received and
opened, it is the responsibility of the recipient to ensure that it
is virus free and no responsibility is accepted by JPMorgan Chase &
Co., its subsidiaries and affiliates, as applicable, for any loss
or damage arising in any way from its use. If you received this
transmission in error, please immediately contact the sender and
destroy the material in its entirety, whether in electronic or hard
copy format. Thank you.

Please refer to http://www.jpmorgan.com/pages/disclosures for
disclosures relating to European legal entities.___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Please help, the program is not behaving as I want

2011-05-17 Thread Joel Goldstick
On Tue, May 17, 2011 at 12:54 PM, I. Dooba  wrote:

> Thanks, Joel Goldstick
>
> There is no error message.
> But the program is returning incomplete or too many characters.  For
> example, instead of "Halal" it will return "l Hala"
> or "nol" depending on the length of the word the user inputs.
>
> Since I can't predict the words the user will search for, I'm finding it
> difficult to tackle the problem.
> ___
> I. Dooba
> Hybrid Intelligence & Digital Infrastructure Research Group
> Universiti Teknologi PETRONAS
> +6014 644 5086
> ibraheem_g01...@utp.edu.my
>
>
> I haven't read the book you are using, so I don't know what lessons they
are trying to teach in this example.  However, you should be aware that if
you read the input into a variable first, then do the .find() method
separately on the next line, you can later find out how long the word your
user typed (google python length of string if you don't know how).  Use this
length value to add to the start of your index so that you can start your
result at the beginning of Halal or Haram.  Then at least, if the word is in
your list you will get the answer you expect.

> ___
> Tutor maillist  -  Tutor@python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
>


-- 
Joel Goldstick
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Please help, the program is not behaving as I want

2011-05-17 Thread I. Dooba
Thanks, Joel Goldstick

There is no error message.
But the program is returning incomplete or too many characters.  For
example, instead of "Halal" it will return "l Hala"
or "nol" depending on the length of the word the user inputs.

Since I can't predict the words the user will search for, I'm finding it
difficult to tackle the problem.
___
I. Dooba
Hybrid Intelligence & Digital Infrastructure Research Group
Universiti Teknologi PETRONAS
+6014 644 5086
ibraheem_g01...@utp.edu.my
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Please help, the program is not behaving as I want

2011-05-17 Thread Joel Goldstick
On Tue, May 17, 2011 at 11:20 AM, I. Dooba  wrote:

> I'm new to programming and have decided to start with Python following the
> advice of experts including Eric S. Raymond.
> So far I've learnt quite a lot from this list.
>
> However, I've the following problem.
>
> The program was designed (as part of my practice with Head First
> Programming) to check whether an ingredient is Halal or Haram.
> I've a simple table online where some ingredients are either halal or
>  haram.
>

You don't have a simple table in this webpage.  You should use 'View Source"
from your browser to actually see what your program is reading.  What you do
have quite far down are words like this between  tags:

 
 
Water Halal
Ethanol Halal
Blood Haram
Alcohol Haram
Benzoic Acid Halal



>
> For example, if the user enters "water" the program is supposed to tell him
> that it's halal;
> but it's returning ">" and other characters I don't want to see.
>
> What am I doing wrong?
>
> import urllib.request
>
> this gets access to  the webpage

> page = urllib.request.urlopen("
> http://halalingredients.theparleyonline.com/";)
>

this reads the whole page into your text variable

> text = page.read().decode("utf8")
>
>
this lets you type in a word, and uses that word to see if it can find it in
the text.  If it does, it returns the index where it finds the start of the
word

> halal_haram_status = text.find(input("Enter the ingredient:  "))
>

if it can't find a match it will return -1

This is strange.  I believe you want to add the length of the word you input
plus 1 (for the space) to the index you found above.

> begin_final_status = halal_haram_status + 3
>

This is ok since halal and haram are both 5 characters long

> end_final_status = begin_final_status + 5
> status = text[begin_final_status:end_final_status]
> print(status)
>
>
>
Be careful to type the word exactly as printed.  If you the a word that is
not in your list, you might get what looks like nonsense since it will just
look to the 5 characters after the word you give it to find

> ___
> Tutor maillist  -  Tutor@python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
> Since I'm on my lunch break I thought I'd dig into this


-- 
Joel Goldstick
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Please help, the program is not behaving as I want

2011-05-17 Thread Andre Engels
I am not able to check your code (I get an error message about the
usage of urllib, but that might be a difference in Python
installations); however, my first guess is that you neglected to take
case into account: The page contains the text "Water", not "water", so
if you input "water", halal_haram_status will be -1.

As another remark, find() will give the value of the _beginning_ of
the match, thus when all goes right, what is returned will contain
part of the text sought rather than "Halal" or "Haram" - you will get
"er Ha" for water, "anol " for ethanol and "k cho" for pork chops
(also, ethanol is the same as alcohol, so I guess it should be haram).

On Tue, May 17, 2011 at 5:20 PM, I. Dooba  wrote:
> I'm new to programming and have decided to start with Python following the
> advice of experts including Eric S. Raymond.
> So far I've learnt quite a lot from this list.
> However, I've the following problem.
> The program was designed (as part of my practice with Head First
> Programming) to check whether an ingredient is Halal or Haram.
> I've a simple table online where some ingredients are either halal or
>  haram.
> For example, if the user enters "water" the program is supposed to tell him
> that it's halal;
> but it's returning ">" and other characters I don't want to see.
> What am I doing wrong?
> import urllib.request
> page =
> urllib.request.urlopen("http://halalingredients.theparleyonline.com/";)
> text = page.read().decode("utf8")
>
> halal_haram_status = text.find(input("Enter the ingredient:  "))
> begin_final_status = halal_haram_status + 3
> end_final_status = begin_final_status + 5
> status = text[begin_final_status:end_final_status]
> print(status)
>
> ___
> Tutor maillist  -  Tutor@python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
>



-- 
André Engels, andreeng...@gmail.com
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Please help, the program is not behaving as I want

2011-05-17 Thread Joel Goldstick
On Tue, May 17, 2011 at 11:20 AM, I. Dooba  wrote:

> I'm new to programming and have decided to start with Python following the
> advice of experts including Eric S. Raymond.
> So far I've learnt quite a lot from this list.
>
> However, I've the following problem.
>
> The program was designed (as part of my practice with Head First
> Programming) to check whether an ingredient is Halal or Haram.
> I've a simple table online where some ingredients are either halal or
>  haram.
>
> For example, if the user enters "water" the program is supposed to tell him
> that it's halal;
> but it's returning ">" and other characters I don't want to see.
>
> What am I doing wrong?
>
> import urllib.request
>
> page = urllib.request.urlopen("
> http://halalingredients.theparleyonline.com/";)
> text = page.read().decode("utf8")
>
> halal_haram_status = text.find(input("Enter the ingredient:  "))
> begin_final_status = halal_haram_status + 3
> end_final_status = begin_final_status + 5
> status = text[begin_final_status:end_final_status]
> print(status)
>
>
> __


Can you copy and paste the error message traceback that you get?

> _
> Tutor maillist  -  Tutor@python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
>


-- 
Joel Goldstick
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor