הקדמה
במאמר זה, נשתמש בפונקצית float()
של פייתון כדי להמיר מחרוזות למספרים עשרוניים. ונשתמש גם בפונקצית str()
של פייתון כדי להמיר מספרים עשרוניים למחרוזות.
חשוב להמיר סוגי נתונים כהלכה לפני שימוש בהם לחישובים ולחיבורים כדי למנוע שגיאות בזמן ריצה.
דרישות מוקדמות
כדי להשלים את המדריך הזה, יש לך צורך ב:
- ידע בהתקנת פייתון 3. וידע בתכנות בפייתון. איך לתכנת בפייתון 3 או בשימוש ב־VS Code לפייתון.
המדריך נבדק עם פייתון 3.9.6.
שימוש בפונקצית float()
ניתן להמיר מחרוזת למספר עשרוני ב-Python באמצעות פונקציית float()
. זו פונקציה מובנית המשמשת להמרת אובייקט למספר עשרוני. מבחינה פנימית, פונקציית float()
קוראת לפונקציית __float__()
המוגדרת על האובייקט הספציפי.
דוגמה
בואו נסתכל על דוגמה להמרת מחרוזת למספר עשרוני ב-Python:
input_1 = '10.5674'
input_1 = float(input_1)
print(type(input_1))
print('Float Value =', input_1)
פלט:
<class 'float'>
Float Value = 10.5674
ערך המחרוזת של '10.5674'
הומר לערך עשרוני של 10.5674
.
למה צריך להמיר מחרוזת למספר עשרוני?
אם אנו מקבלים ערך עשרוני מהמשתמש דרך קלט מהטרמינל או קוראים אותו מקובץ, הם אובייקטים מסוג מחרוזת. עלינו להמיר אותם באופן מפורש לטיפול בהם כמספר עשרוני כך שנוכל לבצע פעולות נדרשות כמו חיבור, כפל וכדומה.
input_1 = input('Please enter first floating point value:\n')
input_1 = float(input_1)
input_2 = input('Please enter second floating point value:\n')
input_2 = float(input_2)
print(f'Sum of {input_1} and {input_2} is {input_1+input_2}')
הערה: אם אינך מכיר בפורמט מחרוזת באמצעות קידוד f, אנא קרא על f-strings ב-Python.
בואו נפעיל את הקוד הזה ונזין ערכים עשרוניים עבור input_1
ו־input_2
:
Please enter first floating point value:
10.234
Please enter second floating point value:
2.456
Sum of 10.234 and 2.456 is 12.69
הסכום התוצאה של 10.234
ו־2.456
הוא 12.69
.
לדעתנו, יש להשתמש בבלוק try-except
כדי לגורור יוצא דופן במקרה של קלט לא חוקי מהמשתמש.
באמצעות פונקציית str()
ניתן גם להמיר מספר ממשי למחרוזת באמצעות פונקציית str()
. ייתכן שזה יהיה נדרש במקרים בהם נרצה לחבר ערכים ממשיים.
דוגמה
בואו נציץ על דוגמה:
input_1 = 10.23
input_2 = 20.34
input_3 = 30.45
# באמצעות f-string מ-Python 3.6 ומעלה, לשנות ל־format() לגרסאות ישנות יותר
print(f'Concatenation of {input_1} and {input_2} is {str(input_1) + str(input_2)}')
print(f'CSV from {input_1}, {input_2} and {input_3}:\n{str(input_1)},{str(input_2)},{str(input_3)}')
print(f'CSV from {input_1}, {input_2} and {input_3}:\n{", ".join([str(input_1),str(input_2),str(input_3)])}')
נריץ את הקוד הזה:
Concatenation of 10.23 and 20.34 is 10.2320.34
CSV from 10.23, 20.34 and 30.45:
10.23,20.34,30.45
CSV from 10.23, 20.34 and 30.45:
10.23, 20.34, 30.45
חיבור של 10.23
ו־20.34
מייצר את המחרוזת '10.2320.34'
. הקוד הזה גם מייצר שני גרסאות של ערכים מופרדים בפסיק (CSV).
אם לא נמיר מספר ממשי למחרוזת בתכנית שלמעלה, פונקציית join()
תזרוק יוצא דופן. גם לא נוכל להשתמש באופרטור +
לחיבור, מכיוון שהוא יוסיף את מספרי הנקודה הצפה.
מסקנה
ניתן לבדוק את סקריפט ה-Python השלם ודוגמאות נוספות ב-Python ממאגר המידע שלנו ב-GitHub.
מקורות:
Source:
https://www.digitalocean.com/community/tutorials/python-convert-string-to-float