python学习笔记(六)函数基础

python学习笔记第六天函数基础

函数简介

定义:具有特定功能的一段代码
优点:
可以减少代码的重复书写
可以将功能的实现着和使用者分开,提高开发效率
分类:
库函数:print、input、type、len、abs、round、ord、chr等
自定义:用户自己设计封装的函数
函数使用

定义格式

def 函数名([参数列表]):
	函数体
使用说明:
def:定义函数的关键字
函数名:符合标识符的命名规范即可
参数列表:完成特定功能所需的条件,[]表示可选的
函数体:实现特定功能的代码内容

函数调用:

函数不调用是不会执行的
调用格式:函数名([参数列表])

函数分类

说明:按照参数及返回值的有无进行分类

示例:

# 无参无返回值
def print_ten_hello():
    for i in range(10):
        print('Hello world!')
        
# 带参无返回值
def print_n_hello(n=10):
    for i in range(n):
        print('Hello world!')  
        
# print_n_hello(3)

# 带参有返回值
def add(a, b):
    # print(a+b)
    # 返回结果:一旦执行return,函数就结束了
    # 若没有指定返回值,默认返回None
    return a+b
print('此处永远无法执行')

print(add(3, 5))

参数使用

形参:形式参数,写在函数定义处的参数

实参:实际参数,写在函数调用处的参数

位置参数:函数定义时没有默认值的参数称为位置参数,也叫必传参数,实参必须与其对应

默认参数:函数定义时有默认值的参数称为默认参数,调用时可以不传。默认参数必须放在最后

关键字参数:函数调用时指定参数名字进行传参,这样参数的顺序就无所谓了

可变长度参数:

# 可变长度参数
def var_len_args(a, b, *args, **kwargs):
    print(a, b)
    # args:是一个元组,保存多传的位置参数
    print('args:', args)
    # kwargs:是一个字典,保存多传的关键字参数
    print('kwargs:', kwargs)
var_len_args(1, 2, 3, 4, name='dahua', age=18)


# `*`的作用

```python
def test(a, b):
    print(a, b)


# test(100, 200)
lt = [100, 200]
# test(lt[0], lt[1])
# 与上面等价,*相当于将序列中的元素展开作为函数参数
test(*lt)


def test2(aa, bb):
    print(aa, bb)


dt = {'aa': '123', 'bb': '456'}
# test2(aa=dt['aa'], bb=dt['bb'])
# 与上面等价,**相当于将字典中键值对转换为关键字参数的形式
# 字典的键应该与函数的参数相同才能使用
test2(**dt)

函数思考

函数调用和定义的位置是否是任意的?
不是,一定是定义在前,调用在后。
函数的名字能否相同?。

可以,语法不报错,但是后者会覆盖前者,不同位置
的调用结果不同 不建议定义函数名字相同的函数。

函数中能否定义另一个函数?
可以,定义在函数内部的函数称为内部函数,是很多高级功能实现的基础

变量的作用域

块级作用域

if True:
    a = 250

# 在代码块内部定义的变量可以在代码块外部使用
# 说明没有块级作用域
print(a)

局部作用域

def test():
    b = 100

test()
# 函数内部定义的变量只能在函数内使用
# 说明有局部作用域,外部使用会报错
# print(b) 这里无法使用

全局作用域

# 这个变量是定义在 外边的  可以在任何地方调用
c = 200

def show():
    # 声明使用全局变量,然后就可以随意使用了
    global c
    # c = 100   # 这样相当于定义了新的局部变量
    # 函数内部可以使用全局变量,但是不能修改
    print('in func show:', c)
    c = 100

show()
print(c)
nonlocal

global  使用global 声明的全局变量可以在函数内部更改
def wai():
    d = 200
    def nei():
        # 若想修改外部函数的局部变量,需要使用nonlocal进行声明
        nonlocal d
        # d = 300 # 这样相当于定了局部变量
        # 内部函数中可以使用外部函数的局部变量,但是不能改
        # d += 100
        print(d)
        d += 100
    nei()
    print(d)

wai()

类型判断

示例:

a = 100
print(type(a))

# if type(a) == int:        # 与特定的类型对比
# if type(a) == type(123):  # 与已知的类型对比
if isinstance(a, int):      # 使用专门的类型判断函数,是返回True,不是返回False
    print(a, '是整型变量')
    
def test():   
    pass

print(type(test))

# 不能使用这种方式判断是否是函数
# print(isinstance(test, function))

# 使用专门的函数进行判断,是返回True,不是返回False
from inspect import isfunction

print(isfunction(test))

# 判断一个对象是否可以调用,能够调用的不一定都是函数
print(callable(test))
print(callable(a))
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
旅游社交小程序功能有管理员和用户。管理员有个人中心,用户管理,每日签到管理,景点推荐管理,景点分类管理,防疫查询管理,美食推荐管理,酒店推荐管理,周边推荐管理,分享圈管理,我的收藏管理,系统管理。用户可以在微信小程序上注册登录,进行每日签到,防疫查询,可以在分享圈里面进行分享自己想要分享的内容,查看和收藏景点以及美食的推荐等操作。因而具有一定的实用性。 本站后台采用Java的SSM框架进行后台管理开发,可以在浏览器上登录进行后台数据方面的管理,MySQL作为本地数据库,微信小程序用到了微信开发者工具,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得旅游社交小程序管理工作系统化、规范化。 管理员可以管理用户信息,可以对用户信息添加修改删除。管理员可以对景点推荐信息进行添加修改删除操作。管理员可以对分享圈信息进行添加,修改,删除操作。管理员可以对美食推荐信息进行添加,修改,删除操作。管理员可以对酒店推荐信息进行添加,修改,删除操作。管理员可以对周边推荐信息进行添加,修改,删除操作。 小程序用户是需要注册才可以进行登录的,登录后在首页可以查看相关信息,并且下面导航可以点击到其他功能模块。在小程序里点击我的,会出现关于我的界面,在这里可以修改个人信息,以及可以点击其他功能模块。用户想要把一些信息分享到分享圈的时候,可以点击新增,然后输入自己想要分享的信息就可以进行分享圈的操作。用户可以在景点推荐里面进行收藏和评论等操作。用户可以在美食推荐模块搜索和查看美食推荐的相关信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值