מחרוזת ורשימה - יסודות

להלן סדרת שאלות ותשובות. הן עוסקות בפעולות בסיסיות בשני סוגים של רצפים: מחרוזת ורשימה. 

 

בקליטת קלט באמצעות הפונקציה input ההנחה היא שמוכנס קלט תקין, אלא אם כן נאמר אחרת.  

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

הסימן ? משמעו ערך כלשהו.

בהצלחה!

 

152 * 173

השלימו את הקוד כך שידפיס את המילה Great.

s =

print(s)

s = ‘Great’

print(s)

השלימו את הקוד כך שידפיס רשימה שמופיעים בה המספר 3, הערך True, והמילה Great, בסדר זה. 

lst = 3 True ‘Great’

print(lst)

lst = [3, True, ‘Great’]

print(lst)

הוראה זו צריכה ליצור רשימה שיש בה שתי רשימות פנימיות. ההוראה שגויה. תקנו אותו. 

lst = [[5, 4] [8, 3]]

 

lst = [[5, 4], [8, 3]]

מה מדפיס קטע קוד זה?

s = “Don’t try me!”
lst = list(s)
print(lst)

[‘D’, ‘o’, ‘n’, “‘”, ‘t’, ‘ ‘, ‘t’, ‘r’, ‘y’, ‘ ‘, ‘m’, ‘e’, ‘!’]

מה האינדקס של התו a במחרוזת הזאת? יש במחרוזת שני תווי רווח. 

s = ‘I am third!’

תשובה: אינדקס 2. 

מה הערך המופיע באינדקס 3 ברשימה זו? 

lst = [3, 4, 5, 9]

תשובה: המספר 9. 

מה מדפיס הקוד הזה?

print(len(‘quite small’))

11

מה מדפיס הקוד הזה?

lst = [‘quite’, ‘ ‘, ‘small’]

print(len(lst))

3

השלימו את הקוד כך שידפיס את אורך הרשימה lst (כלומר מספר התווים בה).

lst = [‘what’, ‘is’, ‘my’, ‘length?’]

print()

lst = [‘what’, ‘is’, ‘my’, ‘length?’]

print(len(lst))

השלימו את הקוד כך שידפיס 11. לשאלה זו יש יותר מתשובה אחת.

s =

print(len(s))

s = ‘Eleven, yes’

print(len(s))

השלימו את הקוד כך שידפיס אורך של מחרוזת שהמשתמשת מכניסה.

print(s)

s = input(“Please enter a string: ‘)

print(len(s))

מה מדפיס הקוד הזה?

print(len([‘len’]))

1

מה מדפיס הקוד הזה?

print(len([[‘three’, ‘but’, ‘one’]]))

1

מה מדפיס הקוד הזה? בסוגריים מופיע גרש ולצדו גרש, ואין רווח ביניהם. 

print(len(”))

0

מה מדפיס הקוד הזה?

print(len([]))

0

מה מדפיס הקוד הזה?

print(len([[]]))

1

איזה ערך מוצב במשתנה result – הערך True או הערך False?

result = ‘the’ in ‘Riders in the storm’

תשובה: הערך True. 

איזה ערך מוצב במשתנה result – הערך True או הערך False?

s = ‘Riders in the storm’

result = ‘the’ in s

תשובה: הערך True. 

איזה ערך מוצב במשתנה result – הערך True או הערך False?

s = ‘Riders in the storm’

result = ‘The’ in s

תשובה: הערך False. 

איזה ערך מוצב במשתנה result – הערך True או הערך False? לפני המילה in מופיעה מחרוזת ריקה. 

s = ‘Riders in the storm’

result = ” in s

תשובה: הערך True. 

איזה ערך מוצב במשתנה result – הערך True או הערך False? 

s = ‘Riders in the storm’

result = ‘riders’ not in s

תשובה: הערך True. 

איזה ערך מוצב במשתנה result – הערך True או הערך False? 

s = ‘Riders in the storm’

result = ‘storm’ not in s

תשובה: הערך False. 

איזה ערך מוצב במשתנה result – הערך True או הערך False? 

result = ‘without’ in [‘with’, ‘or’, ‘without’, ‘you’]

תשובה: הערך True. 

איזה ערך מוצב במשתנה result – הערך True או הערך False? 

result = ‘within’ in [‘with’, ‘or’, ‘without’, ‘you’]

תשובה: הערך False. 

איזה ערך מוצב במשתנה result – הערך True או הערך False? 

lst = [‘with’, ‘or’, ‘without’, ‘you’]

result = ‘within’ not in lst 

תשובה: הערך True. 

הרצנו את הקוד הזה. המשתמשת הכניסה את המחרוזת ‘UK’. מה הודפס?

countries = [‘USA’, ‘UK’, ‘France’, ‘Germany’]
country = input(‘Please enter your destiny: ‘)
if country in countries:
    print(‘You can travel.’)
else:
    print(‘You cannot travel.’)
print(‘The End.’)

You can travel.

The End.

השלימו את הקוד כך שידפיס רק את התו השלישי במחרוזת s, כלומר את התו ‘a’.

s = ‘Example’

print(s)

s = ‘Example’

print(s[2])

השלימו את הקוד כך שידפיס רק את התו האחרון במחרוזת s, כלומר את התו ‘e’.

s = ‘Example’

print(s[-])

s = ‘Example’

print(s[-1])

מה מדפיס הקוד הזה? 

s = ‘always fifth’

print(s[5])

s

מה מדפיס הקוד הזה? 

s = ‘beyond’

print(s[20])

    print(s[20])

IndexError: string index out of range

תשובה: הודעת שגיאה. בהוראת ההדפסה נעשה נסיון לגשת לתו במחרוזת s הממוקם באינדקס החורג מגבולות האינדקסים המוגדרים במחרוזת זו.

השלימו את הקוד כך שידפיס רק את הערך השני ברשימה lst, כלומר הערך True.

lst = [7, True, ‘ok’]

print(lst)

lst = [7, True, ‘ok’]

print(lst[1])

השלימו את הקוד כך שידפיס רק את הערך השני לפני האחרון ברשימה lst, כלומר הערך True.

lst = [7, True, ‘ok’]

print(lst)

lst = [7, True, ‘ok’]

print(lst[-2])

מה מדפיס הקוד הזה? 

lst = [‘Houston’, ‘we’, ‘have’, ‘a’]

print(lst[9])

    print(lst[9])

IndexError: list index out of range

תשובה: הודעת שגיאה. בהוראת ההדפסה נעשה נסיון לגשת לערך ברשימה lst הממוקם באינדקס החורג מגבולות האינדקסים המוגדרים ברשימה זו.

מה מדפיס הקוד הזה? 

lst1 = [5, 4, 2]
lst2 = lst1
print(lst2[1])

4

קוד שגוי זה צריך להדפיס את התו ‘t’. מדוע הקוד שגוי? הציעו תיקון שאינו מוסיף שורות או מוחק  במפורש את הספרה העשרונית במספר 3.0.  

lst = [‘m’, ‘e’, ‘ ‘, ‘t’, ‘o’, ‘o’]

print(lst[3.0])

    print(lst[3.0])

TypeError: list indices must be integers or slices, not float

תשובה: הקוד שגוי כי אי אפשר להשתמש במספרים עשרוניים בתור אינדקסים. אפשר להמיר את 3.0 ל-3 באמצעות הפונקציה int. 

lst = [‘m’, ‘e’, ‘ ‘, ‘t’, ‘o’, ‘o’]

print(lst[int(3.0)])

השלימו את הקוד כך שיציב במשתנה lst רשימה שיש בה את הערך הראשון ברשימה lst1 והערך הראשון ברשימה lst2, בסדר זה.

lst1 = [5, 8, 3]

lst2 = [9, 7, 9]

lst =

lst1 = [5, 8, 3]

lst2 = [9, 7, 9]

lst = [lst1[0], lst2[0]]

השלימו את הקוד כך שידפיס רק את הערך הראשון ברשימה lst, כלומר את המספר 7.

lst = [7, True, ‘ok’]

print(lst[len(lst)])

lst = [7, True, ‘ok’]

print(lst[-len(lst)])

מה מדפיס קוד זה?

lst = [7, True, “something”]
if lst[1] == bool:
    print(‘Boolean.’)
else:
    print(‘Not boolean.’)

Not boolean.

מה מדפיס קוד זה?

lst = [7, True, “something”]
if not isinstance(lst[2], str):
    print(‘Not string.’)
else:
    print(‘String.’)

String.

מה מדפיס הקוד הזה?

seasons = [‘winter’, ‘spring’, ‘summer’, ‘autumn’]

print(seasons[2][3])

m

מה מדפיס הקוד הזה?

s = ‘always first’

print(s[0][0][0])

a

מה מדפיס הקוד הזה?

meals = [[‘breakfast’, ‘brunch’], ‘lunch’, ‘dinner’] 

print(meals[0][1])

brunch

מה מדפיס הקוד הזה?

lst = [‘m’, ‘e’, ‘ ‘, ‘t’, ‘o’, ‘o’]

print(lst[0][0][0])

m

השלימו את הקוד כך שידפיס את המילה two.

s = ‘one two three’

print(s[])

s = ‘one two three’
print(s[4:7])

השלימו את הקוד כך שידפיס את המילה two.

s = ‘one two three’

begin = 

end = 

print(s[begin:end])

s = ‘one two three’

begin = 4 

end = 7
print(s[begin:end])

מה מדפיס הקוד הזה?

s = ‘fourth fifth’

print(s[4:6])

th

השלימו את הקוד כך שידפיס את הרשימה lst כולה. 

lst = [1, 2, 3]

print(lst[])

lst = [1, 2, 3]

print(lst[:])

מה מדפיס הקוד הזה?

lst = [1, 2, 3]

print(lst[-10:20])

[1, 2, 3]

מה מדפיס הקוד הזה?

lst = [1, 2, 3]

print(lst[2:0])

[]

מה מדפיס הקוד הזה?

lst = [1, 2, 3]

print(lst[1:–1])

[2]

מה מדפיס הקוד הזה?

s = ‘question’

print(s[-len(s):]) 

question

השלימו את הקוד כך שידפיס רק רשימה ריקה. 

lst = [1, 2, 3]

print(lst[:])

lst = [1, 2, 3]

print(lst[2:0])

נניח שברשימה lst יש שלושה ערכים או יותר. השלימו את הקוד כך שידפיס את מקטע הרשימה המתחיל בערך השלישי לפני הסוף ומסתיים בסוף הרשימה.

lst = ?

print(lst[])

lst = ?

print(lst[-3:])

מה מדפיס הקוד הזה?

seasons = [‘winter’, ‘spring’, ‘summer’, ‘autumn’]

print(seasons[-1][3:6])

umn

מה מדפיס הקוד הזה?

s = ‘hdkiwedoiisanweg’

print(s[0:len(s):3])

hiding

מה מדפיס הקוד הזה?

s = ‘hdkiwedoiisanweg’

print(s[::3])

hiding

מה מדפיס הקוד הזה?

s = ‘hdkiwedoiisanwegpq’

print(s[::3])

hiding

מה מדפיס הקוד הזה?

s = ‘rewsna’

print(s[::-1])

answer

מה מדפיס הקוד הזה?

s = ‘rewsna’

print(s[5:0:-1])

answe

מה מדפיס הקוד הזה?

lst = [‘x’, 32, ‘a’, 32, ‘a’, 32, ‘a’, 32, ‘x’]

print(lst[2:6:2])

[‘a’, ‘a’]

השלימו את הקוד הזה באופן שידפיס רק את המספר 35 (לא בתוך רשימה).

lst = [‘x’, 32, ‘a’, 33, ‘a’, 34, ‘a’, 35, ‘y’]

print(lst[-2::])

lst = [‘x’, 32, ‘a’, 33, ‘a’, 34, ‘a’, 35, ‘y’]
print(lst[-2:-1:][0])

הרצת קטע קוד זה עשויה להוליך לשגיאה. מדוע?

import random

lst = [‘a’, ‘b’, ‘c’]

randNum = random.random(0, len(lst))

print(lst[randNum])

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

מה מדפיס הקוד הזה?

print(3 + 5 == 5 + 3)
print(‘ab’ + ‘cd’ == ‘cd’ + ‘ab’)

True
False

השלימו את הקוד כך שידפיס רק את המחרוזת ‘magic years’. אין להוסיף שורות חדשות או לשנות את המחרוזת ‘years’.

s = ‘years’

print(s)

s = ‘magic ‘ + ‘years’

print(s)

השלימו את הקוד כך שידפיס רק את המחרוזת ‘magic years’. אין להוסיף שורות חדשות או לשנות את המחרוזת ‘years’.

s = ‘magic ‘

print(s)

s = ‘magic ‘ + ‘years’

print(s)

מה מדפיס קוד זה?

s = ‘Save a prayer’

print(s[:5] + ‘your’ + s[6:])

save your prayer

שכתבו את השורה השנייה בקוד זה כך שהקוד ידפיס רק bamba. אין להוסיף שורות לקוד ואין להוסיף זימוני פונקציות.

s = ‘bampa’

newS = s

print(newS)

s = ‘bampa’
newS = s[0:3] + ‘ba’
print(newS)

מה מדפיס קוד זה?

s = ‘partial’

print(‘only’ + s[:])

onlypartial

הקוד הזה מוציא הודעת שגיאה. הסבירו מדוע והציעו תיקון שאינו מוסיף שורה לקוד ואינו מבטל את השימוש באופרטור + .

salary = 12000

print(‘Your new salary is: ‘ + (salary + 500) + ‘.’)

תשובה: הקוד מנסה לצרף מחרוזת למספר ופעולה זו היא בלתי תקינה בפייתון. נוכל להמיר את המספר למחרוזת באמצעות הפונקציה str קודם לביצוע השרשור:

salary = 12000

print(‘Your new salary is: ‘ + str(salary + 500) + ‘.’)

השלימו את הקוד כך שידפיס רשימה של כל האותיות מ-‘a’ (כולל) עד ‘f’ (כולל).

lst = [‘a’, ‘b’, ‘c’] [‘d’, ‘e’, ‘f’]

lst = [‘a’, ‘b’, ‘c’] + [‘d’, ‘e’, ‘f’]

השלימו את הקוד כך שידפיס רק רשימה של כל האותיות מ-‘a’ (כולל) עד ‘b’ (כולל). אין להוסיף לקוד שורות, אין לשנות את הערך המוצב ברשימה lst1, ואין להוסיף לו זימוני פונקציות.

lst1 = [‘a’, ‘b’, ‘c’]

print([‘d’, ‘e’, ‘f’])

lst1 = [‘a’, ‘b’, ‘c’]

print(lst1 + [‘d’, ‘e’, ‘f’])

מה מדפיס הקוד הזה?

print(9 + 1 == 1 + 9)
print([1, 2] + [3, 4] == [3, 4] + [1, 2])

True

False

מה מדפיס הקוד הזה?

print([4, 3, 2] + list(’10’))

[4, 3, 2, ‘1’, ‘0’]

מה מדפיס הקוד הזה?

print(‘*’ * 10)

**********

מה מדפיס הקוד הזה?

print(‘*’*3 + ‘-‘*3 + ‘*’*3)

***—***

מה מדפיס הקוד הזה?

print([] + [‘*’*3]*3)

[‘***’, ‘***’, ‘***’]

מה מדפיס הקוד הזה?

s = ‘Hooray! –’

if ‘kol’ in ‘kolargol’:

     s = s * 5

print(s)

Hooray! –Hooray! –Hooray! –Hooray! –Hooray! –

מה מדפיס הקוד הזה?

print(2 * 2 + 2 * 3 == 2 * (2 + 3))
print(2 * [3, 4] + 2 * [5, 6] == 2 * ([3, 4] + [5, 6]))

True
False

מה מדפיס הקוד הזה?

times = 3

print(‘He asked: ‘ + ‘WHY? ‘ * times)

He asked: WHY? WHY? WHY?

מה מדפיס הקוד הזה?

times = 3.0

print(‘He asked: ‘ + “WHY? ” * times)

    print(‘He asked: ‘ + “WHY? ” * times)

TypeError: can’t multiply sequence by non-int of type ‘float’

תשובה: הודעת שגיאה. אי אפשר להכפיל מחרוזת במספר עשרוני.

מה מדפיס הקוד הזה?

times = 3.0

print(‘He asked: ‘ + “WHY? ” * times)

    print(‘He asked: ‘ + “WHY? ” * times)

TypeError: can’t multiply sequence by non-int of type ‘float’

תשובה: הודעת שגיאה. אי אפשר להכפיל מחרוזת במספר עשרוני.

מה מדפיס הקוד הזה?

print(‘He asked: ‘ + ‘WHY? ‘ * ‘3 times’)

    print(‘He asked: ‘ + ‘WHY? ‘ * ‘3 times’)

TypeError: can’t multiply sequence by non-int of type ‘str’

תשובה: הודעת שגיאה. אי אפשר להכפיל מחרוזת במחרוזת.

מה מדפיס הקוד הזה?

fruit = ‘banana’

print(fruit.count(‘na’))

2

מה מדפיס הקוד הזה?

fruit = ‘banana’

print(fruit.count(‘na’, 3))

1

מה מדפיס הקוד הזה?

fruit = ‘banana’

print(fruit.count(‘na’, 2, 5))

1

מה מדפיס הקוד הזה?

fruit = ‘banana’

print(fruit.count(‘ana’))

1

מה מדפיס הקוד הזה?

favorite = [‘ice cream’, ‘cake’, ‘cake’, ‘choco’]

print(favorite.count(‘ice cream’))

1

מה מדפיס הקוד הזה?

favorite = [‘ice cream’, ‘cake’, ‘cake’, ‘choco’]

print(favorite.count(‘Cake’))

0

מה מדפיס הקוד הזה?

s = ‘find me!’

print(s.index(‘me!’))

5

מה מדפיס הקוד הזה?

s = ‘find me!’

print(s.index(‘me!’, 3))

5

מה מדפיס הקוד הזה?

s = ‘find me!’

print(s.index(‘me!’, 6))

    print(s.index(‘me!’, 6))

ValueError: substring not found

מה מדפיס הקוד הזה?

s = ‘find me!’

print(s.index(‘me!’, 0, 7))

    print(s.index(‘me!’, 0, 7))

ValueError: substring not found

מה מדפיס הקוד הזה?

lst = [‘a’, ‘b’, ‘b’, ‘c’, ‘a’, ‘c’]

print(lst.index(‘c’))

3

מה מדפיס הקוד הזה?

lst = [‘a’, ‘b’, ‘b’, ‘c’, ‘a’, ‘c’]

print(lst.index(‘e’))

print(lst.index(‘e’))

ValueError: ‘e’ is not in list

השלימו את הקוד כך שידפיס רק את הערך ברשימה lst הממוקם באינדקס 2. אין להשתמש באופרטור [ ] או להוסיף שורות לקוד.

lst = [5, 7, 4]

print(lst)

lst = [5, 7, 4]

print(lst.index(2))