Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数

Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数

一、Python参数类型

形参:定义函数时的参数变量。

实参:调用函数时使用的参数变量。

参数传递的过程,就是把实参的引用传递给形参,使用实参的值来执行函数体的过程。

在 Python 中,函数的实参/返回值都是是靠引用来传递的。

在调用函数时,通常会传递参数,不同的参数处理不同的数据。一般有普通参数、默认参数、可变位置参数、可变关键字参数等。

1.普通参数:按照参数位置,依次传递参数。

def add(x,y):
    return x + y

print(add(3,4))

2.默认参数:定义函数时,可以给某个参数赋一个默认值。

调用函数时,如果没有传入默认参数的值,则在函数内部使用参数默认值。

要使用最常见的值作为默认值,从而简化函数的调用。

如果一个参数的值不能确定,则不应该设置默认值,具体的数值在调用函数时由外界传递。在调用函数时,如果有多个默认参数,需要指定参数名,这样解释器才能够知道参数的对应关系。

def add(x,y=1):
    return x+y

print(add(2))
print(add(2,3))

当一个参数有默认值时,调用时如果不传递此参数,会使用默认值。

注意:带默认值参数必须在不带默认值参数之后,否则会报错。

3.可变位置参数

定义参数时参数前面加一个*,表示这个参数是可变的,可以接受任意多个参数,这些参数构成一个元组,只能通过位置进行参数传递。实例如下:

求一组数字的最大值,最小值,参数个数:

def max(*a):
    m=n=a[0]
    for x in a:
        if x>=m:
            m=x
        else:
            n=x
    return m,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类型。

def add(a,b):
    return a+b

data = [4,3]
print(add(*data))#位置参数解构
data1 = {‘a‘:3,‘b‘:4}
print(add(**data1))#关键字参数解构

二、程序练习题

5.2 实现 isOdd()函数,参数为整数,如果整数为奇数,返回True,否则返回False。

实现代码如下:

def isOdd(num):

    if num%2!=0:

        return True

    else:

        return False

s=eval(input("请输入一个整数:"))

print(isOdd(s))        

运行结果:

5.3 实现 isNum()函数,参数为一个字符串,如果这个字符串属于整数、浮点数或复数的表示,则返回True,否则返回False。

实现代码如下:

def isNum(num):

    try:        

        n=type(eval(num))

        if n==type(1):#输入为整型

            return True

        elif n==type(1.0):#输入为浮点型

            return True

        elif n==type(1+1j):#输入为复数

            return True       

    except:

        return False

n=input("请输入一个字符串:")

print(isNum(n))

运行结果:

5.4 实现 multi()函数,参数个数不限,返回所有参数的乘积。

实现代码如下:

def multi(s):

    m = 1

    for i in s:

        m *= int(i)

    return m

n=input("请输入若干整数:").split()

print(multi(n))

运行结果:

5.5 实现 isPrime()函数,参数为整数,要有异常处理。如果整数是质数,返回True,否则返回False。

实现代码如下:

def isPrime(num):   

    try:

        num = eval(num)

        if type(num) == type(1):#判断输入是否为整型

            if num<=1:#判断一个数字是否是质数:质数是一个只能被自己和1整除的大于1的正整数。注意1不是质数。

                return False

            elif num==2:#2是质数,这里单独作为一个条件是为了与下面的判断条件区分

                return True

            else:

                for i in range(2,num):#这里考虑的是大于2的正整数num,将这个数依次除以从2到num-1的整数进行取模运算,只要有一个数使它余数为0就说明它不是质数

                    if num % i == 0:

                        return False

                    else:

                        return True                     

        else:

            raise ValueError#引发ValueError异常

    except ValueError:#传入参数异常处理

        return "输入有误!请输入整数!"#这里没有使用print语句,如果没有给定return一个返回值,则函数的返回值为None

    except:#其他异常处理

        return "输入有误!请输入整数!"

n = input("请输入一个整数:")

print(isPrime(n))        

运行结果:

原文地址:https://www.cnblogs.com/BIXIABUMO/p/11667801.html

时间: 2024-10-04 08:32:12

Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数的相关文章

Python参数类型以及常见的坑

导语 ??由于之前遇到过几次有关于参数类型的坑,以及经常容易把一些参数类型搞混淆,现在做一下有关参数类型的总结记录以及对之前踩坑经历的分析. 参数类型 首先我们列举一下有关于Python的参数类型,以及实际上的运用和原理. 位置参数(必选参数) 默认参数 可变参数 关键字参数 位置参数(必选参数) 首先是位置参数,同时也被称作必选参数,位置参数很好理解,只要记住这点: 在函数定义时直接给定的此参数名称,调用时按照参数的位置顺序,依次赋予参数值. 示例: def person_info(name,

Python 函数参数类型大全(非常全!!!)

Python 函数参数类型大全(非常全!!!) 1.在python编写程序里面具有函数文档,它的主要作用是为了让别人可以更好的理解你的函数,所以这是一个好习惯,访问函数文档的方式是: MyFunction.__doc__ 2.python编写程序函数的时候具有两类参数: 形式参数(形参)及其实际参数(实参). 跟绝大部分编程语言一样,形参指的是函数创建和定义过程中小括号里的参数,而实参指的是函数在调用过程中传递进去的参数. 3.关键字参数,是指函数在调用的时候,带上参数的名字去指定具体调用的是哪

python函数参数类型及其顺序

根据inspect模块官文文档中关于函数参数类型的相关说明,python函数参数共有五种类型,按顺序分别为:POSITIONAL_ONLY.POSITIONAL_OR_KEYWORD.VAR_POSITIONAL.KEYWORD_ONLY.VAR_KEYWORD.如图: POSITIONAL_ONLY:参数值必须以位置参数的形式传递.python没有明确的语法来定义POSITIONAL_ONLY类型的参数,但很多内建或扩展模块的函数中常常会接收这种参数类型,实际使用中不多见,这里暂不考虑. PO

Python函数学习-参数类型

函数的参数 在定义Python函数时可定义形参,这些参数在调用时候才能确定具体的值,由函数的调用者负责为行参传入参数值 函数的参数类型 一. 位置参数 也叫必传参数,顺序参数,是最重要的,也是必须在调用函数时明确提供的参数!位置参数必须按先后顺序,一一对应,个数不多不少的传递! 说明:a,b,c是函数add的行参,没有具体的值,只有在add(x,y,z)是才被传入值,a=x=1,b=y=2,c=z=3, 其中x,y,z叫做实参,add(4,5,6,7),add(5,7)均为错误调用 二.关键字参

基于 Python 3 新增的函数注解(Function Annotations )语法实现参数类型检查功能

2016-01-06 python python 3 / Function Annotations 函数注解(Function Annotations) 类型检查 参考资料 函数注解(Function Annotations) 函数注解语法 可以让你在定义函数的时候对参数和返回值添加注解: def foobar(a: int, b: "it's b", c: str = 5) -> tuple: return a, b, c a: int 这种是注解参数 c: str = 5 是

【Python】函数参数类型及用法

 一.函数的参数类型 def hs(a1,a2,a3,...): ****statements 其中a1,a2,a3是函数的参数,函数的参数类型可分为:必须参数.默认参数.可变参数(不定长参数).关键字参数.组合参数,总共5种. 二.必须参数 其实我们之前举得例子就是必须参数,以下例子必须参数: >>>def hello(str): .... print('必须参数是:',str) >>>hello('hello,world') 我们可以看到在函数hello中,str作

(一)Python入门-5函数:06参数类型-位置参数-默认值参数-命名参数-可变参数-强制命名参数

参数的几种类型: 位置参数: 函数调用时,实参默认按位置顺序传递,需要个数和形参匹配.按位置传递的参数,称为: “位置参数” 默认值参数: 我们可以为某些参数设置默认值,这样这些参数在传递时就是可选的.称为“默认值参数”. 默认值参数放到位置参数后面. 命名参数: 我们也可以按照形参的名称传递参数,称为“命名参数”,也称“关键字参数”. 可变参数: 可变参数指的是“可变数量的参数”.分两种情况: 1. *param(一个星号),将多个参数收集到一个“元组”对象中. 2. **param(两个星号

python的参数类型

转:http://blog.useasp.net/archive/2014/06/23/the-python-function-or-method-parameter-types.aspx Python中函数的参数有4种形式,分别是: 位置或关键字参数(Positional-or-keyword parameter) 仅位置的参数(Positional-only parameter) 任意数量的位置参数(var-positional parameter) 任意数量的关键字参数(var-keywo

pycahrm使用docstrings来指定变量类型、返回值类型、函数参数类型

py里面不需要显示声明类型,这和java c这些静态语言不同,虽然python这样做少了一些代码和写代码的困难度,但还是非常多的弊端的,运行速度 代码安全, 这些都是语言本身带来的本的弊端,这些没办法没办法弥补(说用c扩展和加入大量if isinstance来判断类型的,这是不好的不方便的).但下面这两种却是可以通过docstrings来弥补的. 1.没有类型就给函数(或者方法)调用者带来麻烦,这个函数怎么用,这个参数代表什么,需要传一个什么样的参数来调用这个函数,函数返回什么东西,这都对代码阅