软件测试基础九 (python基础)

python基础

1. 注释

1.1. 注释的作⽤

使⽤⾃⼰熟悉的语⾔,在程序中对某些代码进⾏标注说明,增强程序的可读性。

1.2. 单⾏注释

以# 开头,# 右边的所有东⻄都被当做说明⽂字,⽽不是真正要执⾏的程序,只起到辅助说明作⽤。

1.3. 多⾏注释

如果希望编写的注释信息很多,⼀⾏⽆法显示,就可以使⽤多⾏注释。

要在Python 程序中使⽤多⾏注释,可以⽤一对连续的三个引号(单引号和双引号都可以)

1.4. 什么时候需要使⽤注释?

1. 注释不是越多越好,对于一目了然的代码,不需要添加注释;

2. 对于复杂的操作,应该在操作开始前写上若⼲⾏注释;

3. 对于不是⼀⽬了然的代码,应在其⾏尾添加注释(为了提⾼可读性,注释应该⾄少离开代码2 个空格);

4. 不要描述代码,假设阅读代码的⼈⽐你更懂Python,他只是不知道你的代码要做什么。

在⼀些正规的开发团队,通常会有代码审核的惯例,就是⼀个团队中彼此阅读对⽅的代码。

2. 算数运算符

在 Python 中,算术运算符用于执行基本的数学运算。

2.1. 算术运算符简介

  1. 加法运算符(+)
    1. 用于将两个数值相加。可以对整数、浮点数、复数等类型进行操作。
    2. 例如:5 + 3结果为 8;3.5 + 2.2结果为 5.7;(2 + 3j)+(4 + 5j)结果为(6 + 8j)
  1. 减法运算符(-)
    • 用于从一个数值中减去另一个数值。同样可以对整数、浮点数、复数等类型进行操作。
    • 例如:8 - 3结果为 5;5.5 - 2.1结果为 3.4;(6 + 4j)-(2 + 2j)结果为(4 + 2j)
  1. 乘法运算符(*)
    • 用于将两个数值相乘。
    • 例如:4 * 6结果为 24;2.5 * 3结果为 7.5;(2 + 3j)*(4 + 5j)结果为(-7 + 22j)
  1. 除法运算符(/)
    • 执行除法运算,返回一个浮点数结果,即使两个操作数都是整数。
    • 例如:10 / 4结果为 2.5;7 / 2结果为 3.5。
  1. 地板除运算符(//)
    • 执行整数除法,返回结果的整数部分,向下取整。
    • 例如:10 // 4结果为 2;7 // 2结果为 3。
  1. 取余运算符(%)
    • 也称为模运算符,返回除法运算的余数。
    • 例如:10 % 4结果为 2;7 % 2结果为 1。
  1. 幂运算符()**:
    • 用于计算一个数的幂次方。
    • 例如:2 ** 3结果为 8;3 ** 2结果为 9。

2.2. 算术运算符的优先级

Python 中的算术运算符遵循特定的优先级顺序,与数学中的运算优先级类似。优先级从高到低如下:

  1. 幂运算符()**:具有最高优先级。
    • 例如:2 + 3 ** 2先计算3 ** 2得到 9,再加上 2,结果为 11。
  1. 乘法、除法、地板除、取余运算符(*、/、//、%):优先级次之。
    • 例如:2 * 3 + 4 / 2先计算乘法2 * 3得到 6,再计算除法4 / 2得到 2,最后相加,结果为 8。
  1. 加法、减法运算符(+、-):优先级最低。
    • 例如:5 + 3 - 2先计算加法5 + 3得到 8,再减去 2,结果为 6。

如果在一个表达式中有多个运算符,并且优先级相同,则按照从左到右的顺序进行计算。但可以使用括号来改变运算的优先级,括号内的运算优先进行。

  • 例如:(2 + 3) * 4先计算括号内的加法得到 5,再乘以 4,结果为 20。

总之,了解 Python 的算术运算符及其优先级对于正确进行数学运算和编写复杂的表达式非常重要。在编写代码时,可以根据需要使用括号来明确运算的顺序,以确保得到正确的结果。

3. 变量简介

在 Python 中,变量是用于存储数据值的标识符。

3.1. 变量的定义和命名规则

  1. 定义
    • 变量是一个命名的存储位置,可以在程序中用来保存各种数据类型的值,如整数、浮点数、字符串、列表、字典等。
    • 例如,通过赋值语句x = 10,创建了一个名为x的变量,并将整数 10 存储在其中。
  1. 命名规则
    • 变量名可以由字母、数字和下划线组成,但必须以字母或下划线开头。
    • 变量名不能是 Python 中的关键字(如ifforwhile等)。
    • 变量名应该具有描述性,以便提高代码的可读性。
    • 例如,my_variablevariable1_private_variable都是合法的变量名,而1variable(以数字开头)、for(是关键字)是非法的变量名。

3.2. 变量的数据类型

  1. 动态类型
    • Python 是一种动态类型语言,这意味着变量的数据类型在运行时确定,并且可以随时改变。
    • 例如,可以先将一个整数赋值给变量x,然后再将一个字符串赋值给x,而不需要事先声明变量的类型。
    • x = 10,此时x是整数类型。x = "Hello",现在x变成了字符串类型。
  1. 常见数据类型
    • 整数(int):用于表示整数值,如 1、-5、100 等。
    • 浮点数(float):用于表示带有小数部分的数值,如 3.14、-2.5、0.0 等。
    • 字符串(str):用于表示文本数据,用单引号或双引号括起来,如"Hello, World!"'Python is great!'等。
    • 列表(list):用于存储一组有序的数据,可以包含不同类型的元素,如[1, 2, 3]["apple", "banana", "orange"]等。
    • 字典(dict):用于存储键值对的数据结构,通过键来访问对应的值,如{"name": "John", "age": 30}等。
    • 布尔型( bool ): 真True( 1 );假False (0) 。
    • 复数型( complex ):主要⽤于科学计算,例如:平⾯场问题、波动问题、电感电容等问题
    • 还有元组(tuple)、集合(set)等其他数据类型也可以存储在变量中。

3.3. 变量的作用域

3.3.1. 局部变量
    • 在函数内部定义的变量称为局部变量,它们只能在函数内部访问。
    • 局部变量的作用域仅限于定义它们的函数内部,一旦函数执行完毕,局部变量就会被销毁。
    • 例如:
def my_function():local_variable = 10print(local_variable)my_function()
# print(local_variable)  # 这里会报错,因为 local_variable 是局部变量,在函数外部无法访问
3.3.2. 全局变量
    • 在函数外部定义的变量称为全局变量,它们可以在整个程序中访问。
    • 全局变量的作用域是整个程序,但在函数内部如果要修改全局变量的值,需要使用global关键字进行声明。
    • 例如:
global_variable = 20def my_function():global global_variableglobal_variable = 30print(global_variable)my_function()
print(global_variable)

3.4. 变量的赋值和引用

  1. 赋值
    • 通过赋值语句可以将一个值赋给变量。赋值操作会在内存中创建一个存储值的位置,并将变量名与这个位置关联起来。
    • 可以使用单个等号(=)进行赋值,例如x = 10。也可以使用多个变量同时赋值,如a, b, c = 1, 2, 3
  1. 引用
    • 一旦变量被赋值,就可以在程序中通过变量名来引用存储在其中的值。
    • 例如,在x = 10之后,可以使用print(x)来输出变量x的值。

总之,变量是 Python 编程中非常重要的概念,它们允许我们存储和操作各种数据类型的值,并且在不同的作用域中进行访问和修改。正确地使用变量可以使程序更加灵活、可读和易于维护。

3.5. 不同类型变量之间的计算

在 Python 中,不同类型的变量之间可以进行一些计算,但需要遵循一定的规则。

3.5.1. 数字类型之间的计算
  1. 整数(int)和浮点数(float)
    • 整数和浮点数可以进行加、减、乘、除等运算,结果会自动转换为浮点数。
    • 例如:5 + 3.5结果为 8.5;10 / 2.5结果为 4.0。
    • 如果一个整数和一个浮点数进行运算,整数会被自动转换为浮点数后再进行计算。
  1. 整数和复数(complex)
    • 整数可以和复数进行加、减运算,结果为复数。
    • 例如:3 + (2 + 3j)结果为5 + 3j5 - (1 + 2j)结果为4 - 2j
    • 整数和复数不能进行乘法和除法运算,除非将整数转换为复数。
  1. 浮点数和复数
    • 浮点数和复数可以进行加、减运算,结果为复数。
    • 例如:2.5 + (3 + 4j)结果为5.5 + 4j4.5 - (2 + 3j)结果为2.5 - 3j
    • 浮点数和复数也可以进行乘法和除法运算,结果为复数。
    • 例如:2.5 * (3 + 4j)结果为7.5 + 10j5 / (2 + 3j)结果为1 - 1.5j
3.5.2. 数字类型和字符串类型之间的计算
  1. 数字类型转换为字符串类型
    • 可以使用str()函数将数字类型转换为字符串类型,然后进行字符串拼接等操作。
    • 例如:str(5) + " is a number"结果为"5 is a number"
  1. 字符串类型转换为数字类型
    • 如果字符串表示的是一个有效的数字,可以使用int()float()函数将其转换为整数或浮点数类型,然后进行数字运算。
    • 例如:int("5") + 3结果为 8;float("3.5") * 2结果为 7.0。
    • 如果字符串不能转换为数字,会引发ValueError异常。
3.5.3. 列表、元组和集合之间的计算
  1. 列表和列表、元组和元组、集合和集合之间的加法
    • 对于列表、元组和集合,可以使用加法运算符进行拼接操作,但拼接的对象必须是相同类型。
    • 例如:[1, 2, 3] + [4, 5, 6]结果为[1, 2, 3, 4, 5, 6](1, 2, 3) + (4, 5, 6)结果为(1, 2, 3, 4, 5, 6){1, 2, 3} + {4, 5, 6}会引发错误,因为集合不支持加法运算。
  1. 列表和整数、元组和整数之间的乘法
    • 列表和元组可以与整数进行乘法运算,结果是重复多次的列表或元组。
    • 例如:[1, 2, 3] * 3结果为[1, 2, 3, 1, 2, 3, 1, 2, 3](1, 2, 3) * 2结果为(1, 2, 3, 1, 2, 3)
3.5.4. 字典类型的计算

字典类型不能直接进行数学运算,但可以进行一些与键值对相关的操作,如合并、更新等。

  1. 字典的更新
    • 可以使用update()方法将一个字典的键值对添加到另一个字典中。
    • 例如:
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
dict1.update(dict2)
print(dict1)
    • 输出结果为{'a': 1, 'b': 2, 'c': 3, 'd': 4}

总之,在 Python 中不同类型变量之间的计算需要根据具体的数据类型和运算规则进行,同时要注意可能出现的类型转换错误和异常情况。在进行计算时,可以根据需要使用适当的函数和方法来进行类型转换和操作,以实现所需的功能。

3.6. 变量的输⼊

在 Python 中,可以通过多种方式实现变量的输入,最常用的是使用input()函数。

3.6.1. 使用input()函数输入变量
  1. 基本用法
    • input()函数用于从用户那里获取输入,并将其作为字符串返回。
    • 例如,可以使用以下代码获取用户输入的名字并存储在变量中:
name = input("请输入你的名字:")
print(f"你好,{name}!")
    • 当程序执行到input()函数时,会暂停执行并等待用户在控制台输入内容,用户输入完成后按下回车键,input()函数将用户输入的内容作为字符串返回,并赋值给变量name
  1. 转换输入类型
    • 默认情况下,input()函数返回的是字符串类型。如果需要将用户输入转换为其他数据类型,可以使用相应的类型转换函数。
    • 例如,如果希望用户输入一个整数,可以使用int()函数进行转换:
age = int(input("请输入你的年龄:"))
print(f"你今年{age}岁了。")
    • 类似地,可以使用float()函数将用户输入转换为浮点数类型。
3.6.2. 在命令行中传递参数作为变量输入
  1. 使用sys.argv
    • 在 Python 中,可以使用sys.argv来获取在命令行中传递给脚本的参数。sys.argv是一个列表,其中第一个元素是脚本的名称,后续元素是传递的参数。
    • 例如,以下代码可以获取命令行中传递的两个参数并进行加法运算:
import sysif len(sys.argv)!= 3:print("请提供两个数字作为参数。")
else:num1 = int(sys.argv[1])num2 = int(sys.argv[2])print(f"{num1} + {num2} = {num1 + num2}")
    • 在命令行中运行这个脚本时,可以这样传递参数:python script.py 5 3,输出结果为5 + 3 = 8
3.6.3. 从文件中读取数据作为变量输入
  1. 使用open()read()函数
    • 可以使用open()函数打开一个文件,并使用read()函数读取文件中的内容作为变量输入。
    • 例如,以下代码从一个文本文件中读取一行内容并存储在变量中:
with open("input.txt", "r") as file:line = file.readline()
print(line)
    • 这里假设input.txt文件中包含一行文本内容,readline()函数读取文件中的一行内容并返回一个字符串,将其赋值给变量line

总之,在 Python 中可以通过多种方式实现变量的输入,具体使用哪种方式取决于程序的需求和运行环境。使用input()函数可以在程序运行时从用户那里获取输入,使用sys.argv可以获取命令行参数,而从文件中读取数据可以实现更复杂的输入场景。

3.7. 变量的格式化输出

在 Python 中,变量的格式化输出可以使输出更加清晰和易读。

3.7.1. 使用%格式化操作符
  1. 基本用法
    • %操作符可以用于将变量的值插入到字符串中进行格式化输出。
    • 例如,以下代码使用%s(表示字符串)和%d(表示整数)格式化操作符输出变量的值:
name = "Alice"
age = 30
print("My name is %s and I am %d years old." % (name, age))
    • 输出结果为:My name is Alice and I am 30 years old.
  1. 其他格式化选项
    • 除了sd之外,还有其他格式化选项,如f(表示浮点数)、x(表示十六进制整数)等。
    • 例如,可以使用%.2f来指定输出浮点数保留两位小数:
price = 12.3456
print("The price is %.2f dollars." % price)
    • 输出结果为:The price is 12.35 dollars.
3.7.2. 使用str.format()方法
  1. 基本用法
    • str.format()方法是一种更强大和灵活的格式化方法。它使用大括号{}作为占位符,在字符串后面通过.format()传入要格式化的变量。
    • 例如:
name = "Bob"
age = 25
print("My name is {} and I am {} years old.".format(name, age))
    • 输出结果同样为:My name is Bob and I am 25 years old.
  1. 指定参数位置
    • 可以在大括号中指定参数的位置来控制输出顺序。
    • 例如:
print("My name is {1} and I am {0} years old.".format(age, name))
    • 输出结果为:My name is Bob and I am 25 years old.
  1. 关键字参数
    • 也可以使用关键字参数来进行格式化。
    • 例如:
print("My name is {name} and I am {age} years old.".format(name="Charlie", age=35))
    • 输出结果为:My name is Charlie and I am 35 years old.
3.7.3. 使用 f-strings(格式化字符串字面值)
  1. 基本用法
    • 从 Python 3.6 开始,可以使用 f-strings 进行更简洁的格式化输出。在字符串前加上f,然后在字符串中直接使用变量名进行格式化。
    • 例如:
name = "David"
age = 40
print(f"My name is {name} and I am {age} years old.")
    • 输出结果为:My name is David and I am 40 years old.
  1. 表达式求值
    • f-strings 还可以在字符串中进行表达式求值。
    • 例如:
a = 5
b = 3
print(f"The sum of {a} and {b} is {a + b}.")
    • 输出结果为:The sum of 5 and 3 is 8.

总之,在 Python 中有多种方式进行变量的格式化输出,可以根据具体需求选择合适的方法。%操作符是一种传统的格式化方法,str.format()方法更加灵活,而 f-strings 则提供了更简洁和直观的格式化方式。

4. 字符串中的转义字符

在 Python 中,转义字符用于在字符串中表示一些特殊的字符或控制序列。

4.1. 常见转义字符

  1. 换行符(\n)
    • 用于在字符串中表示换行。当字符串中包含\n时,输出时会在该位置进行换行。
    • 例如:print("Hello\nWorld"),输出结果为:
Hello
World
  1. 制表符(\t)
    • 表示制表符,用于在输出中进行对齐。通常相当于按键盘上的 Tab 键的效果。
    • 例如:print("Name\tAge")print("Alice\t25"),输出结果为:
Name    Age
Alice   25
  1. 反斜杠(\
    • 用于表示一个反斜杠字符本身。如果要在字符串中包含一个反斜杠,需要使用\\
    • 例如:print("C:\\Users\\Username"),输出结果为:C:\Users\Username
  1. 单引号(')和双引号("
    • 在使用单引号或双引号定义的字符串中,如果要包含相同类型的引号,需要使用转义字符。
    • 例如:print("He said, \"Hello!\""),输出结果为:He said, "Hello!"print('It\'s a book.'),输出结果为:It's a book.

4.2. 转义字符的作用

  1. 特殊字符的表示
    • 有些字符在字符串中具有特殊的含义,如引号、换行符等。通过转义字符,可以在字符串中明确表示这些特殊字符,而不是让它们被解释为字符串的语法结构。
    • 例如,如果不使用转义字符,直接在字符串中包含引号可能会导致语法错误,而使用转义字符可以正确地表示包含引号的字符串。
  1. 控制输出格式
    • 转义字符可以用于控制输出的格式,如换行和制表符可以使输出更加整齐和易读。
    • 在需要输出表格或格式化的文本时,制表符和换行符非常有用,可以使不同的数据项对齐并分行显示。
  1. 与文件路径和正则表达式的关系
    • 在处理文件路径时,反斜杠是路径分隔符,但在字符串中需要使用转义字符来表示反斜杠本身。
    • 在正则表达式中,也会使用一些特殊字符,如点(.)、星号(*)等,这些字符在字符串中也可能需要转义,以避免被解释为正则表达式的特殊符号。

4.3. 注意事项

  1. 转义字符的使用场景
    • 转义字符只在特定的情况下需要使用。如果字符串中不包含特殊字符,或者可以使用不同的方式来定义字符串,可能不需要使用转义字符。
    • 例如,可以使用三引号('''""")定义多行字符串,在这种情况下,字符串中的引号和换行符不需要转义。
  1. 转义字符的可读性
    • 过多的转义字符可能会使字符串难以阅读和理解。在可能的情况下,可以考虑使用更清晰的方式来表示字符串,或者使用原始字符串(在字符串前面加上r)来避免转义字符的使用。
    • 例如,r"C:\Users\Username"表示一个原始字符串,其中的反斜杠不会被解释为转义字符。

总之,转义字符在 Python 字符串中用于表示特殊字符和控制输出格式。了解常见的转义字符及其作用,可以帮助你正确地处理字符串中的特殊情况,并使输出更加符合预期。在使用转义字符时,需要注意可读性和使用场景,以确保代码的清晰和易维护。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/464989.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

导入和部署自定义 LLM 大模型

本文以【Qwen2-7B-Instruct】模型为例,指导如何将自定义大模型导入到 TI 平台,并使用平台内置推理镜像部署大模型对话推理服务。 前置要求 申请 CFS 本文所涉及到的操作需要通过 CFS 存储模型文件,详情请查看创建文件系统及挂载点。 操作…

开源办公软件 ONLYOFFICE 深入探索

文章目录 引言1. ONLYOFFICE 创建的背景1. 1 ONLYOFFICE 项目启动1. 2 ONLYOFFICE 的发展历程 2. 核心功能介绍2. 1 桌面编辑器2. 1. 1 文档2. 1. 2 表格2. 1. 3 幻灯片 2. 2 协作空间2. 3 文档编辑器 - 本地部署版 3. 技术介绍4. 安装5. 优势与挑战6. 个人体验7. 强大但不止于…

HTTP慢速攻击原理及解决办法

目录 引言 HTTP慢速攻击原理 解决办法 Nginx Tomcat 华宇TAS IIS 结论 引言 HTTP慢速攻击(Slow HTTP Attack)是一种拒绝服务攻击(DoS),攻击者通过故意缓慢地发送HTTP请求来耗尽服务器资源,导致合法…

[mysql]修改表和课后练习

目录 DDL数据定义语言 添加一个字段 添加一个字段到最后一个 添加到表中的第一个一个字段 选择其中一个位置: 修改一个字段:数据类型,长度,默认值(略) 重命名一个字段 删除一个字段 重命名表 删除表 清空表 DCL中事务相关内容 DCL中COMMIT和ROLLBACK的讲解 对比TR…

SpringBoot+ClickHouse集成

前面已经完成ClickHouse的搭建&#xff0c;创建账号&#xff0c;创建数据库&#xff0c;保存数据库等&#xff0c;接下来就是在SpringBoot项目中集成ClickHouse。 一&#xff0c;引入依赖 <!-- SpringBoot集成ClickHouse --> <dependency><groupId>com.baom…

搜维尔科技:【煤矿虚拟仿真】煤矿企业、高校、科研单位-多语言支持、数字孪生、交互式学习体验

品牌&#xff1a;SouVR 发票&#xff1a;支持专票、普票 单位&#xff1a;套 版本号&#xff1a;1.0 包装清单&#xff1a;软件1套 软件形式&#xff1a;U盘、光盘 运行环境&#xff1a;windows 应用对象&#xff1a;煤矿企业、高校、科研单位 系统配置&#xff1a;…

(五)Spark大数据开发实战:灵活运用PySpark常用DataFrame API

目录 一、PySpark 二、数据介绍 三、PySpark大数据开发实战 1、数据文件上传HDFS 2、导入模块及数据 3、数据统计与分析 ①、计算演员参演电影数 ②、依次罗列电影番位前十的演员 ③、按照番位计算演员参演电影数 ④、求每位演员所有参演电影中的最早、最晚上映时间及…

单链表的实现(数据结构)

一. 单链表的实现 我们在上一篇中简单的认识了链表的组成和结构&#xff0c;并打印出链表&#xff0c;那么今天就来具体实现一下单链表对于数据增加、删减、插入等。 接下来就是我们在链表中对于数据的增、删、插的实现&#xff0c;对于我们的链表来说在任何地方增加数据都需…

Golang | Leetcode Golang题解之第540题有序数组中的单一元素

题目&#xff1a; 题解&#xff1a; func singleNonDuplicate(nums []int) int {low, high : 0, len(nums)-1for low < high {mid : low (high-low)/2mid - mid & 1if nums[mid] nums[mid1] {low mid 2} else {high mid}}return nums[low] }

算法: 链表题目练习

文章目录 链表题目练习两数相加两两交换链表中的节点重排链表合并 K 个升序链表K 个一组翻转链表 总结 链表题目练习 两数相加 坑: 两个链表都遍历完后,可能需要进位. class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode cur1 l1;ListNode…

深入Pillow:处理图像下载中的意外挑战

在当今数字化时代&#xff0c;获取和处理图像数据已经成为了许多应用程序的核心功能。从社交媒体到电子商务&#xff0c;图像的获取和处理对于用户体验至关重要。下载图片不仅能够丰富我们的内容&#xff0c;还能够通过分析图像数据为我们的应用提供更多价值。然而&#xff0c;…

零基础Java第十三期:继承与多态(一)

目录 一、继承 1.1. 继承的目的 1.2. 继承的概念 1.3. 继承的语法 1.4. 父类的访问 1.5. 继承中的重载与重写 1.6. 子类的构造方法 1.7. 再谈初始化 一、继承 1.1. 继承的目的 我们来定义一个Dog和Cat的类&#xff1a; public class Dog {public int age;public Strin…

【ONLYOFFICE文档】8.2版本测评

文章目录 引言ONLYOFFICE 产品简介PDF编辑器新功能1.协作编辑 PDF&#xff0c;让团队合作更高效2.为 PDF 表单添加签名3.改进的简洁界面4.性能优化&#xff1a;更快、更高效的体验 文档编辑器中的新功能域代码功能&#xff1a;自动更新文档中的动态数据协作功能&#xff1a;轻松…

【JAVA】java 企业微信信息推送

前言 JAVA中 将信息 推送到企业微信 // 企微消息推送messageprivate String getMessage(String name, String problemType, String pushResults, Long orderId,java.util.Date submitTime, java.util.Date payTime) {String message "对接方&#xff1a;<font color\…

【RK3588 Linux 5.x 内核编程】-GPIO设备驱动与点亮LED

GPIO设备驱动与点亮LED 文章目录 GPIO设备驱动与点亮LED1、Linux中的GPIO介绍2、GPIO库和工具3、Linux内核GPIO操作步骤3.1 验证GPIO3.2 请求GPIO3.3 导出GPIO到sysfs(可选)3.4 设置GPIO为输入/输出3.5 更改GPIO的电平(值)3.6 读取GPIO的值(电平)3.7 释放GPIO4、GPIO驱动…

金华迪加 现场大屏互动系统 mobile.do.php 任意文件上传漏洞复现

0x01 产品简介 金华迪加现场大屏互动系统是一种集成了先进技术和创意设计的互动展示解决方案,旨在通过大屏幕和多种交互方式,为观众提供沉浸式的互动体验。该系统广泛应用于各类活动、展览、会议等场合,能够显著提升现场氛围和参与者的体验感。 0x02 漏洞概述 金华迪加 现…

[VUE]框架网页开发1 本地开发环境安装

前言 其实你不要看我的文章比较长&#xff0c;但是他就是很长&#xff01;步骤其实很简单&#xff0c;主要是为新手加了很多解释&#xff01; 步骤一&#xff1a;下载并安装 Node.js 访问 Node.js 官网&#xff1a; Node.js — Download Node.js 下载 Windows 64 位版本&…

[signal] void QComboBox::currentTextChanged(const QString text)

[signal] void QComboBox::currentTextChanged(const QString &text) This signal is sent whenever currentText changes. The new value is passed as text. This function was introduced in Qt 5.0. Note: Notifier signal for property currentText. 属性currentText的…

Unity中实现伤害飘字或者提示飘字效果(DoTween实现版本)

&#xff01;&#xff01;&#xff01;在实现以下效果之前&#xff0c;一定要往项目中导入DoTween插件。 一、搭建测试场景 1、在场景中新建一个带有Text组件的游戏物体A&#xff0c;并把这个游戏物体A中Text组件的Color属性中alpha值为0&#xff0c;让文字在场景中隐藏。 …

掌握PyQt5图形界面化工具及绑定爬虫程序

PyQT5——图形化界面 文章目录 PyQT5——图形化界面集成化图形界面工具为什么使用 \$ProjectFileDir$?示例场景其他 Varaiablespyuic参数解释整体含义示例使用PyQt5和pyuic 创建pyqt5的程序创建一个窗口app.exec\_()和sys.exit(app.exec_())的区别1. app.exec_()2. sys.exit(a…