python函数的参数可以接收哪些类型的数据_Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数...
Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数
一、Python参数类型
形参:定义函数时的参数变量。
实参:调用函数时使用的参数变量。
参数传递的过程,就是把实参的引用传递给形参,使用实参的值来执行函数体的过程。
在 Python 中,函数的实参/返回值都是是靠引用来传递的。
在调用函数时,通常会传递参数,不同的参数处理不同的数据。一般有普通参数、默认参数、可变位置参数、可变关键字参数等。
1.普通参数:按照参数位置,依次传递参数。
defadd(x,y):return x +yprint(add(3,4))
2.默认参数:定义函数时,可以给某个参数赋一个默认值。
调用函数时,如果没有传入默认参数的值,则在函数内部使用参数默认值。
要使用最常见的值作为默认值,从而简化函数的调用。
如果一个参数的值不能确定,则不应该设置默认值,具体的数值在调用函数时由外界传递。在调用函数时,如果有多个默认参数,需要指定参数名,这样解释器才能够知道参数的对应关系。
def add(x,y=1):return x+yprint(add(2))print(add(2,3))
当一个参数有默认值时,调用时如果不传递此参数,会使用默认值。
注意:带默认值参数必须在不带默认值参数之后,否则会报错。
3.可变位置参数:
定义参数时参数前面加一个*,表示这个参数是可变的,可以接受任意多个参数,这些参数构成一个元组,只能通过位置进行参数传递。实例如下:
求一组数字的最大值,最小值,参数个数:
def max(*a):
m=n=a[0]for x ina:if x>=m:
m=xelse:
n=xreturnm,n,len(a)
b=input(‘输入若干数字,用空格隔开:‘).split()print(max(*b))
运行结果:
关于最后一行:print(max(*b)),*b的作用是解包,否则传递的是整个列表。
如果不加*,则输出结果如下:
4.可变关键字参数:
定义参数时,在前面加**,表示这个参数可变,可以接受任意多个参数,这些参数构成一个字典,只能通过关键字参数传递。
参数的混合使用:
#位置参数可以和关键字参数一起使用。#当位置可变参数和关键字可变参数一起使用的时候,可变位置参数必须在前。
def fn(*args,**kwargs):print(args)print(kwargs)
fn(1,2,3,x=4,y=5)
#普通参数可以和可变参数一起使用,但是传参的时候必须匹配
def fn(x,y,*args,**kwargs):print(x)print(y)print(args)print(kwargs)
fn(1,2,3,4,5,a=6,b=7)
#关键字可变参数不允许在普通参数之前#下面的方式定义会出错
def fn(**kwargs,x):print(x)
fn(a=1,2)
#默认参数可以在可变位置参数之前
def fn(x=5,*args):print(x)
fn()
参数解构(拆包):
参数解构发生在函数调用的时候,可变参数发生在函数定义的时候。
解构有两种形式:
1.解构符号:*,解构的对象:可迭代对象。解构后的结果:位置参数。
2.解构符号:**,解构的对象:字典。解构的结果:关键字参数。
关键字参数解构,key必须是str类型。
defadd(a,b):return a+b
data= [4,3]print(add(*data))#位置参数解构
data1 = {‘a‘:3,‘b‘:4}print(add(**data1))#关键字参数解构
二、程序练习题
5.2 实现isOdd()函数,参数为整数,如果整数为奇数,返回True,否则返回False。
实现代码如下:
defisOdd(num):if num%2!=0:returnTrueelse:returnFalse
s=eval(input("请输入一个整数:"))print(isOdd(s))
运行结果:
5.3 实现isNum()函数,参数为一个字符串,如果这个字符串属于整数、浮点数或复数的表示,则返回True,否则返回False。
实现代码如下:
defisNum(num):try:
n=type(eval(num))if n==type(1):#输入为整型
returnTrueelif n==type(1.0):#输入为浮点型
returnTrueelif n==type(1+1j):#输入为复数
returnTrueexcept:returnFalse
n=input("请输入一个字符串:")print(isNum(n))
运行结果:
5.4 实现multi()函数,参数个数不限,返回所有参数的乘积。
实现代码如下:
defmulti(s):
m= 1
for i ins:
m*=int(i)returnm
n=input("请输入若干整数:").split()print(multi(n))
运行结果:
5.5 实现isPrime()函数,参数为整数,要有异常处理。如果整数是质数,返回True,否则返回False。
实现代码如下:
defisPrime(num):try:
num=eval(num)if type(num) == type(1):#判断输入是否为整型
if num<=1:#判断一个数字是否是质数:质数是一个只能被自己和1整除的大于1的正整数。注意1不是质数。
returnFalseelif num==2:#2是质数,这里单独作为一个条件是为了与下面的判断条件区分
returnTrueelse:for i in range(2,num):#这里考虑的是大于2的正整数num,将这个数依次除以从2到num-1的整数进行取模运算,只要有一个数使它余数为0就说明它不是质数
if num % i ==0:returnFalseelse:returnTrueelse:raise ValueError#引发ValueError异常
except ValueError:#传入参数异常处理
return "输入有误!请输入整数!"#这里没有使用print语句,如果没有给定return一个返回值,则函数的返回值为None
except:#其他异常处理
return "输入有误!请输入整数!"n= input("请输入一个整数:")print(isPrime(n))
运行结果:
原文地址:https://www.cnblogs.com/BIXIABUMO/p/11667801.html
python函数的参数可以接收哪些类型的数据_Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数...相关推荐
- python一些小习题 田字格、isodd、isnum、multi、isprime、绝对素数、哥德巴赫猜想
Lily学python 一些小习题,答案和我的思路差好多啊,代沟,一定是代沟-- 1.1.定义函数输出一个简单的田字格. 建立主程序,由用户输入一个整数,输出更大的田字格图形. 输出结果: 这个好简单 ...
- 如何把double类型的数据转换为int类型的数据?
方法1:强制转型 double a = 12.3; int b = (int)a; System.out.println(b); 结果: 12 方法2:使用封装类Double double a = 1 ...
- python函数的参数可以接收哪些类型的数据_python强势来袭-0015-函数中的参数-送礼开始...
接上一讲,这节我们专门介绍python函数的参数处理 本节主要内容 函数的形式参数和实际参数 函数的参数定义规则 函数参数的默认值 函数的可变参数 函数的关键字参数 函数的命名关键字参数 1.3. 函 ...
- python使用什么函数接收用户输入的数据_python 3.x:调用和执行函数的用户输入...
有许多类似的问题,但没有一个答案解决了我的问题. 我定义了几个解析大型数据集的函数.首先,我调用数据,然后将数据(在.txt中表示为行和列)组织到列表中,我将为各个数据条目编制索引.在此之后,我建立了 ...
- python变量无需指定类型对吗_Python变量类型 - osc_3rgq3dae的个人空间 - OSCHINA - 中文开源技术交流社区...
变量存储在内存中的值,这就意味着在创建变量时会在内存开辟一个空间. 基于变量的数据类型,解析器会分配指定内存,并决定什么数据可以被存储在内存中. 因此变量可以指定不同的数据类型,这些变量可以存储整数. ...
- python复数类型及其特点_python 复数类型
1 Python中的算数虚数不能单独存在,它们总是和一个值为0.0的实数部分一起构成一个复数表示虚数的语法:real+imagj实数部分和虚数部分都是浮点数虚数部分必须有j或J下面是些得数:64.23 ...
- python中的序列类型和序列号_python~序列类型及操作
''' 序列类型及操作 序列处理函数及方法 元组类型及操作 列表类型及操作 序列类型及应用场景 序列类型定义: 序列是具有先后关系的一组元素 序列是一维元素向量,元素类型可以不同 类似数学元素序列 元 ...
- uniapp App跳转微信小程序并互相传递参数、接收微信小程序传递的参数
本文是uniapp打包成安卓App. 一.注意事项 1.用到了分享功能,在打包App时,需要配置manifest.json:App 模块配置->Share.按照提示填写微信分享的信息,appid ...
- python复数类型及其特点_python复数类型
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我想知道python(3.3.0)打印复数的方式. 我正在寻找一个解释,而不是改 ...
最新文章
- Linux下安装Oracle11g服务器(centos7下)
- 1.0 基础、标示符、常量、数据类型(enum 枚举,struct 结构体)、操作符、循环、数组...
- PHP中过滤常用标签的正则表达式
- 微信支付在巴黎发布“智慧生活零时差”全球战略
- JPA_@Table 注解详解
- 提高 服务器 内存 利用率_怎样提高AI服务器的利用率
- linux进程上下文切换的具体过程,Linux实验三 结合中断上下文切换和进程上下文切换分析Linux内核一般执行过程...
- 19个AI热门应用领域,你确定不了解一下?
- 在线判题系统(oj)效果分析图_在线代码编写平台开发分享
- 【windows】windows 11 安装解决 这台电脑无法运行 Windows 11
- java两个小球相撞_JAVA小游戏之两个物体碰撞产生的碰撞检测
- 05 | 服务编排层:Pipeline 如何协调各类 Handler ?
- jqueryui时间插件_jQueryUI菜单插件教程示例
- 获得中文每个字的拼音首字母
- 解决android SDK不能更新,appium测试混合app无法返回webview问题
- 计算机网络的现状分析,计算机网络技术的发展现状和趋势分析.doc
- 中兴捧月比赛DIJKSTRA派算法说明
- ⅰcp经济模型_新经济地理学基本模型及其扩展综述_刘亚军
- Spark 关于提交任务报错 WARN scheduler.TaskSchedulerImpl: Initial job has not accepted any resources;
- python 中文排序(按拼音)
热门文章
- 【Zookeeper】zookeeper客户端KeeperErrorCode = ConnectionLoss
- 【Java】Base64编码与解码
- Java中static变量作用和用法详解
- 我的JavaWeb学习2
- HTML5特性system,HTML5教程 FileSystemAPI整理
- c 语言比较三个整数大小,C 语言 —— 比较三个整数的大小并从大到小输出
- android cardview控件,CardView控件的使用方式
- 使用markdown编辑器(自用,没内容。。)
- Git LFS的使用
- Python3多进程与多线程区别及使用(1.进程)