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函数...相关推荐

  1. python一些小习题 田字格、isodd、isnum、multi、isprime、绝对素数、哥德巴赫猜想

    Lily学python 一些小习题,答案和我的思路差好多啊,代沟,一定是代沟-- 1.1.定义函数输出一个简单的田字格. 建立主程序,由用户输入一个整数,输出更大的田字格图形. 输出结果: 这个好简单 ...

  2. 如何把double类型的数据转换为int类型的数据?

    方法1:强制转型 double a = 12.3; int b = (int)a; System.out.println(b); 结果: 12 方法2:使用封装类Double double a = 1 ...

  3. python函数的参数可以接收哪些类型的数据_python强势来袭-0015-函数中的参数-送礼开始...

    接上一讲,这节我们专门介绍python函数的参数处理 本节主要内容 函数的形式参数和实际参数 函数的参数定义规则 函数参数的默认值 函数的可变参数 函数的关键字参数 函数的命名关键字参数 1.3. 函 ...

  4. python使用什么函数接收用户输入的数据_python 3.x:调用和执行函数的用户输入...

    有许多类似的问题,但没有一个答案解决了我的问题. 我定义了几个解析大型数据集的函数.首先,我调用数据,然后将数据(在.txt中表示为行和列)组织到列表中,我将为各个数据条目编制索引.在此之后,我建立了 ...

  5. python变量无需指定类型对吗_Python变量类型 - osc_3rgq3dae的个人空间 - OSCHINA - 中文开源技术交流社区...

    变量存储在内存中的值,这就意味着在创建变量时会在内存开辟一个空间. 基于变量的数据类型,解析器会分配指定内存,并决定什么数据可以被存储在内存中. 因此变量可以指定不同的数据类型,这些变量可以存储整数. ...

  6. python复数类型及其特点_python 复数类型

    1 Python中的算数虚数不能单独存在,它们总是和一个值为0.0的实数部分一起构成一个复数表示虚数的语法:real+imagj实数部分和虚数部分都是浮点数虚数部分必须有j或J下面是些得数:64.23 ...

  7. python中的序列类型和序列号_python~序列类型及操作

    ''' 序列类型及操作 序列处理函数及方法 元组类型及操作 列表类型及操作 序列类型及应用场景 序列类型定义: 序列是具有先后关系的一组元素 序列是一维元素向量,元素类型可以不同 类似数学元素序列 元 ...

  8. uniapp App跳转微信小程序并互相传递参数、接收微信小程序传递的参数

    本文是uniapp打包成安卓App. 一.注意事项 1.用到了分享功能,在打包App时,需要配置manifest.json:App 模块配置->Share.按照提示填写微信分享的信息,appid ...

  9. python复数类型及其特点_python复数类型

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我想知道python(3.3.0)打印复数的方式. 我正在寻找一个解释,而不是改 ...

最新文章

  1. Linux下安装Oracle11g服务器(centos7下)
  2. 1.0 基础、标示符、常量、数据类型(enum 枚举,struct 结构体)、操作符、循环、数组...
  3. PHP中过滤常用标签的正则表达式
  4. 微信支付在巴黎发布“智慧生活零时差”全球战略
  5. JPA_@Table 注解详解
  6. 提高 服务器 内存 利用率_怎样提高AI服务器的利用率
  7. linux进程上下文切换的具体过程,Linux实验三 结合中断上下文切换和进程上下文切换分析Linux内核一般执行过程...
  8. 19个AI热门应用领域,你确定不了解一下?
  9. 在线判题系统(oj)效果分析图_在线代码编写平台开发分享
  10. 【windows】windows 11 安装解决 这台电脑无法运行 Windows 11
  11. java两个小球相撞_JAVA小游戏之两个物体碰撞产生的碰撞检测
  12. 05 | 服务编排层:Pipeline 如何协调各类 Handler ?
  13. jqueryui时间插件_jQueryUI菜单插件教程示例
  14. 获得中文每个字的拼音首字母
  15. 解决android SDK不能更新,appium测试混合app无法返回webview问题
  16. 计算机网络的现状分析,计算机网络技术的发展现状和趋势分析.doc
  17. 中兴捧月比赛DIJKSTRA派算法说明
  18. ⅰcp经济模型_新经济地理学基本模型及其扩展综述_刘亚军
  19. Spark 关于提交任务报错 WARN scheduler.TaskSchedulerImpl: Initial job has not accepted any resources;
  20. python 中文排序(按拼音)

热门文章

  1. 【Zookeeper】zookeeper客户端KeeperErrorCode = ConnectionLoss
  2. 【Java】Base64编码与解码
  3. Java中static变量作用和用法详解
  4. 我的JavaWeb学习2
  5. HTML5特性system,HTML5教程 FileSystemAPI整理
  6. c 语言比较三个整数大小,C 语言 —— 比较三个整数的大小并从大到小输出
  7. android cardview控件,CardView控件的使用方式
  8. 使用markdown编辑器(自用,没内容。。)
  9. Git LFS的使用
  10. Python3多进程与多线程区别及使用(1.进程)