【人生苦短,我学 Python】(4)Python 常用内置数据类型 II —— 序列数据类型(str、tuple、list、bytes和bytearray)
目录
- 简述 / 前言
- 1. str 数据类型(字符串)
- 1.1 str对象
- 1.2 str对象属性和方法
- 1.3 字符串编码
- 1.4 转义字符
- 1.5 字符串的格式化
- 2. tuple 数据类型(元组)
- 2.1 创建元组对象
- 3. list 数据类型(列表)
- 3.1 创建列表对象
- 3.2 list 对象的方法
- 3.3 列表解析表达式
- 4. 系列数据的基本操作
- 5. 系列的切片操作
- 6. 字节系列
- 6.1 bytes常量
- 6.2 创建 bytes 和 bytearrary 对象
- 6.3 字节编码和解码
- 文章传送门
简述 / 前言
前面主要了解了 Python 的语言基础,现在我们来了解 Python 给我们提供了哪些数据类型,以及如何使用这些数据类型。
- Python语言中,一切皆为对象,而每个对象都属于某个数据类型;
- Python的数据类型包括内置的数据类型、模块中定义的数据类型和用户自定义的类型;
- 数值数据类型:int、bool、float、complex;
- 序列数据类型:不可变(str、tuple、bytes)和可变(list、bytearray);
- 集合数据类型:set、frozenset;
- 字典数据类型:dict。例如:{1: “one”, 2: “two”};;
- NoneType、NotImplementedType和EllipsisType。
上一篇文章我们介绍了数值数据类型,这篇我们介绍序列数据类型(str、tuple、list、bytes和bytearray)。
1. str 数据类型(字符串)
- Python中没有独立的字符数据类型,字符即长度为1的字符串。
- Python内置数据类型str,用于字符串处理:
- str对象的值为字符系列;
- str对象(字符串)是不可变对象。
- 使用单引号或双引号括起来的内容,是字符串字面量。
- 单引号(’ ')。包含在单引号中的字符串,其中可以包含双引号。
- 双引号(" ")。包含在双引号中的字符串,其中可以包含单引号。
- 三单引号(“” “”)。包含在三单引号中的字符串,可以跨行。
- 三双引号(“”" “”")。包含在三双引号中的字符串,可以跨行。
1.1 str对象
用 str() 可以将任何数据类型转为str类型。
>>> str(2023)
'2023'
>>> str(False)
'False'
>>> str(3.141592)
'3.141592'
>>> str('小邓在森林')
'小邓在森林'
>>> str([1, 2, 3])
'[1, 2, 3]'
>>> str(None)
'None'
1.2 str对象属性和方法
-
转成大写
>>> s = 'abc' >>> s.upper() # 字符串对象s的方法。输出:'ABC' 'ABC' >>> str.upper(s) # str类方法,字符串s作为参数。输出:'ABC' 'ABC' -
转成小写
>>> s = 'AbC' >>> s.lower() 'abc' >>> str.lower(s) 'abc' >>> s = '小邓在森林' >>> s.lower() '小邓在森林' >>> str.lower(s) '小邓在森林'注:大小写转换只对英文字符有用~
Python还提供了另一个内置函数
repr(),函数repr()返回一个对象的更精确的字符串表示形式,但是经过实操没发现它和str()有什么区别。>>> c = 1 / 3 >>> str(c) '0.3333333333333333' >>> repr(c) '0.3333333333333333'
1.3 字符串编码
- Python 3 字符默认为16位Unicode编码。
- 使用内置函数
ord()可以把字符转换为对应的Unicode码;使用内置函数chr()可以把十进制数转换为对应的字符。
>>> ord('a')
97
>>> ord('A')
65
>>> chr(97)
'a'
>>> chr(65)
'A'
>>> ord('森')
26862
>>> chr(26862)
'森'
1.4 转义字符
| 转义字符 | 功能/作用 | 转义字符 | 功能/作用 |
|---|---|---|---|
| \’ | 单引号 | \n | 换行(LF) |
| \" | 双引号 | \r | 回车(CR) |
| \\ | 反斜杠 | \t | 水平制表符(HT) |
| \a | 响铃(BEL) | \v | 垂直制表符(VT) |
| \b | 退格(BS) | \ooo | 八进制Unicode码对应的字符 |
| \f | 换页(FF) | \xhhh | 十六进制Unicode码对应的字符 |
注:标粗的 5 个转义字符是本人觉得最常用的~
1.5 字符串的格式化
- 字符串.format(value1, value2, …)
>>> "我是{0}, 加入CSDN已经{1}年了".format("小邓在森林", 2) '我是小邓在森林, 加入CSDN已经2年了' - str.format(格式字符串, value1, value2, …)
>>> str.format("我是{0}, 加入CSDN已经{1:.1f}年了", "小邓 在森林", 2) '我是小邓在森林, 加入CSDN已经2.0年了' - format(value, 格式字符串)
>>> format(99.99, "0.4f") '99.9900' - 格式字符串 % (value1, value2, …) 兼容Python2的格式,但是这里不建议使用!
>>> "我是%s, 加入CSDN已经%2d年了" % ("小邓在森林", 2) '我是小邓在森林, 加入CSDN已经 2年了'
更多示例(画三角形):
- 居中对齐:
>>> print("1".center(10))1 >>> print(format("121", "^10"))121 >>> print(format("12321", "^10"))12321 - 右对齐
>>> print("1".rjust(10, "*")) *********1 >>> print(format("121", "*>10")) *******121 >>> print(format("12321", "*>10")) *****12321 - 左对齐
>>> print("1".ljust(10, "*")) 1********* >>> print(format("121", "*<10")) 121******* >>> print(format("12321", "*<10")) 12321*****
2. tuple 数据类型(元组)
一组有序系列,包含0个或多个对象引用。
元组可以通过创建 tuple 对象来创建,在 Python 中用小括号表示。
2.1 创建元组对象
>>> t1 = ()
>>> t2 = 1, 2
>>> t3 = 1,
>>> t4 = (1, 2, 3)
>>> t5 = 'a', 'b', 'c'
>>> t6 = 3.14 # 后面没加逗号,所以不是元组!
>>> print(t1, t2, t3, t4, t5, t6)
() (1, 2) (1,) (1, 2, 3) ('a', 'b', 'c') 3.14
3. list 数据类型(列表)
类似下面这种形式的数据就是 list :[x1, x2, [x3, …, xn]],可以通过创建 list 对象来创建。
3.1 创建列表对象
>>> l1 = []
>>> l2 = [2023]
>>> l3 = ['a', 'b', 'c']
>>> print(l1, l2, l3)
[] [2023] ['a', 'b', 'c']
3.2 list 对象的方法
>>> s = [1, 2, 3]
| 方法 | 功能 |
|---|---|
| s.append(x) | 把对象x追加到列表s尾部 |
| s.clear() | 删除所有元素。相当于del s[:] |
| s.copy() | 拷贝列表 |
| s.extend(f) | 把序列t附加到s尾部 |
| s.insert(index, x) | 在下标 index 位置插入对象x |
| s.pop([index]) | 返回并移除下标 index 位置对象,省略 index 时为最后对象。若超出下标,将导致IndexError ! |
| s.remove(x) | 移除列表中第一个出现的x。若对象不存在,将导致ValueError ! |
| s.reverse() | 逆置列表 |
| s.sort() | 列表排序 |
>>> s = [1, 2, 3]
>>> s.append('abc')
>>> s
[1, 2, 3, 'abc']
>>> s.clear()
>>> s
[]
>>> s = [1, 2, 3]
>>> s1 = s.copy()
>>> s1
[1, 2, 3]
>>> s.extend('abc')
>>> s
[1, 2, 3, 'a', 'b', 'c']
>>> s.pop(3)
'a'
>>> s
[1, 2, 3, 'b', 'c']
>>> s.remove('b')
>>> s
[1, 2, 3, 'c']
>>> s.reverse()
>>> s
['c', 3, 2, 1]
>>> s.sort() # 注意:排序时不能有字符串,只支持数值类型的元素排序!!!
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'int' and 'str'
>>> s.remove('c')
>>> s
[3, 2, 1]
>>> s.sort()
>>> s
[1, 2, 3]
3.3 列表解析表达式
value for i_1 in 序列1 ... for i_N in 序列N:迭代序列里面的所有内容,并计算生成列表。value for i_1 in 序列1 ... for i_N in 序列N if ...:按照条件迭代,并计算生成列表。
>>> [val**2 for val in range(5)] # 平方
[0, 1, 4, 9, 16]
>>> [(val, val**2) for val in range(5)] # 原值,平方
[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16)]
>>> [val for val in range(10) if val%2==1] # 取奇数
[1, 3, 5, 7, 9]
4. 系列数据的基本操作
| 函数 | 功能 |
|---|---|
| len() | 获取系列的长度 |
| max() | 获取系列中元素最大值 |
| min() | 获取系列中元素最小值 |
| sum() | 获取列表或元组中各元素之和 |
| x in s | 元素x在s中吗?是的话为True,否则为False |
| x not in s | 元素x不在s中吗?是的话为True,否则为False |
| s.count(x) | 返回x在s中出现的次数 |
| s.index(x) | 返回x在s中第一次出现的下标 |
| sorted(iterable, key=None, reverse=False) | 返回系列的排序列表 |
| all(iterable) | 如果序列的所有值都为True,返回True;否则,返回False |
| any(iterable) | 如果序列的任意值为True,返回True;否则,返回False |
-
字符串
>>> s = '小邓在森林-2023' >>> len(s) 10 >>> max(s) '邓' >>> min(s) '-' >>> s1 = 'abcd' >>> len(s1) 4 >>> max(s1) 'd' >>> min(s1) 'a' >>> s2 = '' >>> len(s2) 0 >>> max(s2) Traceback (most recent call last):File "<stdin>", line 1, in <module> ValueError: max() arg is an empty sequence >>> min(s2) Traceback (most recent call last):File "<stdin>", line 1, in <module> ValueError: min() arg is an empty sequence >>> '小' in s True >>> '1' in s False >>> '1' not in s True >>> s.count('2') 2 >>> s.count('1566') 0 >>> s.index('森林') 3 >>> s.index('6') # '6'不在s中 Traceback (most recent call last):File "<stdin>", line 1, in <module> ValueError: substring not found >>> sorted(s) ['-', '0', '2', '2', '3', '在', '小', '林', '森', '邓'] >>> sorted(s, reverse=True) ['邓', '森', '林', '小', '在', '3', '2', '2', '0', '-'] >>> s1 = 'abAD' >>> sorted(s1, key=str.upper) ['a', 'A', 'b', 'D'] >>> sorted(s1, key=str.lower) ['a', 'A', 'b', 'D']注:汉字求
max,min是先将汉字转为汉字编码再进行大小比较,而英文则是转为 ASCII 码。空字符串不能求max和min! -
元组
>>> t = (1, 2, 3) >>> len(t) 3 >>> max(t) 3 >>> min(t) 1 >>> t1 = () >>> len(t1) 0 >>> max(t1) Traceback (most recent call last):File "<stdin>", line 1, in <module> ValueError: max() arg is an empty sequence >>> min(t1) Traceback (most recent call last):File "<stdin>", line 1, in <module> ValueError: min() arg is an empty sequence >>> 1 in t True >>> -1 in t False >>> -1 not in t True >>> t.count(1) 1 >>> t.index(2) 1 >>> t.index(1) 0 >>> sorted(t) [1, 2, 3] >>> sorted(t, reverse=True) [3, 2, 1]注:空元组不能求
max和min! -
列表
>>> l = [1, 2, 3] >>> len(l) 3 >>> max(l) 3 >>> min(l) 1 >>> l1 = [] >>> len(l1) 0 >>> max(l1) Traceback (most recent call last):File "<stdin>", line 1, in <module> ValueError: max() arg is an empty sequence >>> min(l1) Traceback (most recent call last):File "<stdin>", line 1, in <module> ValueError: min() arg is an empty sequence >>> 3 in l True >>> 3 not in l False >>> l.count(3) 1 >>> l.index(2) 1 >>> sorted(l) [1, 2, 3] >>> sorted(l, reverse=True) [3, 2, 1]注:空列表不能求
max和min!
如何访问系列元素?
用 s[index] 即可访问不同数据类型的 index 位置的数据,注意它是从 0 开始计算的,访问时不能越界!!!
python 中如果 index 为负数,表示从尾部向前取元素,最后一个元素索引为 -1。
其中: s [ 0 ] = s [ − l e n ( s ) ] s[0] = s[-len(s)] s[0]=s[−len(s)]
-
字符串
>>> s = 'abcdefg' >>> s[0] 'a' >>> s[-1] 'g' >>> s[10] # 越界 Traceback (most recent call last):File "<stdin>", line 1, in <module> IndexError: string index out of range -
元组
>>> t = (1, 2, 3) >>> t[0] 1 >>> t[-1] 3 >>> t[-3] 1 >>> t[100] # 越界 Traceback (most recent call last):File "<stdin>", line 1, in <module> IndexError: tuple index out of range -
列表
>>> l = [1, 2, 3] >>> l[0] 1 >>> l[-1] 3 >>> l[2023] Traceback (most recent call last):File "<stdin>", line 1, in <module> IndexError: list index out of range
5. 系列的切片操作
前面只说了取一个元素,那么能不能一次性取多个元素呢?答案是可以的。
用 s[start:stop] 或者 s[start:stop:step] 就可以一次性取多个元素。
| - | 含意 |
|---|---|
| start | 取值的开始索引 |
| stop | 取值的终止索引 |
| step | 取值步长 |
注:切片操作的区间是左闭右开的,即只能取到 s[start], ..., s[stop-1] ,s[stop] 无法取到!
如果 stop > len(s)-1 , 则只会取到索引为 len(s)-1 的元素。
-
字符串
>>> s = 'abcdefg' >>> s[0:2] 'ab' >>> s[1:3] 'bc' >>> s[1:6:2] # 会间隔一个元素再取 'bdf' >>> s[::2] # 从第一个元素开始取,然后间隔一个元素再取 'aceg' >>> s[::-1] # 从后往前取 'gfedcba' >>> s[::-2] # 从后往前取,每次间隔一个元素 'geca' -
元组
>>> t = (1, 2, 3, 4, 5, 6) >>> t[2:6] (3, 4, 5, 6) >>> t[::-3] (6, 3) >>> t[::-1] (6, 5, 4, 3, 2, 1) >>> t[2:6:2] (3, 5) >>> t[2:10] # 等价于t[2:6] (3, 4, 5, 6) >>> t[2:6] (3, 4, 5, 6) -
列表
>>> l = [1, 2, 3, 4, 5, 6] >>> l[-5:-1] [2, 3, 4, 5] >>> l[-5:-1:2] [2, 4] >>> l[-5:-1:-1] [] >>> l[-1:-5:-1] [6, 5, 4, 3]
6. 字节系列
字节系列(bytes 和 bytearray)是由 8 位字节数据组成的系列数据类型,即 0<=x<256 的整数系列。
6.1 bytes常量
使用字母 b 加单引号或双引号括起来的内容。
bytes常量与字符串定义方式类似:
- 单引号(
b' ')。包含在单引号中的字符串,其中可以包含双引号; - 双引号(
b" ")。包含在双引号中的字符串,其中可以包含单引号; - 三单引号(
b''' ''')。包含在三单引号中的字符串,可以跨行; - 三双引号(
b""" """)。包含在三双引号中的字符串,可以跨行。
6.2 创建 bytes 和 bytearrary 对象
| 函数 | 功能 |
|---|---|
| bytes() | 创建空的bytes对象 |
| bytes(n) | 创建长度为n的bytes对象,各字节为0 |
| bytearrary() | 创建空的bytearrary对象 |
| bytearrary(n) | 创建长度为n的bytearrary对象,各字节为0 |
还有一些创建 bytes 和 bytearrary 对象的方法,因为这个不常用,所以不具体介绍,下面主要讲讲编码和解码的问题就结束了。
6.3 字节编码和解码
字符串可以通过 s.encode() 方法编码为字节码;通过 s.decode() 方法解码为字符串。
>>> s = '小邓在森林'
>>> b = s.encode()
>>> b
b'\xe5\xb0\x8f\xe9\x82\x93\xe5\x9c\xa8\xe6\xa3\xae\xe6\x9e\x97'
>>> b.decode()
'小邓在森林'
这里只展示了字符串和字节码之间的转换,字符串还可以和 UTF-8、GBK 等编码进行转换!
文章传送门
上一篇文章:【人生苦短,我学 Python】(3)Python 常用内置数据类型 I —— 数值数据类型(int、float、complex、bool)
下一篇文章:
相关文章:
【人生苦短,我学 Python】(4)Python 常用内置数据类型 II —— 序列数据类型(str、tuple、list、bytes和bytearray)
目录 简述 / 前言1. str 数据类型(字符串)1.1 str对象1.2 str对象属性和方法1.3 字符串编码1.4 转义字符1.5 字符串的格式化 2. tuple 数据类型(元组)2.1 创建元组对象 3. list 数据类型(列表)3.1 创建列表…...
Android 9.0 系统默认显示电量百分比
Android 9.0 系统默认显示电量百分比 近来收到项目需求需要设备默认显示电量百分比,具体修改参照如下: /frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java private void updateShowPercent() {final boolean showin…...
原神:夏洛蒂是否值得培养?全队瞬抬治疗量不输五星,但缺点也很明显
作为四星冰系治疗角色,夏洛蒂的实战表现可以说相当让人惊喜。不仅有相当有意思的普攻动作以及技能特效,而且她还有治疗和挂冰等功能性。下面就来详细聊聊夏洛蒂是否值得培养。 【治疗量让人惊喜,但也有缺点】 说实话,在使用夏洛蒂…...
Sublime text 添加到鼠标右键菜单,脚本实现
Sublime text 添加到鼠标右键菜单 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\SublimeText] "Open with Sublime Text" "Icon""D:\\Program Files\\Sublime Text\\sublime_text.exe,0" [HKEY_CLASSES_ROOT\*\shell\Subl…...
【算法】离散化 与 哈希 之间的区别
离散化(Discretization)和哈希(Hashing)是两种不同的数据处理技术,用于处理不同类型的问题。 1. 离散化(Discretization): 离散化是将一组连续的数据映射到有限个离散值的过程。主要…...
Android : GPS定位 获取当前位置—简单应用
示例图: MainActivity.java package com.example.mygpsapp;import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat;import android.Manif…...
目标检测——R-CNN算法解读
论文:Rich feature hierarchies for accurate object detection and semantic segmentation 作者:Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik 链接:https://arxiv.org/abs/1311.2524 代码:http://www.cs.berke…...
基于傅里叶变换的运动模糊图像恢复算法matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、傅里叶变换与图像恢复 4.2、基于傅里叶变换的运动模糊图像恢复算法原理 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 %获取角度 img…...
使用mock.js模拟数据
一、安装mock.js npm i mockjs 二、配置JSON文件 我们创建一个mock文件夹,用于存放mock相关的模拟数据和代码实现。 我们将数据全部放在xxx.json文件夹下,里面配置我们需要的JSON格式的数据。 注意:json文件中不要留有空格,否则…...
Android Handler同步屏障:深入解析
Android Handler同步屏障:深入解析 在Android开发中,Handler和MessageQueue是处理线程间通信的重要组件。除了常见的消息发送和处理功能,Handler还提供了一个高级特性:同步屏障。本文将深入探讨这一特性,包括它的工作…...
HT for Web (Hightopo) 使用心得(5)- 动画的实现
其实,在 HT for Web 中,有多种手段可以用来实现动画。我们这里仍然用直升机为例,只是更换了场景。增加了巡游过程。 使用 HT 开发的一个简单网页直升机巡逻动画(Hightopo 使用心得(5)) 这里主…...
Leetcode(面试题 08.01.)三步问题
文章目录 前言一、题目分析二、算法原理1.状态表示2.状态转移方程3.初始化4.填表顺序5.返回值是什么 三、代码实现总结 前言 在本文章中,我们将要详细介绍一下Leetcode(面试题 08.01.)三步问题相关的内容 一、题目分析 1.小孩可以上一阶,两阶ÿ…...
AIGC: 关于ChatGPT中输出表格/表情/图片/图表这些非文本的方式
ChatGPT 不止是 文本输出 ChatGPT是一个文本模型, 它本身并不能直接去生成图片图表等内容在我们的工作当中,经常需要通过表格, 图表的方式去进行数据的处理和展示在这种情况下,GPT由于不支持去直接的生成图片和图表,我们还能够使用它的GPT帮…...
聊聊logback的addtivity属性
序 本文主要研究一下logback的addtivity属性 LoggerModel ch/qos/logback/classic/model/LoggerModel.java PhaseIndicator(phase ProcessingPhase.SECOND) public class LoggerModel extends Model {private static final long serialVersionUID 5326913660697375316L;S…...
在网络安全护网中,溯源是什么?
在网络安全护网中,溯源是什么? 在网络安全护网中,溯源是指通过收集、分析和解释数字证据来追踪和还原网络攻击或其他网络犯罪活动的过程。它旨在确定攻击者的身份、行为和意图,以便采取适当的对策,并为法律机构提供必…...
【刷题】动态规划
动态规划 139. 单词拆分(一维) 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 1&…...
hadoop操作
文件操作 注意当前所在的路径,创建一个mytest文件夹 创建一个1.txt文件 将1.txt文件移动到mytest中,通过mv改名字,然后查看mytest文件夹的txt文件变成了test.txt 删除文件 上传下载文件 新建1.txt 然后编辑它 随便输入什么 上传 然后看看网…...
角色管理--高级产品经理岗
研发组织管理--角色管理--高级产品经理岗 定位 产品从规划到推进落地的绝对主力,同时能赋能新人,带领新人高质,高效的完成产品的各项工作; 所需资质 某一领域产品专家,有产品架构能力,熟悉产品落地流程…...
nginx: [alert] could not open error log file
先把cmd的报错信息粘出来 nginx: [alert] could not open error log file: CreateFile() “logs/error.log” failed (3: The system cannot find the path specified) 2023/11/29 11:27:37 [emerg] 5040#18772: CreateDirectory() “D:\enviroment\nginx-1.24.0\conf/temp/cli…...
MySQL数据库:外键、唯一键、唯一索引
目录 说明 一、如果要使用外键,表的存储引擎选择哪个? 1.1 答 1.2 示范 1.2.1 主表 (1)MyISAM的表:masterTable2 (2)InnoDB的表:masterTable1 1.2.2 从表 (1&am…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
规则与人性的天平——由高考迟到事件引发的思考
当那位身着校服的考生在考场关闭1分钟后狂奔而至,他涨红的脸上写满绝望。铁门内秒针划过的弧度,成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定",构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...
