精华内容
下载资源
问答
  • 了解形式参数和实际参数 学习内容: 1、 给函数传递参数 2、 了解形式参数 3、 了解实际参数 4、 进一步掌握函数的调用 代码讲解: 前面我们学习了函数的定义和调用,但是没有细讲在函数传递的过程中,参数的传递...

    学习目标:

    了解函数传递参数
    了解形式参数和实际参数


    学习内容:

    1、 给函数传递参数
    2、 了解形式参数
    3、 了解实际参数
    4、 进一步掌握函数的调用


    代码讲解:

    前面我们学习了函数的定义和调用,但是没有细讲在函数传递的过程中,参数的传递过程。
    那么本章将会对此一一讲解。
    1、函数的参数
    函数的参数前面我们稍微讲了一下,在编程中具体表现为函数名之后的小括号内的内容,函数的参数可以是0个或者多个,两个(含两个)参数以上,每个参数之间用英文逗号进行分隔(还有特殊的参数,后一章再对此进行讲解)。
    创建新的Python文件,输入下面的代码:

    # 函数在调用前必须先进行定义,否则会报错,在编程中表现为定义写在调用之前
    def function (parameter_1, parameter_2, parameter_3=3):
    	print(parameter_1, parameter_2, parameter_3, sep='+')
    function(1, 2)
    function(1, 2, 4)
    

    运行文件,观察控制台输出
    None不难发现,print()函数中传递了四个参数,前三个是我们自己定义的,第四个传递的时候是sep="+", 字符+出现在了结果中每个数字中间,因此sep参数实际上是使用字符+将结果拼接起来,与此类似的,还可以给print函数传递end参数,传递的时候为end=‘你想要的字符’, 其效果是在每个输出的最后加上你引号内的内容,print函数的end默认使用’\n’(换行),举一反三,我们在定义function函数时,为什么第三个参数有个=,这是一种特殊的参数,Python中称为默认值参数,意思就是如果你不给这个参数赋值,那么它将使用默认值,赋值了,就是用赋值的值,这个赋值就是参数的传递,在编写函数时,参数列表的每一项就叫形式参数,因为,在没有调用之前,它没有实际值,相当于占个位置,在函数调用时,传递的参数就叫实际参数,因为其有实际值。观察例子,第一次调用只传递了两个实际参数,那么输出出来的第三个参数就使用默认值3,第二次调用传递了三个参数,那么第三个参数就使用了传递进来的4,值得一提的是,给默认值参数传递值的时候,附带名字,将会准确的给该参数传递,如果不带名字,将会按照定义的时候的顺序进行赋值。除了这两种参数,Python还允许传递不定数量参数,在下一章将会讲解。


    展开全文
  • 今天做c++例题的时候发现一个...以下是原代码: #include <iostream> using namespace std; void swap(int a, int b ){ int t = a; a = b; b = t; } int main(){ int x = 5, y = 10; cout << "x...

    今天做c++例题的时候发现一个问题

    有以下问题

    输入两个整数后交换并输出结果

    以下是原代码:

    #include <iostream>
    using namespace std;
    void swap(int a, int b ){
    	int t = a;
    	a = b;
    	b = t;
    }
    
    int main(){
    	int x = 5, y = 10;
    	cout << "x = " << x << "y = " << y << endl;
    	swap(x,y);
    	cout << "x = " << x << "y = " << y << endl;
    	return 0;
    }
    

    这是输出后的结果,发现两个数字并没有交换

    x = 5 y = 10
    x = 5 y = 10
    

    网上查了一下,发现是这个问题:

    void swap(int a, int b ){
    	int t = a;
    	a = b;
    	b = t;
    }
    

    在这块内容中t、a、b只是这个函数的形式参数,并没有影响到代码的主体部分中调用的函数:

    swap(x,y);
    

    即这一行根本没有作用,只是交换了函数块中a、b的数值,如果我们想要将变量x、y交换的话,有如下两种办法:

    法1:

    可以使用指针的概念:

    #include <iostream>
    using namespace std;
    void swap(int *a, int *b ){
    	int t = *a;
    	*a = *b;
    	*b = t;
    }
    
    int main(){
    	int x = 5, y = 10;
    	cout << "x = " << x << "y = " << y << endl;
    	swap(&x,&y);
    	cout << "x = " << x << "y = " << y << endl;
    	return 0;
    }
    

    我们可以调用x、y两个变量的地址作为swap()中的参数。
    由于函数在写的时候,使用了指针:

    void swap(int *a, int *b);
    

    在调用的时候

    swap(&x,&y);
    

    当输入x,y的值后,swap()调用了两者的地址,而指针指向了x、y地址中的内容,通过这个函数将x、y的值调换了。


    法2:

    #include <iostream>
    using namespace std;
    void swap(int &a, int &b ){
    	int t = a;
    	a = b;
    	b = t;
    }
    
    int main(){
    	int x = 5, y = 10;
    	cout << "x = " << x << "y = " << y << endl;
    	swap(x,y);
    	cout << "x = " << x << "y = " << y << endl;
    	return 0;
    }
    

    这里可以用到c++中对于变量的引用

    void swap(int &a, int &b ){
    
    swap(x,y);
    

    这里就涉及到了变量引用的概念。变量引用,打个比方就是给x取一个别名,叫a;给y取一个别名,叫b;
    在c++中,我们可以使用“&”符号表达这层关系:

    int x;
    int &a = x;
    int y;
    int &b = y;
    

    在主体部分函数调用x,y的时候

    void swap(int &a, int &b ){
    	int t = a;
    	a = b;
    	b = t;
    }
    

    当输入x,y的值后,可认为将x的值传递了a,y的值传递了b,实现了两数的交换。

    展开全文
  • 大家好,我们今日继续讲解VBA代码解决方案的第124讲内容:VBA程序执行过程中,参数的传递形式...首先,我们先来理解一下几个定义:什么是形式参数,什么是实际参数,什么是参数的传递,参数传递有几种形式。1形式参...

    大家好,我们今日继续讲解VBA代码解决方案的第124讲内容:VBA程序执行过程中,参数的传递形式。在代码的编写过程中,为了深入的理解代码,有时候要对一些理论的知识必须要做必要的深入了解。我将在这节和下阶内容中着重讲解程序在运行时参数是如何传递的。理论的成分多些,但还是希望朋友们能好好掌握。

    首先,我们先来理解一下几个定义:什么是形式参数,什么是实际参数,什么是参数的传递,参数传递有几种形式。

    1形式参数 指出现在Sub 和Function过程中的变量名、数组名。该过程在被调用前,没有为它们分配内存,其作用是说明自变量的类型和形态以及在过程中的作用。形参可以是变量名,也可以是数组名。

    2 实际参数:就是在调用Sub 和Function过程时,从主调过程传递给被调用过程的参数值。实参可以是变量名、数组名、常数或表达式。在过程调用传递参数时,形参与实参是按位置结合的,形参表和实参表中对应的变量名可以不必相同,但它们的数据类型、参数个数及位置必须一一对应。

    3 参数的传递:在程序运行过程中,实际参数将参数值传递给相应的形式参数,然后在函数中实现数据处理和返回的过程。

    4 参数的传递有两种:按值传递和按地址传递

    ① 按值传递:在过程被调用时,传递给形参的是调用过程中的相应实参的值,形参与实参各占有不同位置的储存空间,被调用过程在执行过程中,改变了形参变量的值,但不会调用过程的实参值。在函数声明行在参数名称之前加上关键字ByVal。

    ② 按地址传递:就是当调用一个过程时,是把实参变量的内存地址(指针)传递给被调用过程的形参,也就是说形参与实参使用相同地址的内存单元。因此当在被调用过程中改变形参的值,就等于改变了实参的值。

    上面的几个定义或许你不是很理解,下面我们看一个实例:

    Sub MynzNumbers()

    Dim a As Integer, b As Integer, c As Integer

    a = 10

    b = 20

    c = 30

    MsgBox MyAverage(a, b, c) & " " & a & " " & b & " " & c

    End Sub

    Function MyAverage(ByVal a, ByVal b, ByVal c)

    a = a + 60

    MyAverage = (a + b + c) / 3

    End Function

    代码截图:

    07e61df727d19990418b2cad1bb8b30f.png

    看了上面的代码,大家想想maxbox弹出的对话框是什么内容呢?

    9204eed915c42684a81b0ad737dc9b47.png

    看看上面的结果,是否和你想的一致呢?

    上述过程中使用关键字ByVal在参数名称前,可以防止函数改变参数值。MynzNumbers给三个变量赋值,再调用函数MyAverage来计算该三个变量的平均值。函数的参数就是变量a,b和 c。注意,所有变量的前面都有关键字ByVal。在计算均值之前,函数MyAverage 改变了变量a的值,在函数内部,变量a等于70(10+60),因此,当函数将计算的均值传递给过程MynzNumbers时,MyAverage显示的结果是40而不是20,接下来的三个显示每个变量的内容,变量储存的内容和它们开始被赋的值一致——10,20,30。

    那么:

    1 如果不是按值传递,结果会是什么呢?

    2 a,b,c 变量传递的又是如何由实参变成形参的呢?过程又是如何进行的呢?

    3 形参会改变指针吗?

    我们下节内容再接着谈。

    今日内容回向:

    1 什么是形参、实参?

    2 如何理解参数的传递过程?参数的传递有几种形式?

    展开全文
  • '''形式参数实际参数''' # 例子一 def add(a, b): # ab被称为形式参数 print(a+b) add(1,2) # 12为实际参数 add(b=1, a=3) # 为ab指定参数 # 例子二 def info(name, age, address, sex...
    '''函数是一段可以重复调用的代码,通过输入的参数,返回对应的结果'''
    
    '''形式参数与实际参数'''
    # 例子一
    def add(a, b):   # a和b被称为形式参数
        print(a+b)
    
    
    add(1,2)        # 1和2为实际参数
    add(b=1, a=3)   # 为a和b指定参数
    
    # 例子二
    def info(name, age, address, sex):    # 定义函数之后需要加冒号:
        print("name:{0},age:{1},address:{2},sex:{3}".format(name, age, address, sex))   # 字符串格式化
    
    
    info("AI", 18, "Beijing", "girl")     # 检查函数实际参数的字符串类型“”
    
    '''默认参数'''
    def add(a=1, b=2):   # a,b为默认参数,若有形参和默认参数同时,形参必须在前面
        print(a+b)
    
    
    add()           # 执行时参数为空,自动按默认参数执行
    add(3,4)        # 赋予实际参数时,按实际参数执行
    
    
    '''动态参数'''
    def text(*args, **kwargs):   #动态参数,当不同地方调用参数不同时,可用动态参数
        print(args, type(args))      # *args 执行结果是元组格式
        print(kwargs, type(kwargs))      # **kwargs 执行结果是字典的格式
    text()
    
    
    展开全文
  • 展开全部你的encrypt方法有错误,e69da5e887aa62616964757a686964616f31333337616463你需要在...不然你这个加密方法始终会返回一个empty string我给下代码和运行结果,importjava.util.Scanner;publicclassEncryptT...
  • 答:因为有时候程序需要多次实现某一个功能,就得重复编写实现此功能的代码,若利用函数实现某一特定的功能,就能减少重复编写程序段的工作量。 一、几点说明 1、一个C程序由多个程序模块组成,每一个程序模块作为...
  • 函数的参数是外界与函数内部通信的方法,对于有参函数来说,函数调用时函数有数据传递的关系。 看代码: //调用函数 max(5,7); //定义函数 function max(x:int,y:int):int { if(x > y) { x = x; } else...
  • 这是题目我写的代码: <code class="language-java">/* 请定义一个交通工具(Vehicle)的类其中有属性: 速度(speed) 体积(size) 最后在测试类vehicle中的main()中实例化一个交通工具对象 并通过方法给...
  • 函数的参数是外界与函数内部通信的方法,对于有参函数来说,函数调用时函数有数据传递的关系。 看代码: //调用函数max(5,7);//定义函数function max(x:int,y:int):int{ if(x > y) { x = x; } else { x =...
  • 局部变量: 作用域子啊定义位置开始,到代码结束。 下面就简单来个练习: package am1; //包名 public class Dmeo { //类名 // 全局变量 int b = 10; 这个int b = 10;就是全局变量 public void test(...
  • 大家好,我们今日继续讲解VBA代码解决方案的第124讲内容:VBA程序执行过程中,参数的传递形式...首先,我们先来理解一下几个定义:什么是形式参数,什么是实际参数,什么是参数的传递,参数传递有几种形式。1形式参...
  • 译文出自:登链翻译计划译者:DIFENG本文永久链接:learnblockchain.cn/article…校对:Tiny熊在...在github中可以找到文中涉及的完整代码列表的特性我们先假定这个列表是用来存储地址类型的,但实际上这个列表...
  • 一、形式参数1、基本类型 此种类型比较简单,对实际参数没有影响2、引用类型 1)基本类 形式参数是基本类,以代码为例:class Student{ public void study() { System.out.println("Good Good Study,Day ...
  • 大家好,我们今日继续讲解VBA代码解决方案的第124讲内容:VBA程序执行过程中,参数的...首先,我们先来理解一下几个定义:什么是形式参数,什么是实际参数,什么是参数的传递,参数传递有几种形式。1形式参数 指出现...
  • 大家好,我们今日继续讲解VBA代码解决方案的第124讲内容:VBA程序执行过程中,参数的...首先,我们先来理解一下几个定义:什么是形式参数,什么是实际参数,什么是参数的传递,参数传递有几种形式。1形式参数 指出现...
  • 模板与形式参数

    2017-09-07 21:35:00
    定义函数模板或者类模板-体化(instantiation):使用特定的模板实际参数,生成真正的模板函数模板类,然后你就可以调用这样的模板函数,或者使用模板类来生成对象-编译模板函数模板类,生成最终程序代码模板代码...
  • C--形式参数与实参

    2019-11-19 09:29:09
    形参,全称形式参数,它不是实际存在的,不占空间,故又称之为虚拟变量,而实参本身是一个变量,是占空间的,这就是形参实参的区别,另外形式参数还可以实参同名。 代码 #include <stdio.h> #include &...
  • (一)形式参数实际参数 参数:传入到函数的值 当调用含参数的函数时,这些参数的值会被复制给函数中的对应参数 2.形式参数:函数创建定义过程中,函数后面括号里的参数 形式参数只是代表一个位置,一个变量名 ...
  • 注意:以下代码是错的。 class Father { public Father(String name){ System.out.println("Father带参构造"); } } class Son extends Father { public Son(){ System.out.println("Son无参构造"); } ...
  • 函数根据有无参数和返回值,可以相互结合,共有4种组合形式 1.无参数,无返回值 2.无参数,有返回值 3.有参数,无返回值 4.有参数,有返回值 定义函数时,是否接收参数,或是否返回结果,根据实际的功能需求...
  • 参数

    2020-04-13 11:02:04
    参数分为形式参数和实际参数,打一个比方在高中的函数中F(x,y)=x^2+2y-3,将x=3,y=7代入函数,得到33+27-3=20,这里分F(x,y)就是形式参数,3与7就是实际参数。参数是自变量。而F(x,y)函数,既代码中的方法...
  • c语言的参数和变量

    2019-10-05 16:52:31
    函数被调用时给出的参数包含了实实在在的数据,会被函数内部的代码使用,所以称为实际参数,简称实参。形参实参的功能是传递数据,发生函数调用时,实参的值会传递给形参。形参实参有以下几个特点: 形参...
  • C语言 函数参数和调用函数

    千次阅读 2019-04-14 08:39:07
    如果函数要使用参数,则必须声明接受参数值的变量。这些变量称为函数的形式...一般来说,这意味着函数内的代码不会改变用于调用函数的实际参数。函数 swap() 定义如下: /* 函数定义 */ void swap(int x, int y) { ...
  • 基本参数:形式参数的改变不影响实际参数 引用参数:形式参数的改变直接影响实际参数 注意: String作为参数传递,效果基本参数传递是一样的 代码举例: public class Test { public static void main(String[] ...
  • 如果把函数比喻成一台机器,那么参数就是原材料,返回值就是最终产品;...函数被调用时给出的参数包含了实实在在的数据,会被函数内部的代码使用,所以称为实际参数,简称实参。 形参实参的功能是作数据传送,发生
  • springboot过滤器中将form表单body(json)形式的进参拦截修改里面参数内容(重写HttpServletRequestWrapper里边的方法) 一、实现思路 1.进参分为form表单body形式的json,两种形式分开处理 2.通过包装request,...
  • 在上一节中我们讲到了形式参数和实际参数的定义,同时讲到了从实际参数传递给形式参数的过程中按值传递和按地址传递的不同。为了更好的说明按值传递和按地址传递的区别,我们把上节的程序做一些修正:在函数声明行...
  • 对于参数我们需要区分形式参数和实际参数的概念。形式参数是指定义成员方法时,括号里面的参数名字。实际参数是指在程序代码中调用成员方法时,传递给方法的参数。 1 基本数据类型形式参数的值传递 示例如下: ...
  • 函数参数和返回值的作用 函数根据 有没有参数以及有没有返回值,可以相互结合,一共有四种组合形式 1.无参数,无返回值 2.无参数,有返回值 3.有参数,无返回值 4.有参数,有返回值 函数:封装功能独立的...
  • 8. 函数 P1 8.1 函数概念 函数也是一个对象 函数用来保存一些可执行的代码,并且可以在需要时,对这些语句进行多次调用 语法 def 函数名([形参1,形参2,形参3…]): 代码块 ...注意:函数名必须符合...实参(实际参数)指

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 697
精华内容 278
关键字:

形式参数和实际参数代码