פייתון/פייתון גרסה 3/יצירת רשימה באמצעות פונקצית eval
< פייתון | פייתון גרסה 3
הפונקצית eval
עריכההפונקציה eval עד כה שימשה אותנו בכדי לסכום איברים:
>>> x=4
>>> y=9
>>> eval('x'+'y')
>>> eval('x+y')
13
input נותן מחרוזת
עריכהכאשר משתמשים בפקודה Input עבור הקלדה של מספרים מקבלים חזרה מחרוזת:
>>> A=input('insert a number')
insert a number 1
>>> type(A)
<class 'str'>
הבעיתיות עם list ו-split
עריכהבדרך כלל, כאשר רצינו שמספר הנקלט בידי המשתמש יהיה מספר נעזרנו בפונקצית int ולכן נשאלת השאלה למה לא להשתמש בפונקצית list הממירה רצף של מספרים לרשימה?
>>> A=list(input('insert a number: '))
insert a number: 1,2,3,4,5
>>> print (A)
['1', ',', '2', ',', '3', ',', '4', ',', '5']
eval, List והמרה לרשימה
עריכהבאמצעות הפונקציה eval ניתן לייצר רשימה. פונקצית ה-eval תחילה מבצעת את המספרים במחרוזות לרצף :
>>> A=eval(input('insert a numbers: '))
insert a numbers: 1,2,3,4,5
>>> print(A)
(1, 2, 3, 4, 5)
>>> type(A)
<class 'tuple'>
אך כפי שניתן לראות התוצאה אינה רשימה. עם זאת עתה נוכל להשתמש בפונקצית list ולקבל:
>>> A=list(eval(input('insert a numbers: ')))
insert a numbers: 1,2,3,4,5
>>> print(A)
[1, 2, 3, 4, 5]
>>> type(A)
<class 'list'>