עבור לתוכן

python - דרושה עזרה

Featured Replies

פורסם

כחלק מתרגיל , המטרה שלי היא :

עליך לבנות מערכת אשר קולטת מן המשתמש מילים.

לצורך הפסקת קלט המילים, יכניס המשתמש את המילה STOP.

לאחר מכן, יתבקש המשתמש להכניס מילה לחיפוש.

באם המילה לא קיימת (לא הוכנסה בחלק הראשון) יודפס: did not find word

באם המילה קיימת יש להדפיס שתי הודעות (אינדקס מתחיל ב-0):

  1. את מיקום המילה ברשימה (לפי סדר הקלט המקורי של המשתמש):

found word in list at index <index>

  1. את מיקום המילה במילון (מילון אשר נוצר ע"י המילים אשר הכניס המשתמש בחלק הראשון)

found word in sorted list at index <index>

זה מה שכתבתי עד עכשיו:

h1=[]

word=raw_input ("enter word into dictionary\n")

while word!="stop":

h1.append (word)

word=raw_input ("enter word into dictionary\n")

h2=h1

h1.sort ()

word2=raw_input ("enter word to look in dictionary\n")

wordind=word2 in h1

if wordind==0:

print "did not find word"

print h2.index (wordind)

print h1.index (wordind)

נערך על-ידי quantum03

פורסם

תבדוק בדיוק מה עושה האופרטור in ומה עושה הפונקציה index.

חוץ מזה, שתי הערות:

א. הפעולה h2=h1 רק גורמת לכך ש-h2 מצביע לאותה רשימה כמו h1. כלומר כל שינוי ברשימה h1 הוא גם שינוי ב-h2. אם אתה רוצה להעתיק את הרשימה אתה צריך לעשות (h2 = list(h1.

ב. כשאתה כותב קוד בפורום, שים אותו בתוך טג קוד כדי שיהיה יותר קריא.

פורסם

שם לב - יש פתרון למטה. אם אתה לא מעוניין בפתרון אל תסתכל בסוף ההודעה

כמה דברים שאתה צריך לשם לב אליהם:

1. צורת השימוש בin. באופן הפשטני ביותר זה: command x in y

כשy הוא interable (למשל - רשימה) ו-x הוא object.

הcommand יכולה יכולה IF,FOR,WHILE ועוד והתוצאות יהיו קצת אחרות בכל אחת מהן

זה בסך הכל די אינטואיטיבי (פשוט המשמעות באנגלית) אבל אני מציע לך לקרוא על זה כדי להבין איך זה עובד מאחורי הקלעים.

2. השמה של רשימות. שם לב שרשימה היא אובייקט.

כשאתה עושה list1 = list2 אתה לא מעתיק את רשימה 2 לתוך רשימה 1. מה שאתה עושה זה בעצם אומר שגם רשימה2 וגם רשימה1 יצביעו על אותה רשימה ששמורה בזיכרון.

בשביל להעתיק את הרשימה אתה צריך לעשות list1 = list2[:] או כמו ששניצל אמר list1 = (list)list2.

3. שמות של משתנים.. בחייך.. h1? זה פייתון.. אני רוצה לקרוא את זה כמו שאני קורא ספר.. :)


dictionary=[]
word=raw_input ("enter word into dictionary\n")
while word!="stop":
dictionary.append(word)
word=raw_input ("enter word into dictionary\n")

searchWord=raw_input("enter word to look in dictionary\n")
if searchWord not in dictionary:
print "did not find word"
else:
print dictionary.index(searchWord)
print sorted(dictionary).index(searchWord)

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים