青少年编程与数学 02-008 Pyhon语言编程基础 10课题、列表与循环语句
青少年编程与数学 02-008 Pyhon语言编程基础 10课题、列表与循环语句
- 一、列表
- 二、定义与使用
- 定义列表
- 访问列表元素
- 访问列表的切片
- 修改列表元素
- 列表的其他操作
- 三、运算
- 1. 列表连接(Concatenation)
- 2. 列表复制(Copying)
- 3. 列表重复(Repetition)
- 4. 成员资格测试(Membership Testing)
- 5. 长度计算(Length Calculation)
- 6. 最大值和最小值(Max and Min)
- 7. 求和(Summation)
- 8. 列表推导式(List Comprehensions)
- 9. 元素计数(Element Counting)
- 10. 索引查找(Index Finding)
- 四、循环
- 1. `for` 循环
- 2. `while` 循环
- 3. `for` 循环与索引
- 4. `range()` 和 `len()`
- 5. 列表推导式
- 6. `map()` 函数
- 7. `filter()` 函数
- 8. `zip()` 函数
- 五、应用场景
- 1. 数据存储和集合操作
- 2. 栈和队列
- 3. 多维数组
- 4. 函数参数传递
- 5. 算法实现
- 6. 数据过滤和转换
- 7. 存储键值对
- 8. 事件和回调处理
- 9. 批处理和队列任务
- 10. 游戏开发
- 六、元组
- 七、练习
课题摘要:本文介绍了Python中的列表和循环语句,以及元组的使用。列表是有序、可变、异构、动态大小的数据结构,支持索引和切片操作,提供多种内置方法如
append()和sort()。定义列表简单,可通过索引访问和修改元素,支持连接、复制、成员测试等运算。循环结构如for和while用于遍历列表,enumerate()提供索引和元素,列表推导式用于创建基于原列表的新列表。元组是不可变序列,有序、可索引、可迭代,用于确保数据安全性,可用作字典键。文章最后提供了一个使用列表和循环的投票系统示例程序。
一、列表
在Python中,列表(list)是一种内置的数据结构,用于存储有序的元素集合。列表中的元素可以是任何类型,包括数字、字符串、甚至其他列表。以下是一些关于Python列表的特点:
- 有序:列表中的元素按照添加的顺序排列。
- 可变:列表的内容可以被修改,可以添加、删除或更改其中的元素。
- 异构:列表可以包含不同类型的元素。
- 动态大小:列表的大小可以根据需要动态变化。
- 索引:列表中的元素可以通过索引访问,Python的索引从0开始。
- 切片:可以通过切片操作来访问列表的一部分。
- 方法丰富:列表提供了许多内置方法,如
append(),extend(),insert(),remove(),pop(),sort()等。
列表是Python中非常灵活和常用的数据类型之一。
二、定义与使用
在Python中定义列表并访问其中的元素非常简单。以下是一些基本的步骤和示例:
定义列表
你可以通过将一系列值放在方括号[]中来定义一个列表,各个值之间用逗号,分隔。
# 定义一个包含数字的列表
numbers = [1, 2, 3, 4, 5]# 定义一个包含字符串的列表
fruits = ["apple", "banana", "cherry"]# 定义一个包含不同类型的列表
mixed_list = [1, "hello", 3.14, True]
访问列表元素
你可以通过索引来访问列表中的元素。Python的索引从0开始,所以第一个元素的索引是0,第二个元素的索引是1,以此类推。
# 访问列表中的第一个元素
first_number = numbers[0] # 结果是 1# 访问列表中的第三个元素
third_fruit = fruits[2] # 结果是 "cherry"# 访问列表中的最后一个元素
last_element = numbers[-1] # 结果是 5
访问列表的切片
你还可以通过切片来访问列表的一部分。切片操作可以获取从某个索引开始到另一个索引结束(不包括结束索引)的元素。
# 获取列表中的前三个元素
first_three_numbers = numbers[:3] # 结果是 [1, 2, 3]# 获取列表中的最后三个元素
last_three_numbers = numbers[-3:] # 结果是 [3, 4, 5]# 获取列表中第二个到第四个元素(包括第二个,不包括第四个)
second_to_fourth = numbers[1:4] # 结果是 [2, 3, 4]
修改列表元素
你可以直接通过索引来修改列表中的元素。
# 修改列表中的第二个元素
numbers[1] = 20 # 现在 numbers 变为 [1, 20, 3, 4, 5]
列表的其他操作
列表还支持许多其他操作,比如添加元素、删除元素等。
# 添加元素到列表末尾
numbers.append(6) # 现在 numbers 变为 [1, 20, 3, 4, 5, 6]# 在指定位置插入元素
numbers.insert(2, 100) # 现在 numbers 变为 [1, 20, 100, 3, 4, 5, 6]# 从列表中删除元素
del numbers[2] # 删除第三个元素,现在 numbers 变为 [1, 20, 3, 4, 5, 6]# 弹出列表中的元素,并返回该元素
popped_element = numbers.pop() # 返回 6,现在 numbers 变为 [1, 20, 3, 4, 5]
这些是操作Python列表的一些基本方法。列表是Python中非常强大和灵活的数据结构,支持许多高级操作和功能。
三、运算
Python列表支持多种运算,这些运算可以帮助你更有效地处理和操作列表数据。以下是一些常用的列表运算:
1. 列表连接(Concatenation)
使用+运算符可以将两个列表连接起来。
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined_list = list1 + list2 # 结果是 [1, 2, 3, 4, 5, 6]
2. 列表复制(Copying)
使用*运算符可以复制列表。
original_list = [1, 2, 3]
copied_list = original_list * 2 # 结果是 [1, 2, 3, 1, 2, 3]
3. 列表重复(Repetition)
使用*运算符也可以将列表中的元素重复指定次数。
list1 = [1, 2]
repeated_list = 2 * list1 # 结果是 [1, 2, 1, 2]
4. 成员资格测试(Membership Testing)
使用in和not in关键字可以检查元素是否在列表中。
list1 = [1, 2, 3]
element = 2
if element in list1:print("Element is in the list") # 输出 "Element is in the list"
else:print("Element is not in the list")
5. 长度计算(Length Calculation)
使用len()函数可以计算列表的长度。
list1 = [1, 2, 3, 4, 5]
length = len(list1) # 结果是 5
6. 最大值和最小值(Max and Min)
使用max()和min()函数可以找到列表中的最大值和最小值。
list1 = [10, 20, 30, 40, 50]
max_value = max(list1) # 结果是 50
min_value = min(list1) # 结果是 10
7. 求和(Summation)
使用sum()函数可以计算列表中所有元素的总和。
list1 = [1, 2, 3, 4, 5]
total = sum(list1) # 结果是 15
8. 列表推导式(List Comprehensions)
列表推导式提供了一种优雅的方式来创建新列表,基于现有列表。
list1 = [1, 2, 3, 4, 5]
squared_list = [x**2 for x in list1] # 结果是 [1, 4, 9, 16, 25]
9. 元素计数(Element Counting)
使用count()方法可以计算某个元素在列表中出现的次数。
list1 = [1, 2, 2, 3, 2, 4]
count = list1.count(2) # 结果是 3
10. 索引查找(Index Finding)
使用index()方法可以找到某个元素在列表中第一次出现的索引。
list1 = [1, 2, 3, 4, 5]
index = list1.index(3) # 结果是 2
这些是Python列表的一些基本运算,它们可以帮助你更高效地处理列表数据。Python的列表还支持许多其他方法和操作,使得列表操作非常灵活和强大。
四、循环
在Python中,你可以使用几种不同的循环结构来遍历列表并执行操作。以下是一些常用的方法:
1. for 循环
最基本的方法是使用for循环,它会遍历列表中的每个元素。
my_list = [1, 2, 3, 4, 5]for item in my_list:print(item) # 打印每个元素
2. while 循环
你也可以使用while循环来遍历列表,但你需要手动管理索引。
my_list = [1, 2, 3, 4, 5]
index = 0while index < len(my_list):print(my_list[index])index += 1 # 记得递增索引
3. for 循环与索引
如果你需要在循环中使用元素的索引,你可以使用enumerate()函数。
my_list = ["a", "b", "c", "d"]for index, item in enumerate(my_list):print(f"Index {index}, Item {item}")
4. range() 和 len()
与while循环类似,你也可以在for循环中使用range()和len()来控制循环。
my_list = [1, 2, 3, 4, 5]for i in range(len(my_list)):print(my_list[i])
5. 列表推导式
对于更复杂的操作,你可能想要创建一个新的列表,基于原有列表的每个元素。这时可以使用列表推导式。
my_list = [1, 2, 3, 4, 5]
squared_list = [x**2 for x in my_list] # 创建一个新列表,包含原列表元素的平方
6. map() 函数
map()函数可以对列表中的每个元素应用一个函数,并返回一个迭代器。
my_list = [1, 2, 3, 4, 5]
squared_list = list(map(lambda x: x**2, my_list)) # 使用lambda函数对每个元素进行平方
7. filter() 函数
filter()函数可以用来过滤列表,只保留满足条件的元素。
my_list = [1, 2, 3, 4, 5]
even_list = list(filter(lambda x: x % 2 == 0, my_list)) # 只保留偶数
8. zip() 函数
如果你有多个列表,并且想要并行地遍历它们,可以使用zip()函数。
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']for num, char in zip(list1, list2):print(f"{num} {char}")
这些是使用列表进行循环操作的一些基本方法。根据你的具体需求,你可以选择最适合的方法来处理列表数据。
五、应用场景
Python中的列表是一种非常灵活和强大的数据结构,除了用于循环遍历之外,它还有许多其他的应用场景:
1. 数据存储和集合操作
列表可以作为简单的数据集合,用于存储和操作一系列相关的数据。
# 存储一个班级的学生名字
class_list = ["Alice", "Bob", "Charlie"]# 添加新学生
class_list.append("David")# 移除学生
class_list.remove("Bob")
2. 栈和队列
列表可以用作栈(后进先出)和队列(先进先出)的数据结构。
# 栈操作
stack = [1, 2, 3]
stack.append(4) # 压栈
top_element = stack.pop() # 弹栈# 队列操作
queue = [1, 2, 3]
queue.append(4) # 入队
front_element = queue.pop(0) # 出队
3. 多维数组
虽然Python没有内置的多维数组支持,但可以通过列表嵌套列表来模拟。
# 创建一个二维列表(矩阵)
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
4. 函数参数传递
列表可以作为参数传递给函数,允许函数处理序列化的数据。
def process_items(items):for item in items:print(item)# 调用函数
process_items(["apple", "banana", "cherry"])
5. 算法实现
列表常用于实现各种算法,如排序、搜索、递归等。
# 冒泡排序
def bubble_sort(items):n = len(items)for i in range(n):for j in range(0, n-i-1):if items[j] > items[j+1]:items[j], items[j+1] = items[j+1], items[j]# 使用冒泡排序
numbers = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(numbers)
6. 数据过滤和转换
列表推导式和map()、filter()函数常用于对数据进行过滤和转换。
# 过滤出偶数并转换为字符串
evens = [str(x) for x in range(10) if x % 2 == 0]
7. 存储键值对
虽然Python有字典(dict)这种专门的键值对存储结构,但有时也会用列表来存储简单的键值对。
# 存储键值对
settings = [("username", "admin"), ("password", "secret"), ("level", "admin")]
8. 事件和回调处理
在事件驱动的编程中,列表可以用来存储事件监听器或回调函数。
# 存储回调函数
callbacks = []def on_event(data):for callback in callbacks:callback(data)# 添加回调
callbacks.append(my_callback_function)
9. 批处理和队列任务
在需要批量处理任务时,列表可以用来存储待处理的任务队列。
# 任务队列
task_queue = [task1, task2, task3]# 处理任务
while task_queue:current_task = task_queue.pop(0)process(current_task)
10. 游戏开发
在游戏开发中,列表可以用来存储游戏对象、得分、等级等。
# 存储游戏得分
scores = [player1_score, player2_score, player3_score]
列表的应用场景非常广泛,几乎涵盖了编程中的各个方面。由于其灵活性和易用性,列表是Python编程中最常用的数据结构之一。
六、元组
在Python中,元组(Tuple)是一种不可变的序列类型,它可以存储任意类型的元素,包括数字、字符串、甚至是其他元组。元组一旦被创建,其中的元素就不能被修改,这意味着元组是不可变的。
以下是元组的一些特点:
-
不可变性:元组的不可变性意味着一旦创建,你不能改变它的元素。尝试修改元组的操作将会引发错误。
-
有序性:元组中的元素是有序的,这意味着元素有固定的顺序,并且可以通过索引访问。
-
可索引性:每个元素在元组中都有一个索引,可以通过索引来访问特定的元素。
-
可迭代性:元组是可迭代的,这意味着你可以使用循环来遍历元组中的所有元素。
-
可嵌套性:元组可以包含其他元组作为其元素。
-
轻量级:相比于列表,元组的创建和销毁需要的开销更小,因为它们是不可变的。
-
语法:元组的创建通常使用圆括号
(),或者简单地将一系列逗号分隔的值放在一起,即使只有一个元素,也需要在元素后面加上逗号。
以下是一些元组的使用示例:
# 创建一个元组
my_tuple = (1, 2, 3, 4)# 访问元组中的元素
print(my_tuple[0]) # 输出 1# 元组的不可变性
# my_tuple[0] = 5 # 这将引发 TypeError,因为元组是不可变的# 元组的可迭代性
for item in my_tuple:print(item)# 创建一个包含单个元素的元组
single_element_tuple = (5,) # 注意逗号是必须的# 创建一个嵌套元组
nested_tuple = (1, 2, (3, 4))# 访问嵌套元组中的元素
print(nested_tuple[2][1]) # 输出 4
元组经常用于函数返回多个值的情况,或者作为字典的键,因为字典的键必须是不可变类型。由于元组的不可变性,它们也常用于确保数据的安全性,特别是在需要防止数据被意外修改的情况下。
七、练习
以下是一个Python程序示例,它使用列表和循环来实现一个简单的投票系统,用户可以输入他们支持的候选人的名字,程序最后会统计并显示每个候选人的得票数。
# 一个简单的投票系统示例# 候选人名单
candidates = ["Alice", "Bob", "Charlie"]# 用于存储每个候选人的得票数的字典
votes = {candidate: 0 for candidate in candidates}# 模拟投票过程
print("投票开始!请输入候选人的名字(输入'结束'来结束投票):")
while True:vote = input("请输入你的投票:")if vote == "结束":breakelif vote in votes:votes[vote] += 1else:print("候选人不存在,请重新输入!")# 显示投票结果
print("\n投票结束!结果如下:")
for candidate, vote_count in votes.items():print(f"{candidate} 获得了 {vote_count} 票。")# 显示获胜者
winner = max(votes, key=votes.get)
print(f"\n获胜者是:{winner},获得了 {votes[winner]} 票。")
这个程序首先定义了一个包含候选人名字的列表和用于统计票数的字典。然后,它进入一个循环,让用户输入他们支持的候选人名字。用户输入“结束”时,循环终止,程序计算并显示每个候选人的得票数,并宣布得票最多的候选人为获胜者。
请注意,这个程序是一个简单的示例,没有错误处理(比如防止用户输入非法字符),在实际应用中需要更健壮的代码来处理各种可能的输入和异常情况。
相关文章:
青少年编程与数学 02-008 Pyhon语言编程基础 10课题、列表与循环语句
青少年编程与数学 02-008 Pyhon语言编程基础 10课题、列表与循环语句 一、列表二、定义与使用定义列表访问列表元素访问列表的切片修改列表元素列表的其他操作 三、运算1. 列表连接(Concatenation)2. 列表复制(Copying)3. 列表重复…...
caddy2配置http_basic用于验证用户名密码才允许访问页面
参考: basicauth (Caddyfile指令) — Caddy v2中文文档 1,查看caddy是否已经包含了Basic Auth插件 命令:caddy list-modules | grep http_basic 如果显示: http.authentication.providers.http_basic 则代表包含 Basic Auth 模…...
FOC核心原理的C语言实现
概述 应用FOC算法,比如无人机、电动汽车或工业电机控制。因此,除了理论,还需要提供实用的实现步骤、常见问题及解决方案,比如如何获取电机的位置信息(编码器或传感器),如何处理电流采样&#x…...
利用Manim库结合`matplotlib`、`numpy`和`scipy`来制作工作流程动画
以下是一个利用Manim库结合matplotlib、numpy和scipy来制作工作流程动画,展示流场速度分布计算模型,以及三流喷嘴的速度场和主要参数分布的可视化图形与动画的示例代码。这个示例将模拟一个简化的三流喷嘴速度场,通过计算速度分布并将其可视化…...
零代码搭建个人博客—Zblog结合内网穿透发布公网
目录 一、准备工作二、Z-blog 网站搭建1. XAMPP 环境设置2. Z-blog 安装3. Z-blog 网页测试 三、内网穿透工具 Cpolar 的安装和配置1. Cpolar 安装2. Cpolar 云端设置3. Cpolar 本地设置 四、本地网页发布五、注意六、本次经历总结 大家好,我是学问小小谢。 最近心血…...
宏_wps_宏修改word中所有excel表格的格式_设置字体对齐格式_删除空行等
需求: 将word中所有excel表格的格式进行统一化,修改其中的数字类型为“宋体, 五号,右对齐, 不加粗,不倾斜”,其中的中文为“宋体, 五号, 不加粗,不倾斜” 数…...
electron 应用开发实践
参考链接: https://blog.csdn.net/2401_83384536/article/details/140549279...
xss靶场
xss-labs下载地址:GitHub - do0dl3/xss-labs: xss 跨站漏洞平台 xss常见触发标签:XSS跨站脚本攻击实例与防御策略-CSDN博客 level-1 首先查看网页的源代码发现get传参的name的值test插入了html里头,还回显了payload的长度。 <!DOCTYPE …...
Koa 基础篇(二)—— 路由与中间件
let app new Koa() router.get(“/”,async ctx > { ctx.body “hello koa router” }) app.use(router.routes()) app.use(router.allowedMethods()) app.listen(3000) 运行项目,在浏览器访问本地3000端口,在页面上就会看到输出的语句。这就…...
Day48:获取字典键的值
在 Python 中,字典是一种无序的集合类型,它以键-值对的形式存储数据。字典的每个元素都有一个唯一的键,并且每个键都对应一个值。获取字典中的值是字典操作的常见任务,今天我们将学习如何从字典中获取键对应的值。 1. 使用方括号…...
线段树(Segment Tree)和树状数组
线段树(Segment Tree)和树状数组 线段树的实现链式:数组实现 解题思路树状数组 线段树是 二叉树结构 的衍生,用于高效解决区间查询和动态修改的问题,其中区间查询的时间复杂度为 O(logN),动态修改单个元素的…...
MySQL注入中load_file()函数的使用
前言 在Msql注入中,load_file()函数在获得webshell以及提权过程中起着十分重要的作用,常被用来读取各种配置文件 而load_file函数只有在满足两个条件的情况下才可以使用: 文件权限:chmod ax pathtofile 文件大小:必须…...
[NOIP2007]矩阵取数游戏
点我写题 题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数。游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个。m次后取完矩阵所有元素; 2.每次取走的…...
DeepSeek-R1 论文解读 —— 强化学习大语言模型新时代来临?
近年来,人工智能(AI)领域发展迅猛,大语言模型(LLMs)为通用人工智能(AGI)的发展开辟了道路。OpenAI 的 o1 模型表现非凡,它引入的创新性推理时缩放技术显著提升了推理能力…...
使用Pygame制作“贪吃蛇”游戏
贪吃蛇 是一款经典的休闲小游戏:玩家通过操控一条会不断变长的“蛇”在屏幕中移动,去吃随机出现的食物,同时要避免撞到墙壁或自己身体的其他部分。由于其逻辑相对简单,但可玩性和扩展性都不错,非常适合作为新手练习游戏…...
云计算技术深度解析与实战案例
云计算技术深度解析与实战案例 引言 随着信息技术的飞速发展,云计算作为一种革命性的技术模式,已经渗透到各行各业,成为推动数字化转型的关键力量。本文旨在深入探讨云计算的技术特点、应用场景,并通过一个具体的代码使用案例&a…...
deb安装失败后,无法再安装别的包的解决方案
把package_name换成出安装问题的包 移除该包的安装标记 sudo dpkg --remove --force-remove-reinstreq package_name清理残留文件和配置 sudo apt-get purge package_name...
海外问卷调查如何影响企业的经营?在品牌建设中有何指导意义?
市场调查的定义:通过科学的方法,有目的地、系统地搜集整理一些市场信息,其目的在于了解当下市场现状和发展前景,为企业生产和品牌打造提供一些科学的指导意见,这是任何大企业、中小企业、初创企业都必须重视的一个重要…...
脚本运行禁止:npm 无法加载文件,因为在此系统上禁止运行脚本
问题与处理策略 1、问题描述 npm install -D tailwindcss执行上述指令,报如下错误 npm : 无法加载文件 D:\nodejs\npm.ps1,因为在此系统上禁止运行脚本。 有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_…...
unity学习23:场景scene相关,场景信息,场景跳转
目录 1 默认场景和Assets里的场景 1.1 scene的作用 1.2 scene作为project的入口 1.3 默认场景 2 场景scene相关 2.1 创建scene 2.2 切换场景 2.3 build中的场景,在构建中包含的场景 (否则会认为是失效的Scene) 2.4 Scenes in Bui…...
CPU 100% 出现系统中断 怎么解决
CPU 100% 出现系统中断 怎么解决 电脑开机时会掉帧,切换到桌面时就会卡顿,然后打开任务管理器就会看到系统中断的cpu占用率达到100%,过一段时间再打开还是会有显示100%的占用率,这个问题怎么解决? 文章目录 CPU 100% …...
数据分析系列--⑥RapidMiner构建决策树(泰坦尼克号案例含数据)
一、资源下载 二、数据处理 1.导入数据 2.数据预处理 三、构建模型 1.构建决策树 2.划分训练集和测试集 3.应用模型 4.结果分析 一、资源下载 点击下载数据集 二、数据处理 1.导入数据 2.数据预处理 三、构建模型 1.构建决策树 虽然决策树已经构建,但对于大多数初学者或…...
【MyDB】4-VersionManager 之 4-VM的实现
【MyDB】4-VersionManager 之 4-VM的实现 VM 的实现VM(VersionManager)的基本定义与实现优化具体功能实现begin()开启事务commit()提交事务abort 中止事务read 读取uid对应的数据记录所在的entryinsert方法,插入数据delete方法 VM 的实现 本章代码位于:t…...
2024-2025自动驾驶技术演进与产业破局的深度实践——一名自动驾驶算法工程师的年度技术总结与行业洞察
一、引言:站在自动驾驶的"技术奇点" 2024年是自动驾驶行业从"技术验证"迈向"商业化落地"的关键转折点。从特斯拉FSD V12的端到端技术突破,到中国L3法规的破冰,从大模型重构感知架构,到城市NOA的&qu…...
计算机网络 笔记 传输层
概述: 主要功能: TCP: 特点***: 数据格式: 连接管理***: 建立连接(三次握手) 释放连接(四次挥手) 应用场景 UDP: 特点: 数…...
(leetcode 213 打家劫舍ii)
代码随想录: 将一个线性数组换成两个线性数组(去掉头,去掉尾) 分别求两个线性数组的最大值 最后求这两个数组的最大值 代码随想录视频 #include<iostream> #include<vector> #include<algorithm> //nums:2,…...
《TCP 网络编程实战:开发流程、缓冲区原理、三次握手与四次挥手》
一、 TCP 网络应用程序开发流程 学习目标 能够知道TCP客户端程序的开发流程1. TCP 网络应用程序开发流程的介绍 TCP 网络应用程序开发分为: TCP 客户端程序开发TCP 服务端程序开发说明: 客户端程序是指运行在用户设备上的程序 服务端程序是指运行在服务器设备上的程序,专门…...
62.异步编程+Prism
为什么不需要在构造函数中初始化了? private ICommand _fetchUserInfoCommand; public ICommand FetchUserInfoCommand > _fetchUserInfoCommand ?? new DelegateCommand(ExecuteFetchUserInfoAsync); public MainWindowViewModel() {// 无需…...
基于亿坊PHP框架构建物联网解决方案的优势分析!
在物联网 (IoT) 领域,选到合适的框架对于整个项目的开展也尤为重要。通常情况下,基于PHP的一些主流框架被用户常选择,今天就带大家了解下基于亿坊PHP框架构建物联网解决方案的优势有哪些? 1、开发效率高 在物联网项目中…...
把本地搭建的hexo博客部署到自己的服务器上
配置远程服务器的git 安装git 安装依赖工具包 yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel安装编译工具 yum install -y gcc perl-ExtUtils-MakeMaker package下载git,也可以去官网下载了传到服务器上 wget https://www.ke…...
