hangfrieddays 发表于 2022-7-30 11:33:43

python函数参数

def cost_primes(start = 1, end):
    count = 0
    for i in range(start, end+1):
      if(is_prime(i)):
            count += 1


请问当函数只输入参数一个参数时给到end,当函数输入两个参数时按顺序给到start和end该怎样实现

叼辣条闯世界 发表于 2022-7-30 11:41:49

cost_primes(end=123)#一个参数
cost_primes(123,456)#两个参数

Brick_Porter 发表于 2022-7-30 14:31:13

默认参数不能位于位置参数之前。你的这种写法是会报错的。调换一下start和end这两个参数的位置即可
def cost_primes(end, start=1):
    count = 0
    ...
end没有默认值,属于位置参数,必须给它传值才能调用函数;start有默认值,可以传值也可不传。所以调用函数时就可以这样写了:
cost_primes(3)# 传入一个参数
cost_primes(start=23, end=66)# 传入两个参数
注意传入两个参数时的写法,因为使用等号直接指定给某个参数传值,所以位置关系就不那么重要了,也就是说cost_primes(end=66, start=23)和cost_primes(start=23, end=66)是一样的
页: [1]
查看完整版本: python函数参数