【python】None类型

目录

  • 函数介绍
  • 函数的定义
  • 函数的参数
  • 函数的返回值
  • 函数说明文档
  • 函数的嵌套调用
  • 变量的作用域
  • 综合案例

函数的返回值

  • 函数返回值的定义
  • None 类型

None类型

思考:如果函数没有使用 return 语句返回数据,那么函数有返回值吗?

实际上是:有的。

Python 中有一个特殊的字面量:None,其类型是:<class 'NoneType'>

无返回值的函数,实际上就是返回了:None 这个字面量

None 表示:空的、无实际意义的意思

函数返回的None,就表示,这个函数没有返回什么有意义的内容。

也就是返回了空的意思。

None 类型

演示:

python 复制代码
def say_hello():
    print("Hello ...")

# 使用变量接收 say_hello 函数的返回值
result = say_hello()
# 打印返回值
print(result) # 结果None
# 打印返回值类型
print(type(result)) # 结果<class 'NoneType'>

None可以主动使用return返回,效果等同于不写return语句:

c 复制代码
def say_hello():
    print("Hello ...")
    return None

# 使用变量接收 say_hello 函数的返回值
result = say_hello()
# 打印返回值
print(result) # 结果None

演示:

python 复制代码
"""
演示特殊字面量:None
"""

# 无 return 语句的函数返回值
def say_hi():
    print("你好呀")

result = say_hi()
print(f"无返回值函数,返回的内容是:{result}")
print(f"无返回值函数,返回的内容类型是:{type(result)}")

# 主动返回 None 的函数
def say_hi2():
    print("你好呀")
    return None

result = say_hi2()
print(f"无返回值函数,返回的内容是:{result}")
print(f"无返回值函数,返回的内容类型是:{type(result)}")

输出结果:

你好呀

无返回值函数,返回的内容是:None

无返回值函数,返回的内容类型是:<class 'NoneType'>

你好呀

无返回值函数,返回的内容是:None

无返回值函数,返回的内容类型是:<class 'NoneType'>

None 类型的应用场景

None作为一个特殊的字面量,用于表示:空、无意义,其有非常多的应用场景。

  • 用在函数无返回值上

  • 用于if判断上

    • 在if判断中,None等同于False
    • 一般用于在函数中主动返回None,配合if判断做相关处理
python 复制代码
def check_age(age):
    if age > 18:
        return "success"
    return None

result = check_age(5)
if not result:
    print("未成年,不可进入")
  • 用于声明无内容的变量上
    • 定义变量,但暂时不需要变量有具体值,可以用 None 来代替
python 复制代码
# 暂不赋予变量具体值
name = None

演示:

python 复制代码
# None 用于 if 判断
def check_age(age):
    if age > 18:
        return "SUCCESS"
    else:
        return None

result = check_age(16)
if not result:
    # 进入 if 表示 result 是 None 值,也就是 False
    print("未成年,不可以进入")

输出结果:

未成年,不可以进入

演示:

python 复制代码
# None 用于声明无初始内容的变量
name = None

总结:

  1. 什么是 None

None 是类型 `NoneType` 的字面量,用于表示:空的、无意义的

  1. 函数如何返回 None
  • 不使用 return 语句即返回 None
  • 主动 return None
  1. 使用场景
  • 函数返回值
  • if 判断
  • 变量定义
相关推荐
apcipot_rain9 小时前
C++转Java日记(04)
java·开发语言·c++
特立独行的猫A9 小时前
我给女儿写了个打字练习:一边敲键盘,一边把小学英语单词记牢
java·后端·python
cpolar技术支持9 小时前
「我这边连不上你那个服务」—— 用清单驱动的 TCP 连通性只读看板,cpolar 让远端同事自己取证
python·内网穿透·tcp·cpolar·网络诊断
云和数据.ChenGuang10 小时前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
天诰11 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
benchmark_cc12 小时前
用 QuantDash 读取美股行情:AAPL.US 的运行前检查、排错顺序与数据校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
蜗牛一步步往上爬13 小时前
第十六章 C++语言在深度学习中的应用
开发语言·c++·深度学习
羲云网络15 小时前
GPT Image 2.6 接入指南:Flare、Sunburst 怎么选,编辑失败如何排查
人工智能·python·aigc·图像生成·acedatacloud
张张123y16 小时前
DSH 插件调试避坑:client.js 设置面板、热重载与高频报错排查表
开发语言·javascript·人工智能·开源·ecmascript·后端开发·ai agent
冻柠檬飞冰走茶18 小时前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划