
Žvaigždutės (*) operatorius Python yra gana galingas ir gali atlikti daugybę dalykų. Šiame įraše atskleisime jo galias. Taigi, nieko nelaukdami, pradėkime.
Daugyba ir galia
Operatorius * gali padauginti du skaičius. Jei tarp operandų naudosime dvigubas žvaigždutes (**), tada jis atliks eksponentinį (galios) skaičiavimą. Pavyzdžiui, 3**2 = 9, t.y. apskaičiuoja 3 laipsniui 2. Pažiūrėkime jų pavyzdžius.
x = 4 y = 5 product = x*y #* as a multiplication operator power = x**3 #* to calculate power print(product, power)
Išvestis
20 64
Kartojimas
Kai operatorius * naudojamas tarp kartotinio (sąrašo, eilutės ir kt.) ir sveikojo skaičiaus x , ji pakartoja tą seką x-1 laikai. Apsvarstykite toliau pateiktą pavyzdį.
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)
Išvestis
[2, 2, 2, 2] abcabcabcabc
Iterables ir žodynų išpakavimas
Išpakavimo operatorius * gali išpakuoti kartotinį. Žodynams naudokite **. Pažiūrėkime.
list1 = ["football", "basketball", "cricket"] list2 = ["hockey", "volleyball"] sports = [*list1, *list2] #unpacking list1 and list2 to merge them into a new list print(sports)
Išvestis
['football', 'basketball', 'cricket', 'hockey', 'volleyball']
Apsvarstykite kitą pavyzdį.
list1 = ["football", "basketball", "cricket"] first, *others = list1 print("The first item:", first) print("Rest of the items:", others)
Išvestis
The first item: football Rest of the items: ['basketball', 'cricket']
Pažiūrėkime, kaip išpakuoti žodynus.
#unpacking dictionaries dictt1 = {"name":"Ashton", "age": 25} dictt2 = {"cpga": 4.5} dictt = {**dictt1, **dictt2} print(dictt)
Išvestis
{'name': 'Ashton', 'age': 25, 'cpga': 4.5}
Iterables išpakavimas į funkcijos iškvietimą
Jei norime perduoti iteruojamo elemento elementus (sąrašus, eilutę) atskirai kaip argumentus funkcijai, tai galite padaryti naudodami operatorių *. Apsvarstykite toliau pateiktą pavyzdį.
name = "ashton agar" print("The letters in the string are:", *name)
Išvestis
The letters in the string are: a s h t o n a g a r
Įvairus pozicinių argumentų skaičius
Operatorius * leidžia funkcijai perduoti bet kokį pozicijos argumentų skaičių. Be to, šie argumentai perduodami kaip eilutė. Pažiūrėkime.
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)
Išvestis
The average is: 6.2
Aukščiau pateiktame pavyzdyje sukuriame funkciją, skirtą apskaičiuoti jai perduotų skaičių vidurkį. Čia galite pastebėti, kad mes neribojame pateiktų argumentų. Tai darome naudodami žvaigždutės operatorių.
Įvairus raktinių žodžių argumentų skaičius
Nors operatorius * leidžia perduoti bet kokį pozicijos argumentų skaičių, ** operatorius gali būti naudojamas kintamam raktinių žodžių argumentų skaičiui perduoti. Pažiūrėkime.
def test(**info): print(info) test(name="Ashton", age=3)
Išvestis
{'name': 'Ashton', 'age': 3}
Tik raktinio žodžio parametras
Jei savo funkcijoje norite turėti tik raktinio žodžio parametrą, galite tai padaryti naudodami *. Apsvarstykite toliau pateiktą pavyzdį, kad sužinotumėte, kaip tai padaryti.
def test(name, age, *, grade): print(name, age, grade) test("ashton", 18, grade=9)
Išvestis
ashton 18 9
Aukščiau pateiktame pavyzdyje testas () funkcijai reikalingi trys argumentai. Kintamieji vardas ir amžiaus yra poziciniai, bet laipsnis yra tik raktinio žodžio argumentas.
def test(name, age, *, grade): print(name, age, grade) test("ashton", 18, 9)
Išvestis

Ką * veikia Python?
Kaip matote, jei tinkamai nepateikiate raktinio žodžio argumento, gaunate klaidą.
Matėme, kad * operatorius turi daug reikšmių. Taigi, vaikinai, raginčiau jus pažaisti, kad geriau suprastumėte.