מה * עושה בפייתון?

איזה סרט לראות?
 
  מה * עושה בפייתון?

אופרטור כוכבית (*) ב- Python הוא חזק למדי ויכול לעשות הרבה דברים. בפוסט זה נחשוף את סמכויותיו. אז, ללא עיכובים נוספים, בואו נתחיל.





כפל וכוח

האופרטור * יכול להכפיל שני מספרים. אם נשתמש בכוכביות כפולות (**) בין אופרנדים, אז זה יבצע את החישוב האקספוננציאלי (העוצמה). לדוגמה, 3**2 = 9, כלומר, הוא מחשב 3 בחזקת 2. בואו נראה את הדוגמאות שלהם.



x = 4
y = 5
product = x*y #* as a multiplication operator
power = x**3 #* to calculate power
print(product, power)



תְפוּקָה



20 64

חזרה

כאשר האופרטור * משמש בין איטרנס (רשימה, מחרוזת וכו') למספר שלם איקס , הוא חוזר על הרצף הזה על ידי x-1 פִּי. שקול את הדוגמה הבאה.

x = 4
lst = [2]*x #repeats 2 in the list x-1 times
print(lst)
string = "abc"*x #repeats abc x-1 times
print(string)

תְפוּקָה

[2, 2, 2, 2]
abcabcabcabc

פירוק איטרבלים ומילונים

מפעיל הפריקה * יכול לפרק איטרבל. עבור מילונים, השתמש ב-**. בוא נראה.

list1 = ["football", "basketball", "cricket"]
list2 = ["hockey", "volleyball"]
sports = [*list1, *list2] #unpacking list1 and list2 to merge them into a new list
print(sports)

דניאל פדילה וקתרין ברנרדו החדשות האחרונות

תְפוּקָה

['football', 'basketball', 'cricket', 'hockey', 'volleyball']

שקול דוגמה נוספת.

list1 = ["football", "basketball", "cricket"]
first, *others = list1
print("The first item:", first)
print("Rest of the items:", others)

תְפוּקָה

The first item: football
Rest of the items: ['basketball', 'cricket']

בואו נראה איך לפרוק מילונים.

#unpacking dictionaries
dictt1 = {"name":"Ashton", "age": 25}
dictt2 = {"cpga": 4.5}
dictt = {**dictt1, **dictt2}
print(dictt)

תְפוּקָה

{'name': 'Ashton', 'age': 25, 'cpga': 4.5}

פירוק איטרבלים לקריאת פונקציה

אם ברצוננו להעביר פריטים של איטרבל (רשימות, מחרוזת) בנפרד כארגומנטים לפונקציה, ניתן לעשות זאת באמצעות האופרטור *. שקול את הדוגמה הבאה.

name = "ashton agar"
print("The letters in the string are:", *name)

תְפוּקָה

The letters in the string are: a s h t o n   a g a r

מספר משתנה של טיעונים מיקוםיים

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

def calculateAverage(*values):
  n = len(values)
  summ =0 
  for i in range(0, n):
    summ += values[i]
  
  return summ/n
avg = calculateAverage(2,6, 7, 8, 8)
print("The average is:", avg)

תְפוּקָה

איש פלורידה נעצר על מדבקה שאני אוכל
The average is: 6.2

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

מספר משתנה של ארגומנטים של מילות מפתח

בעוד שהאופרטור * מאפשר לנו להעביר כל מספר של ארגומנטים מיקוםיים, האופרטור ** יכול לשמש להעברת מספר משתנה של ארגומנטים של מילת מפתח. בוא נראה.

def test(**info):
  print(info)
test(name="Ashton", age=3)

תְפוּקָה

{'name': 'Ashton', 'age': 3}

פרמטר למילות מפתח בלבד

אם אתה רוצה שיהיה לך פרמטר למילות מפתח בלבד בפונקציה שלך, אתה יכול להשתמש ב-* כדי לעשות זאת. שקול את הדוגמה הבאה כדי לראות כיצד.

def test(name, age, *, grade):
  print(name, age, grade)
test("ashton", 18, grade=9)

תְפוּקָה

ashton 18 9

בדוגמה לעיל, ה מִבְחָן() הפונקציה לוקחת שלושה ארגומנטים. משתנים שֵׁם ו גיל הם מיקומיים, אבל כיתה הוא טיעון של מילת מפתח בלבד.

def test(name, age, *, grade):
  print(name, age, grade)
test("ashton", 18, 9)

תְפוּקָה

  מה * עושה בפייתון?

מה * עושה בפייתון?

כפי שאתה יכול לראות, אתה מקבל שגיאה כאשר אתה לא מעביר את ארגומנט מילת המפתח כראוי.

ראינו שלאופרטור * יש הרבה משמעויות. אז, אני ממליץ לכם לשחק עם זה כדי להבין את זה טוב יותר.