Python:函数不同参数调用方法

17 篇文章 17 订阅
该博客介绍了Python函数参数的使用,包括默认参数、位置参数和关键字参数,并提供了计算三角形面积的函数示例。用户可以通过输入三角形的边长调用函数计算面积,也可以使用默认参数或关键字参数进行计算。此外,还展示了如何计算多边形阴影部分的面积。
摘要由CSDN通过智能技术生成

Python语言基础-2.5函数基础

第2关:函数不同参数调用方法

相关知识

为了完成本关任务,你需要掌握:1.默认参数 2.位置与关键字参数 3.可变参数
函数参数有形参和实参之分,定义函数时函数头包含的参数是形参,函数调用时所使用的实际参数称为实参,函数调用的过程就是实参传递给形参的过程,python函数参数调用方法采用"传对象引用"的方式, 如参数为不可变对象,函数内部对参数的修改不会影响到函数外部的实际参数,如果参数为可变对象,例如列表,字典,则内部参数的修改会影响到函数内部的实参变量。

默认参数,位置参数与关键字参数

例1:求解一元二次方程的根的程序代码如下:

,

下面采用不同的参数调用方法均可获得方程的根:
1、位置参数:根据函数定义的位置来传递参数 x1, x2 = solve(3,4,5) #位置参数a=3,b=4,c=5 print('x1=%f, x2=%f' % (x1, x2))

2、默认参数:函数定义时为参数提供默认值,调用时默认参数的值可传可不传,放在所有参数的后面 a, b, c = 1, 10, -1 x3, x4 = solve(a, b) #默认第三个参数为5,a,b为位置参数 print('x3=%f, x4=%f' % (x3, x4))

3、关键字参数:通过直接给形式参数赋值的方式指示哪个参数需要传递什么值,可以脱离参数的顺序 x5, x6 = solve(b=20,c=10,a=2) #关键字参数 print('x5=%f, x6=%f' % (x5, x6)) 4、可变参数的应用 def vfunc(a,*b): #b为可变参数 for n in b: a+=n return a print(vfunc(1,2,3,4,5,6,7,8))

编程要求

根据提示,在右侧编辑器补充代码,编写下列程序:

1、定义一个判断是否是三角形的函数,是返回1,否则返回0;

2、定义一个计算三角形的面积的函数,设置默认参数为(a=3,b=4,c=5);

3、从键盘输入任意的三条边的长度,通过位置参数调用函数求面积并输出,面积保留小数点后4位;

4、根据默认参数计算三角形的面积并输出;

5、设置关键字参数计算指定三角形的面积;       

6、计算多边形阴影部分的面积

 

 代码如下:

# -*- coding: utf-8 -*-
"""
Created on Fri Apr  9 10:04:39 2021
@author: hzh
"""

#根据提示信息,在空位补充代码,编写下列程序: 
#1、定义一个判断是否是三角形的函数,IsTriange(a,b,c),
#其中a,b,c为三角形三条边,如果是返回1,否则返回0

#控制格式输出
def printf(pyout):
    print('三角形面积:',end='')
    print('%.4f'%pyout)

import math
def IsTriange(a,b,c):
##########begin################    
    if a+b>c and a+c>b and b+c>a:
        return 1
    else:
        return 0
    
##########ends################     
 
#定义一个计算三角形的面积的函数,TriArea(a,b,c),
#其中a,b,c为三角形三条边,如果构成三角形,返回三角形的面积,否则返回0    
def TriArea(a=3,b=4,c=5):#设置默认参数
##########begin################     
    if IsTriange(a,b,c):
        p = (a+b+c)/2
        temp = p*(p-a)*(p-b)*(p-c)
        s = math.sqrt(temp)
        return s
    else:
        return 0
    
##########ends################
        
#3、从键盘输入任意的a,b,c 按位置调用函数实现计算三角形面积的函数,如果不能构成三角形,返回0,否则输出三角形面积。
##########begin################ 
 
a,b,c=eval(input())
squrtri=TriArea(a,b,c)
printf(squrtri)

##########ends################
print('*'*20)
#4、按默认参数调用函数计算三角形的面积,保留小数点后4位
##########begin################ 

printf(TriArea())

##########ends################ 
print('*'*20)
#5、设置关键字参数调用函数计算(c=10,b=20,a=15)三角形的面积
##########begin################
 
printf(TriArea(15,20,10))

##########ends################ 
print('*'*20)

#6、计算多边形阴影部分面积,保留小数点后4位
##########begin################ 

tris_all=TriArea(9.8,9.3,6.4)
tris_a=TriArea(2.9,4.1,4.7)
tris_b=TriArea(2.0,1.4,2.3)
Ans=tris_all-tris_a+tris_b
print('多边形面积为:',end='')
print('%.4f'%Ans)

##########ends################ 
print('*'*20)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值