Tsak:04 变量与函数 Variables and Functions

一、变量

1.1 什么是变量

变量:1.变化-可以变化的

           2.量-有具体的值
生活中的变量:时间-8点 温度-0 女人-数量 年龄-多少岁 速度-100km/h

名称:数据

变量:存储数据的容器-方便后面快速高效的处理数据

info = '先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈

于内,忠志之士忘身于外者,,'

print(info)

1.2 定义变量

先定义再使用

变量名 = 数据(变量值)

name 赋值号 变量值

赋值号:理解成一个动作,把右边的数据存储到左边的变量容器中


name = 'Lin'
info = 123

a = '$%^&#@$@#$%@'
print(name)
print(info)
print(aname = input('请问你的名字是')
print(name,'欢迎光临')

print(name,'欢迎光临')
name = input('请问你的名字是')
#变量要先赋值再使用。变量第一次赋值之后才会被创建。

注意:变量输出的时候不要打引号、

1.3 变量的命名规则

人的名字:有固定组成:名和姓

禁忌:取了会报错

不建议:公安局

变量命名:

1.变量的组成:英文字母,数字,下划线

name = 'Lin'
name1 =' '
name_1 = ' '

2.变量名中不能有空格和特殊符号

na me = ' '

3.数字不能开头

1name = ' '

4. 不能只有数字

123 = ' '

5. 不能是中文

名字 = ''

6. 不能和python当中的保留字重名

Python 的保留字包括:False、None、True、and、as、assert、async、await、break、class、continue、def、del、elif、else、except、finally、for、from、global、if、import、in、is、lambda、nonlocal、not、or、pass、raise、return、try、while、with、yield。

7 大小写是严格区分的 尽量不要全部大写

name = ' 1'
Name = '2'
print(name)
print(Name)

8. 见明知意

变量命名的格式:

驼峰命名:

大驼峰:每个单词首字母都大写

小驼峰:除了第一个单词,其他单词首字母大写

name = ' 1'
Name = '2'


链式命名:单词之间用下划线隔开

name_my = ' '
name_m = ' '
name_f = ' '
name_mou = ' '

二、函数的基础概念

一、函数的基础概念

  1. 定义:函数是一段可重复使用的代码块,用于完成特定的任务。它接受输入(参数)并返回输出(返回值)2。
    • 1示例代码:
    def greet():
        print("Hello, World!")
  1. 2 调用:要使用函数,需要通过函数名来调用它。当函数被调用时,程序会跳转到函数的定义处执行函数体中的代码,执行完毕后再返回调用处继续执行后续代码。
    • 调用示例:
    greet()

二、函数的参数

  1. 位置参数:按照参数定义的顺序传递的参数。调用函数时,参数的顺序必须与函数定义时的参数顺序一致。
    • 示例:
    def add_numbers(a, b):
        return a + b

    result = add_numbers(3, 5)  # 3 对应 a,5 对应 b

  1. 关键字参数:通过参数名来传递的参数,可以不按照函数定义时的参数顺序传递。
    • 示例:
    result = add_numbers(b=5, a=3)  # 明确指定参数值对应的参数名

  1. 默认参数:在函数定义时为参数指定默认值,如果调用函数时没有传递该参数,则使用默认值。
    • 示例:
    def greet(name="User"):
        print(f"Hello, {name}!")

    greet()  # 输出 "Hello, User!"
    greet("Alice")  # 输出 "Hello, Alice!"

  1. ** 可变参数(*args 和 kwargs)
    • *args:用于接收任意数量的位置参数,参数会被打包成一个元组。
    • 示例:
    def sum_numbers(*args):
        total = 0
        for num in args:
            total += num
        return total

    result = sum_numbers(1, 2, 3, 4, 5)  # 计算 1+2+3+4+5 的和

  • **kwargs:用于接收任意数量的关键字参数,参数会被打包成一个字典。
  • 示例:
    def print_info(**kwargs):
        for key, value in kwargs.items():
            print(f"{key}: {value}")

    print_info(name="Alice", age=25)

四、函数的返回值

  1. 返回单个值:使用 return 语句返回一个值,函数执行到 return 语句时会立即结束并返回指定的值。
    • 示例:
    def square(x):
        return x ** 2

    result = square(4)  # result 的值为 16

  1. 返回多个值:可以使用逗号分隔多个值来返回多个值,实际上返回的是一个元组。
    • 示例:
    def get_coordinates():
        x = 10
        y = 20
        return x, y

    x, y = get_coordinates()

五、高级特性

  1. Lambda 函数(匿名函数):是一种简洁的函数定义方式,通常用于编写简单的、一次性使用的函数1。
    • 示例:
    multiply = lambda x, y: x * y
    result = multiply(3, 5)  # result 的值为 15

  1. 高阶函数:接收函数作为参数或返回函数的函数。例如 mapfilter 和 reduce 函数1。
    • map 函数:用于将一个函数应用到一个可迭代对象的每个元素上,并返回一个新的可迭代对象。
    • 示例:
    def square(x):
        return x ** 2

    numbers = [1, 2, 3, 4, 5]
    squared_numbers = map(square, numbers)
    # 将 map 对象转换为列表
    print(list(squared_numbers))  

  • filter 函数:用于过滤可迭代对象中的元素,返回一个新的可迭代对象,其中包含满足指定条件的元素。
  • 示例:
    def is_even(x):
        return x % 2 == 0

    numbers = [1, 2, 3, 4, 5, 6]
    even_numbers = filter(is_even, numbers)
    # 将 filter 对象转换为列表
    print(list(even_numbers))  

  1. 闭包函数:在一个函数内部定义了另一个函数,并且内部函数可以访问外部函数的变量。
    • 示例:
    def outer_function(x):
        def inner_function(y):
            return x + y
        return inner_function

    add_5 = outer_function(5)
    result = add_5(3)  # result 的值为 8

六、函数的错误处理

  1. 异常处理:使用 try-except 语句来捕获和处理函数执行过程中可能出现的异常1。
    • 示例:
    def divide(a, b):
        try:
            result = a / b
        except ZeroDivisionError:
            print("除数不能为零!")
        else:
            print("结果:", result)
        finally:
            print("无论是否成功执行了此块代码。")

    divide(10, 2)
    divide(10, 0)

  1. 自定义异常:可以根据需要定义自己的异常类,以便更好地处理特定类型的错误。
    • 示例:
    •     class MyException(Exception):
              pass
      
          def my_function():
              raise MyException("这是一个自定义异常")
      
          try:
              my_function()
          except MyException as e:
              print(e)

总结

  • 变量只是个标签,物理设备上有啥才是重点
  • 函数定义:def、header、body、缩进、return
  • 函数是有作用域的,类似双层玻璃,里面可以看见外面,外面不能看见里面
  • Helper Function 有时候会很有用
  • 一定要亲眼看你的代码是怎么跑起来的
### 下载 YOLOv8 的任务文件或示例项目 为了获取 YOLOv8 的多任务项目及其相关资源,可以按照以下方法操作: #### 方法一:通过 GitCode 平台克隆仓库 可以直接访问指定的 GitCode 地址并克隆整个 `YOLOv8-multi-task` 项目到本地环境。这通常包含了所有的配置文件、数据集定义以及可能的任务特定脚本。 ```bash git clone https://gitcode.com/gh_mirrors/yo/YOLOv8-multi-task.git cd YOLOv8-multi-task ``` 此命令将会复制远程存储库中的所有内容至当前目录下的新创建文件夹内[^1]。 #### 方法二:利用 Python 库加载预训练模型及自定义任务 如果仅需快速上手使用已有的 YOLOv8 模型来进行目标检测或其他任务,则可以通过安装 Ultralytics 提供的 Python 包来简化流程。下面展示了怎样导入必要的类,并基于官方提供的小型版本 (`yolov8n`) 初始化一个对象实例用于检测目的。 ```python from ultralytics import YOLO model = YOLO("yolov8n.pt", task="detect") ``` 这段代码片段能够帮助开发者迅速启动带有默认参数的目标识别应用;对于更复杂的场景比如调整超参或是切换不同的子任务类型(分类、分割),则建议查阅文档了解进一步定制化的方法[^2]。 需要注意的是,“关于这三个任务”的具体实现细节还在持续开发和完善过程中,因此对于最新进展和功能扩展的信息,请关注官方公告或源码更新日志[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值