Re: [Tutor] Please help, the program is not behaving as I want
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
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
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
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
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
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