להלן סדרת שאלות ותשובות. הן עוסקות בפונקציה range ובלולאת for.
בקליטת קלט באמצעות הפונקציה input ההנחה היא שמוכנס קלט תקין, אלא אם כן נאמר אחרת.
בשאלות המבקשות להשלים קוד יש להוסיף על הקוד ולא לשנות את הטקסט שכבר יש בו.
בהצלחה!
152 * 173
מה הרצף שמציב הקוד הזה במשתנה myRange?
myRange = range(4)
0, 1, 2, 3
מה הרצף שמציב הקוד הזה במשתנה myRange?
myRange = range(4, 7)
4, 5, 6
מה הרצף שמציב הקוד הזה במשתנה myRange?
myRange = range(4, 12, 3)
4, 7, 10
מה מדפיס הקוד הזה?
lst = list(range(-2, 3))
print(lst)
[-2, -1, 0, 1, 2]
מה מדפיס הקוד הזה?
s = ‘indices, not strings’
lst = list(range(0, len(s), 3))
print(lst)
[0, 3, 6, 9, 12, 15, 18]
מה מדפיס הקוד הזה? המשתנה s מכיל מחרוזת ריקה.
s = ”
for ‘c’ in ‘cat’:
s = s + c
print(c)
תשובה: הקוד לא ירוץ. כדי לפעול באופן תקין הוראת for נזקקת למשתנה בקרה לשים בתוכו את האיבר הבא ברצף שהיא סורקת. המשתנה אמור להופיע לפני המילה in וכאן הוא נעדר ובמקומו יש ערך, המחרוזת ‘c’.
מה מדפיס הקוד הזה? המשתנה s מכיל מחרוזת ריקה.
s = ”
for c in ‘cat’:
s = s + c
print(c)
t
מה מדפיס הקוד הזה?
for i in range(5): print(i)
הקוד אינו רץ כיוון שיש שגיאת הידור (קומפילציה): המהדיר מצפה שההוראה הבאה אחרי השורה הראשונה במבנה לולאת for תהיה מוזזת ימינה לעומת השורה הזאת.
מה מדפיס הקוד הזה?
for i in range(5):
print(i)
0
1
2
3
4
מה מדפיס הקוד הזה?
lst = []
for i in range(5, 10):
lst = lst + [i]
print(lst)
[5, 6, 7, 8, 9]
מה מדפיס הקוד הזה?
lst = []
for i in range(3, 0, -1):
lst = lst + [i]
print(lst)
t
מה מדפיס הקוד הזה?
print(‘begin’)
for i in range(5):
print(‘middle’)
print(‘end’)
begin
middle
middle
middle
middle
middle
end
מה מדפיס הקוד הזה?
import random
for i in range(1, 4):
print(random.randint(1, i))
1
1
2
מה מדפיס הקוד הזה?
for i in range(4):
print(‘@’ * i)
1
1
2
מה מדפיס הקוד הזה?
lst = [‘a’, ‘b’, ‘c’, ‘d’]
for item in lst:
print(item, end = ‘-‘)
a-b-c-d-
מה מדפיס הקוד הזה?
lst = [‘a’, ‘b’, ‘c’, ‘d’]
for ind in range(len(lst)):
print(lst[ind], end = ‘-‘)
a-b-c-d-
מה מדפיס הקוד הזה?
lst = [‘a’, ‘b’, ‘c’, ‘d’]
for ind in range(len(lst)):
print(lst[:ind], lst[ind:])
[] [‘a’, ‘b’, ‘c’, ‘d’]
[‘a’] [‘b’, ‘c’, ‘d’]
[‘a’, ‘b’] [‘c’, ‘d’]
[‘a’, ‘b’, ‘c’] [‘d’]
מה מדפיס הקוד הזה?
totalPayment = 0 payments = [100.0, 200.0, 300.0] for payment in payments: totalPayment = totalPayment + payment print(payment)
300.0
מה מדפיס הקוד הזה?
factor = 1 nums = [1, 2, 3, 4, 5] for num in nums: factor = factor * num print(factor)
120
קטע קוד זה הורץ והדפיס את הערך True. תנו דוגמה לקלט שהמשתמשת הכניסה בתחילת ההרצה.
lst = [‘a’, ‘b’, ‘c’, ‘d’]
ch = input(‘Please enter a character: ‘)
found = False
while lst and not found:
if lst[0] == ch:
found = True
else:
lst = lst[1:]
print(found)
a
נתון קטע קוד חסר של תכנית. בקוד חסרה שורה אחת
lst = [‘a’, ‘b’, ‘c’, ‘d’]
ch = input(‘Please enter a character: ‘)
while lst:
if lst[0] == ch:
?
else:
print(lst)
lst = lst[1:]
print(lst)
הקוד הורץ. המשתמשת הכניסה את המחרוזת ‘b’ והקוד הדפיס:
[‘b’, ‘c’, ‘d’]
השלימו את השורה חסרה בקוד.
lst = [‘a’, ‘b’, ‘c’, ‘d’] ch = input(‘Please enter a character: ‘) while lst: if lst[0] == ch: break else: lst = lst[1:] print(lst)
מה מדפיס הקוד הזה?
s = ‘feqodfuzcnewd23 dfightvb!df’
for i in range(0, len(s), 3):
print(s[i], end = ”)
found it!
מה מדפיס הקוד הזה?
s = ‘feqodfuzcnewd23 dfightvb!df’
for c in s[::3]:
print(c, end = ”)
found it!
מה מדפיס הקוד הזה?
lst = [5, 7, 3, 8]
for item in lst:
item = item + 5
print(lst)
[5, 7, 3, 8]
מה מדפיס הקוד הזה?
lst = [‘a’, 1, True, ‘b’, 2, False]
vals = [2, ‘b’, 3]
itemsFound = 0
for val in vals:
if val in lst:
itemsFound = itemsFound + 1
print(itemsFound)
2
מה מדפיס הקוד הזה?
lst = [‘a’, 1, True, ‘b’, 2, False]
vals = [2, 3, ‘b’]
itemsFound = 0
for val in vals:
if val in lst:
itemsFound = itemsFound + 1
else:
break
print(itemsFound)
1
תנו דוגמה לערך שיכול להיות במשתנה s1 כדי שהקוד ידפיס את המחרוזת ‘at’. ערך האתחול של המשתנה common הוא מחרוזת ריקה.
s1 = ? s2 = ‘cat’ common = ” for c in s2: if c in s1: common = common + c print(common)
קוד זה מבצע לולאה באמצעות מבנה while. שכתבו אותו באופן שישתמש במבנה for.
i = 0
while i < 10;
print(i)
i = i + 1
for i in range(10):
print(i)
קוד זה מבצע לולאה באמצעות מבנה while. שכתבו אותו באופן שישתמש במבנה for.
i = 2
while i < 10;
print(i)
i = i + 1
for i in range(2, 10):
print(i)
קוד זה מבצע לולאה באמצעות מבנה while. שכתבו אותו באופן שישתמש במבנה for.
i = 2
while i < 10;
print(i)
i = i + 3
for i in range(2, 10, 3):
print(i)
הקוד הזה צריך להדפיס את כל המספרים הנמצאים במחצית השנייה של הרשימה lst, אם מספר האיברים בה הוא זוגי, או את כל המספרים מימין למספר האמצעי, אם מספר האיברים בה הוא אי-זוגי. בקוד יש טעות. תקנו אותו.
lst = [8, 3, 2, 5, 6, 1, 0]
i = int(len(lst) / 2)
if (len(lst) % 2 == 1):
i = i + 1
while i <= len(lst):
print(lst[i])
i = i + 1
בשל השימוש בסימן <= הסריקה חורגת מגבול הרשימה. יש להשתמש בסימן < .