איך אפשר לפתור את התרגיל לפני שלמדנו מערכים דינמיים?
רמז: הסוד הוא שרשור מחרוזות
זה מה שאני נסיתי
""" The code ask from the user to enter
text in several lines and print it
in the opposite order when find empty line"""
print "enter taxt in several lines"
while True:
text = raw_input()
if text == '':break
text += "\n"
text = text[::-1]
print text
התוכנית רצה עד לאחר היציאה מהלולאה. לאחר מכן היא נעצרת ולא ממשיכה
כשנסיתי לדבג קיבלתי את ההודעה הבאה:
(Pdb) p
*** SyntaxError: SyntaxError('unexpected EOF while parsing', ('<string>', 0, 0, ''))
הי עמיר,
כרגע יש שתי בעיות בקוד:
הראשונה בשורה:
text = raw_input
נסה לחשוב מה קורה לטקסט כשמגיעים לשורה זו בפעם השניה.
הבעיה השניה בשורה:
text = text[::-1]
אבל אותה אתה כבר תראה לבד אחרי שתתקן את הראשונה
הי תקנתי את הקוד:
""" The code ask from the user to enter
text in several lines and print it
in the opposite order when find empty line"""
text = ''
print "enter taxt in several lines"
while True:
in_put = raw_input()
if in_put == '':break
text += in_put + "\n"
text = text[::-1]
print text
זה עובד טוב. אני לא רואה בעיה בשורה :
text = text[::-1]
“”"
answer 4
“”"
print “Enter the mishpat ’ and the end set the empty line”
total_lines=""
while True:
line=raw_input()
if line=="":break
total_lines= total_lines + line + ‘\n’
total_lines=total_lines.split("\n")
total_lines=total_lines[::-1]
for l in total_lines
print l
הי יוני,
בשביל להדביק קוד פה בפורום צריך להקיף אותו בשלושה סימני גרש הפוך (backtick), כלומר הסימן הזה `` רק שיופיע שלוש פעמים בשורה משלו, ואז שורה אחרי זה הקוד ואז בשורה חדשה שוב שלוש פעמים גרש הפוך.
ככה זה יוצא:
"""
answer 4
"""
print "Enter the mishpat and the end set the empty line"
total_lines=""
while True:
line = raw_input()
if line == "":
break
total_lines = total_lines + line + "\n"
total_lines=total_lines.split("\n")
total_lines=total_lines[::-1]
for l in total_lines:
print l
זה עובד אבל לדעתי אפשר להסתדר יופי גם בלי ה split והשורה עם המינוס אחד שכולכם אוהבים לכתוב
למשל אפשר לחבר את השורות הפוך כבר בתוך הלולאה כלומר לכתוב בתוך הלולאה:
total_lines = line + "\n" + total_lines
בצורה כזו ב total_lines
תקבל כבר את כל הטקסט בסדר שורות הפוך
ועמיר - הבעיה שהתרגיל ביקש להציג את השורות בסדר הפוך, אבל הקוד שלך הופך גם את סדר האותיות בכל שורה.
כלומר עבור הקלט:
one
two
three
four
נרצה לקבל:
four
three
two
one
ואילו התוכנית שלך מדפיסה:
ruof
eerht
owt
eno
להלן התיקון: (לקחתי את העצה שלך ()
""" The code ask from the user to enter
text in several lines and print it
in the opposite order when find empty line"""
text = ''
print "enter text in several lines"
while True:
in_put = raw_input()
if in_put == '':break
text = in_put + "\n" + text
print text