参数类型:
1)位置参数
2)可变长度参数
3)关键字参数
4)默认参数
5)关键字仅参数
6)位置仅参数
7)可变默认参数
>参考:https://builtin.com/software-engineering-perspectives/arguments-in-
1)位置参数:
– >在函数调用期间,通过参数传递的值应按照函数定义中的参数顺序。这称为位置参数。
– >关键字参数应仅遵循位置参数。
>示例:1
#positional arguments def display(first_name, last_name): print("welcome", first_name, last_name) display("guru", "prasanna")
>输出:
欢迎大师prasanna
>示例:2
def find_total(l): total = 0 for num in l: total+=num print(total) marks = [90,56, 78] find_total(marks)
>输出:
224
2)变量长度参数:
->相同的方法/函数,具有不同数量的参数或不同类型的参数。
->如果我们不知道该函数所需的参数数量,我们可以使用任意参数。
> ->任意参数有两种类型:
- arbitrary positional arguments - arbitrary keyword arguments
>任意位置参数:
- >
- >示例:
def find_total(*l): total = 0 for num in l: total+=num print(total) mark1 = 100 mark2 = 90 mark3 = 87 find_total(mark1, mark2,mark3) find_total(45,54) find_total()
>输出:
277 99 0
任意关键字参数:
- >示例:
-
def login(**args): print(args) login(name='raja', age=25, city='madurai')
登录后复制
{'name': 'raja', 'age': 25, 'city': 'madurai'}
3)关键字参数:
– >所有参数均为关键字参数。
->关键字参数应在调用函数时,而不是函数定义中。
> >示例:
def display(*marks,name): print('welcome', name) print(marks) display(90,80,name="lakshmi") display(80,name="guru")
>输出:
welcome lakshmi (90, 80) welcome guru (80,)
4)默认参数:
立即学习“”;
默认参数是定义函数时提供的值。
分配运算符=用于为参数分配默认值。
> >默认参数在函数调用过程中成为可选的。>
如果在函数调用过程中为默认参数提供值,则它覆盖了默认值。
- 该函数可以具有任意数量的默认参数。
- 默认参数应遵循非默认参数。
- >输出:
-
abcd abcd pqrs admin
登录后复制
>
>
>示例:
def login(username, password="admin"): print(username, password) login("abcd", "abcd") login("pqrs")
>默认值与关键字与位置参数
>
默认,关键字和位置参数的重要点要记住
5)关键字仅参数:
>
– > to将参数标记为仅关键字,在第一个仅关键字参数之前,将an *放在参数列表中。
>示例:
def add(*, no1, no2): return no1+no2 print(add(10,20)) #typeerror print(add(no1=100,no2=200))
>输出:
typeerror 300
6)只有位置参数:
– >仅位置参数位于函数定义中的a /(forward-lash)之前。
-> /用于从逻辑上将仅位置参数与其余参数分开。
->参数可能是 /键 – 键或关键字。
>
def add(a,b,/,c,d): return a+b+c+d print (add(3,4,c=1,d=2)) print (add(3,4,2,d=1))
>输出:
10 10
7)可变默认参数>
#mutable default arguments: def add(no, l=[]): l.append(no) return l print(add(10)) print(add(20))
>输出:
[10] [10, 20]
>函数返回字典:
def display(player_names, scores): return dict(zip(player_names, scores)) player_names = ['virat', 'rohit'] scores = [100,105] result = display(player_names, scores) print(result)
>输出:
{'virat': 100, 'rohit': 105}
列表是可变的:
def modify(l): l.append(100) print(f'inside modify, {l}') l = [10,20,30] print(f'outside modify {l}') modify(l) print(f'outside modify2 {l}')
>输出:
outside modify [10, 20, 30] inside modify, [10, 20, 30, 100] outside modify2 [10, 20, 30, 100]
>说明:
>在调用修改(l)之前,列表为[10,20,30]。
>内部修改(l),将100添加到列表中。
>
函数调用后,原始列表现在为[10、20、30、100],因为列表是可变的,并通过参考。
变量类型:
本地变量:
在函数内声明的变量,仅在该函数中访问。
>示例:
- >输出:
- 全局变量:
def shopping(): print(amount) amount = 1000 print(amount) shopping()
1000
>在整个程序中声明且可在整个程序中访问的变量。使用
global
关键字可修改变量。
amount = 1000 def shopping(): print(amount) shopping()
>输出: 1000
>示例:2
amount = 10000 #global variable def shopping(): global amount print("total amount for trip is",amount) amount = 1000 #local variable print("shopping amount",amount) shopping()
>输出:
total amount for trip is 10000 shopping amount 1000
注意: ->本地和全局变量可以具有相同的名称。 ->本地变量将是优先的。 >内部函数:
>内部函数(或嵌套函数)是在另一个函数内定义的函数。
>
>非局部变量(在嵌套函数中使用):
>示例:
def open_tank(): tank = 2 print(f'inside open_tank {tank}') def fill_petrol(): nonlocal tank tank = tank + 3 print(f'inside fill_petrol {tank}') fill_petrol() open_tank()
>输出:
Inside open_tank 2 Inside fill_petrol 5
以上就是Python Day-参数类型,变量的类型的详细内容,更多请关注php中文网其它相关文章!