首页 > 编程语言 >python基础12

python基础12

时间:2023-05-26 17:35:53浏览次数:37  
标签:12 name python gender age 基础 参数 print 实参

函数参数的两大分类

1.形式参数

  在函数定义阶段括号内依次写入的变量名就叫形式参数,简称‘形参’

2.实际参数

  在函数调用阶段括号里一次传入的变量值就叫实际参数,简称‘实参’

3.形式参数和实际参数之间的关系

  把实际参数传递给形式参数,以形参=实参的形式传入——一变量名=变量值的形式传入

  形参相当于变量名,实参相当于变量值

  形参和实参在函数调用阶段临时绑定,当函数调用完毕,两者断开

形参形式只有一种,那就是变量名

实参有很多方式,但抓住本质:数据值

位置参数和关键字参数

位置参数

  在函数括号一次写入的参数就是位置参数

位置形参

  在函数定义阶段括号从左往后依次写入变量名就是位置形参

位置实参

  在函数调用阶段括号里从左往右一次写入变量值就是位置实参

1 #写一个注册学员信息功能
2 def register(name,age,gender)
3     print(‘%s:%s:%s’%(name,age,gender))
4 
5 #位置传参必须一一对应

关键字实参

  可以打破原来的循序传递,就是传递参数不在按照顺序传递

register(age=18, name='kevin', gender='female')
register('kevin', age=18, 'female') # 不行,位置参数不能跟在关键字的后面
register('kevin', age=18, gender='female') # 行
register(age=18, 'kevin', gender='female') # 不行
register('kevin', name=18, gender='female') # 不行

 总结:位置参数不能卸载关键字后面,越简单的参数越靠前

默认参数

前提:默认的是形参

  在函数定义阶段就被赋值了

  1.如果你在函数调用阶段,没有给形参传值,那就默认的

  2.如果函数在调用阶段给形参传值,就是要传的值

练习一:
如果默认值是列表的话,比较特殊:以后调用函数的时候,hobby用的都是一个
def register(name,age,hobby=[])
    hobby.append(age)
    print('%s:%s;%s'%(name,age,hobby'))

练习二:
m=200
def func(a,b,c=m)
    print(a,b,c)
m=400

func(1,2)#(1,2,200)
两个角度理解
    角度1:
        在函数定义阶段,参数的值就已经固定死了,不能修改
    角度2:
        根据变量名和变量值在内存中关系来判断

可变长参数

1.不管我在调用函数的时候,传入多少个位值参数,都能正常运行

def index(name,password,x,y,*a):

  print(name,password,a,x,y)

*号在形参中的使用:会接收多余的位置参数

2.不管我们在调用函数的时候,传入多少个关键字参数,都能正常运行

**号在形参中使用:接受多余的关键字参数

def index(username,age,gender,hobby,**a)

  print(username,age,gender,a)

3.不管我传入多少个位置参数和关键字参数,函数都能正常运行

def index(*a,**b)

  print(a,b)

4.注意:

  *号和**号后面的变量可以任意取名,遵循变量原则即可

  zaipython中,推荐使用*args:arguments 位置参数

  **kwags:keyword arguments 关键字参数

  以后在定义函数时候,如果我们不知道要传递多少个参数,我们就可以如下定义

   def index(*args,**kwargs):

      pass

5.*在实参中的使用,就是把列表、元组中一个一个元素打散,然后以位置参数的形式传递

  针对列表这种里面肯能存放多个元素的时候,我们利用*打散成一个个的元素

6.**号在实参中的使用:把字典打散成关键字的形式进行传递

名称空间

什么是名称空间?

  就是绑定变量名与变量值关系的地方

名称空间的分类:

  1.内置名称空间

    Python解释器内置的,可以直接拿来使用的

  2.全局名称空间

    Python文件中,顶格写的变量都是在全局名称空间中

    name='jason'  name就是全局变量,他就是在全局名称空间中存着

  3.局部名称空间

    在函数中存在的都是局部的

    print(locals())

    print(globals())

名字查找顺序  

名字的查找:
  先看你自己再哪个位置
  全局 >>> 内置
  先看你自己再哪个位置
  局部 >>> 全局 >>> 内置

"""验证变量的查找顺序:局部 >>> 全局 >>> 内置"""

标签:12,name,python,gender,age,基础,参数,print,实参
From: https://www.cnblogs.com/shanghaipudong/p/17435344.html

相关文章

  • Python - matplotlib 不显示中文 && findfont: Font family ['simsun'] not found
    一.发现问题pythonmatplotlib.plt使用plt.title写标题时,标题显示为方框,无法正常显示中文,遂开始修复之旅。二.尝试解决查询网上大神给出的解决方案是添加全局字体配置:plt.rcParams['font.sans-serif']=['simsun']如果添加后运行代码无findfont:Fontfamily['simsu......
  • Python默认编码错误SyntaxError: Non-ASCII character '\xe5'之解决方法
    在编写Python时,当使用中文输出或注释时运行脚本,会提示错误信息:解决方法:python的默认编码文件是用的ASCII码,你将文件存成了UTF-8!!!(文件中存在中文或者其他语言,就会出现此问题!)解决办法很简单!!!在文件开头加入:# -*- coding: U......
  • Python:实现多态
    定义一个在校人的基类,分别派生出教师和学生,然后放入列表中,实现多态。#!/usr/bin/python#Filename:inherit.pyclassSchoolMember:'''Representsanyschoolmember.'''def__init__(self,name,age):self.name=nameself.age=age......
  • Python:简单的文件备份脚本
    文件备份脚本,实现了按照日期归类,时间建备份文件的功能,还能加入用户的备注信息。#!/usr/bin/python#Filename:backup_ver3.pyimportosimporttime#1.sourcefilewhichtobebackedup.source=['/home/shibo/Code']#2.targetpathwhicharebackedupto.target_dir......
  • Python:模拟linux命令cat
    模拟linux的cat命令,打印从命令行输入的文件名#!/usr/bin/python#Filename:cat.pyhelpString='''\Thisprogramprintsfilestothestandardoutput.Anynumberoffilescanbespecified.Optionsinclude:--version:Printstheversionnumber--help:Display......
  • Python:使用cPickle储存器存储对象
    一个简单的例子,演示了怎么使用cPickle存储对象#!/usr/bin/python#Filename:pickling.pyimportcPickleaspshoplistfile='shoplist.data'shoplist=['apple','mango','carrot']f=file(shoplistfile,'w')p.dump(shoplist,......
  • python中的exec()函数的作用
    exec语句用来执行储存在字符串或文件中的Python语句。例如,我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句。下面是一个简单的例子。>>>exec'print"HelloWorld"'HelloWorld注意例子中exec语句的用法和eval_r(),execfile()是不一样的.exec......
  • 编译安装python3.11.3
     1、下载源码包cd/usr/local/srcwget'https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tar.xz' 2、解压xz-dPython-3.11.3.tar.xztarzfPython-3.11.3.tar 3、安装编译工具和依赖包yum-yinstallgcc-c++openssl-devel 4、配置mkdir-p/......
  • HDU 1029 Ignatius and the Princess IV(基础dp)
    传送门题目大意就是给你n个数(保证n为一个奇数),存在一个数出现的次数大于(n+1)/2次,求这个数;这个数出现的次数比其他数出现的次数加起来还多,那么当这个数出现时+1,其他的数出现时-1,最后得到的数为正数。假定一个数为特殊数,若当前数与特殊数相同则cnt++,若不相同则cnt--,如果这时cnt<0,用当......
  • 有关素数的基础算法 素性测试 埃氏筛法
    所谓素数,是指恰好有两个约数的正整数。因为n的约数都小于n,所以只需要检查2~ n-1之间所有的整数是否整除n就能判定n是不是素数。如果d是n的约数,那么n/d也是n的约数。由n=d*n/d可知min(d,n/d)  ,所以只需要检查2~ 之间的所有整数就足够了。同理可知,整数分解和约数枚举都......