Python—函数

一、函数的理解

1、函数定义:不指定函数内容

def 函数名(形参):
     函数体
    return 返回值

 函数名(实参)
 print(函数名(实参)
def hello():                        ##定义函数,不会执行函数内容
    print('nihao')                  ##函数内容
hello()                             ##调用函数,真正执行函数内容

定义函数时, 参数称为形参, 这个参数的名字可以任意修改;

def hello(username):    # username='harry'
    print("hello %s" %(username))
hello('harry')

for循环遍历列表内容; user=‘harry’, ‘jerry’, ‘tom’

def hello(username):
print("hello %s" %(username))
for user in ['harry', 'jerry', 'tom']:
      调用函数时的参数称为实参, 这个参数必须有存在的值;
   hello(user)

二、带有返回值的函数

1、函数的返回值

def hello():
    return "world"   ###return 关键字, 函数的返回值, 通过print打印
                     ####一般函数都有返回值, 如果在python中没有返回值时, 默认返回None
print(hello())

2、默认参数

默认参数一般情况下为不可变类型

def mypow(a,b=2):     ##如果只传递一个参数, 那么b默认为2
    return a ** b
print(mypow(2,4))     ##如果传递两个参数, a=2,b=4, 覆盖原有的默认值
print(mypow(2))

3、可选参数

当形参里面是*变量名, 可选参数, 可以传递任意多个参数

def mysum(*args):
    return sum(args)
print(mysum(1,2))
print(mysum(1,2,3))

4、关键字参数

**变量名可以接收任意多个key-value键值对,接受的变量是字典类型的key—value键值对

def get_info(name,passwd,**kwargs):
    print(name,passwd,end=' ')
    print(kwargs)
get_info('fentiao','redhat')
get_info('fendai','123',city="xi'an",age=10,weight=80)

这里写图片描述

5、return

def hello():
    # 函数一旦遇到return, 后面的代码不再执行
    return "ok"
    print("hello")
    print("hello")
print(hello())

6、函数的作用域

count = 10
print("全局变量:",id(count))

def hello():
    # 函数里面的变量, 只在函数内部生效;
    # global声明局部变量为全局变量;
    global  count
    count = 20
    print("局部变量:", id(count))

hello()
print(count)

7、函数的多个返回值

def hello():
    return "hello","world"
res1,res2 = hello()
print(res1,res2)

8、形参的顺序

(常用的)参数顺序: 必选参数 > 默认参数 > 可变参数 > 关键字参数
特例): 可变参数 > 默认参数

练习

1.f(n)为完全平方和公式,给定k,a,b,求a,b之间有多少个n满足k*f(n)=n

k = int(input('k:'))
a = int(input('a:'))
b = int(input('b:'))
count = 0       ##从0开始
def f(n):       ##计算完全平方和
    res = 0
    for i in str(n):    ##强制成字符串遍历
        res +=int(i)**2  ##求完全平方和
    return res
def isok(num):   ##用一个函数来判断是否满足条件
    if k*f(num) ==num:   
        return True
    else:
        return False
for num in range(a,b+1):   ##在a,b之间尝试
    if isok(num):
        count +=1     ##满足条件则+1
print(count)

2.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

def main(num):  ##定义函数
    for x in range(1000):  ##遍历1000内的整数
        if x ** 2 == num:  ##当num是完全平方数时,返回True
            return True

for i in range(1000):   ##遍历1000内的整数
    n1 = i + 100   ##题目要求+100和+168后依然是完全平方数
    n2 = i + 168
    if main(n1) and main(n2):  ##调用函数,当n1和n2均成立,i满足要求
        print(i)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值