Python 字符串详解

整数:

浮点数,复数: 

#归根到底,字符串是一个序列,是像元组那样不可变的序列。
#所以我们可以用切片的方式,将字符串反转。

#字符串的诸多方法
#调用字符串内部方法的好处:更快,更安全(官方的东西,出岔子,肯定会被喷成马蜂窝)

#一、大小写字母转换的方法
#注意以下方法都不是修改原字符串(字符串不能被修改),而是生成了一个新的字符串。
    #1.capitalize() (创建一个新字符串,内容为:原字符串的第一个字母变成大写,其它变为小写)
s = "I love Python!"
print(s.capitalize()) #I love python!

    #2.casefold() (创建一个新字符串,内容为:原字符串的所有字母变为小写)
print(s.casefold()) #i love python!
    
    #3.title() (创建一个新字符串,内容为:原字符串中 所有单词的第一个字母 变成大写,其它变为小写)
print(s.title()) #I Love Python!
    
    #4.swapcase() (创建一个新字符串,内容为:原字符串中所有单词的大小写翻转)
print(s.swapcase()) #i LOVE pYTHON!

    #5.upper() (创建一个新字符串,内容为:原字符串所有字母都变成大写)
print(s.upper()) #I LOVE PYTHON!

    #6.lower()(创建一个新字符串,内容为:原字符串所有字母变成小写)
    #(不同于casefold()能处理德语等其它语言的字符,lower只能处理英文字母)
print(s.lower()) #I LOVE PYTHON!




#二、字符串的左中右对齐
#以下方法都需要一个 width参数 来指定整个字符串的宽度。(很显然一个中文汉字的长度,为一个字符)
#如果指定宽度小于等于原字符串,直接输出原字符串。
x = "我们中出了一个叛徒!"
    #1.center() (居中对齐)
print(x.center(5)) # '我们中出了一个叛徒!'
print(x.center(15)) # '   我们中出了一个叛徒!  '

    #2.ljust() (左对齐)
print(x.ljust(15)) #'我们中出了一个叛徒!     '

    #3.rjust() (右对齐)
print(x.rjust(15)) #'     我们中出了一个叛徒!'

    #4.zfill() (用零填充左侧) (会保持正负数)
s1 = '520'
print(s1.zfill(7)) # 0000520
s1 = '-520'
print(s1.zfill(7)) # -000520 (负号占了一个位置)

    #以上方法还支持一个叫 fillchar 的参数, 可以利用这个参数来 修改 填充空位的字符。
print(x.center(16,'淦'))  #淦淦淦我们中出了一个叛徒!淦淦淦
print(x.ljust(15,'淦'))  #我们中出了一个叛徒!淦淦淦淦淦
print(x.rjust(15,'淦'))  #淦淦淦淦淦我们中出了一个叛徒!




#三、实现字符串的查找功能
    #1.count() (查找指定子字符串在字符串中出现的次数)
x = "上海自来水来自海上"
print(x.count("上")) # 2
print(x.count("上", 0, 4)) # 3 (指定查找范围)

    #2.find() (查找指定子字符串在字符串中出现的下标,从左往右找)(下标索引从0开始,找不到返回-1)
print(x.find("上")) # 0  #(下标索引从0开始)(找不到返回-1)

    #3.rfind() (查找指定子字符串在字符串中出现的下标,从右往左找)
print(x.rfind("上")) # 8 (找不到返回-1)

    #4.index() (查找指定子字符串在字符串中出现的下标,从左往右找)(下标索引从0开始,找不到会抛出异常)
print(x.index("上")) # 0 #(下标索引从0开始) (找不到会报错)

    #5.rindex() (查找指定子字符串在字符串中出现的下标,从右往左找)(下标索引从0开始,找不到会抛出异常)
print(x.rindex("上")) # 8

#四、有关字符串替换的方法
    #1.expandtabs() (用指定数量的空格 替换字符串中的制表符,返回一个新的字符串)
s2 = """    I love maths
    I love Python"""
print(s2.expandtabs(4))
"""
    I love maths
    I love Python"""

    #2.replace(old,new,count = -1) (将字符串中的old,替换为new , 用count设置替换次数)
print(s2.replace("maths","Math"))
"""
    I love Math
    I love Python"""

    #3.translate(table) (根据table表格转换规则来替换字符串内容,生成一个新字符串)
        #table : 一个用于指定转换规则的表格,使用str.maketrans()方法获取这个表格
        #str.maketrans(str1, str2, str3) :属于字符串的静态方法,str2的内容和str1的内容一一对应,str3表示要省略的内容。
table = str.maketrans("Math","1234")
print("I love abc".translate(table)) #I love 2bc
        # maketrans()方法还支持第三个参数,将指定字符串里的字符忽略
print("I love abc".translate(str.maketrans("Math","1234","lv"))) #I oe 2bc




#五、字符串的判断
    #1.startswith() (用于判断指定的子字符串是否出现在字符串的起始位置)
s = "I love C and Pyhton"
print(s.startswith("I")) #True
print(s.startswith("me")) #False
    #2.endswith() (用于判断指定的子字符串是否出现在字符串的结束位置)
s = "I love C and Pyhton"
print(s.endswith("Pyhton")) #True
print(s.startswith("C")) #False
    #1,2 拓:
    #可以加入两个参数,引入判断的开始和结束位置。
print(s.startswith("C",7,8)) #True   
print(s.endswith("C",7,8)) #True
    #以上两个函数支持以元组的形式传入多个字符串:
print(s.endswith(("C","Pyhton","Java","C++"))) #True

    #3.istitle() (用于判断 字符串否为 第一个字母是大写,其它全为为小写)
print(s.istitle()) #False
    #4.isupper() (用于判断字符串 是否全为大写)
print(s.istitle()) #False
print(s.upper().isupper()) #True
    #5.islower() (用于判断字符串 是否全为小写)
print(s.islower()) #False    
print(s.lower().islower()) #True
    #拓:
    #在一个语句中同时调用多个方法,Python是从左往右依次调用的。

    #6.isalpha() (判断字符串是否只由字母构成,注意包括空格,空格不是字母)
print(s.isalpha()) #False
print("IlovePython".isalpha()) #True
    #7.isspace() (判断字符串是否为空白字符串,注意 空格、Tab、换行 都是空白字符串)
print("".isspace()) #False(空字符串不是空白字符串!)
print("     \n".isspace()) #True
    #8.isprintable() (判断字符串中的所有字符是否都为可打印字符)
print("".isprintable()) #True(空字符串是可打印字符串)
print(" ".isprintable()) #True
print("   ".isprintable()) #True
print("\n".isprintable()) #False(转义字符不是可打印字符)

    #9.isdecimal() (判断字符串是否为数字,纯数字)
print()
print("12345".isdecimal()) #True
print("1e10".isdecimal()) #False
print("2²".isdecimal()) #False
print("ⅠⅡⅢⅣⅤ".isdecimal()) #False
print("一二三四五".isdecimal()) #False
print("壹贰叁肆伍".isdecimal()) #False
    #10.isdigit() (判断字符串是否为数字,纯数字,数字带次方)
print()
print("12345".isdigit()) #True
print("1**10".isdecimal()) #False
print("2²".isdigit()) #True
print("ⅠⅡⅢⅣⅤ".isdigit()) #False
print("一二三四五".isdigit()) #False
print("壹贰叁肆伍".isdigit()) #False
    #11.isnumeric() (判断字符串是否为数字,都可以判断)
print()
print("12345".isnumeric()) #True
print("2²".isnumeric()) #True
print("ⅠⅡⅢⅣⅤ".isnumeric()) #True
print("一二三四五".isnumeric()) #True
print("壹贰叁肆伍".isnumeric()) #True
    #12.isalnum() (判断字符串是否为数字,集合了上面三个方法的判断)

    #13.isidentifier() (判断字符串是否为合法的标识符(变量名))
print("I am a good gay".isidentifier()) #False (有空格不是合法标识符)
print("I_am_a_good_gay".isidentifier()) #True

    #14.iskeyword() (判断字符串是否是的Python的关键字) (要导入keyword模块)
import keyword
print(keyword.iskeyword("if")) #True
print(keyword.iskeyword("python")) #True



#五、字符串的截取
    #1.lstrip() (去除字符串左侧的空白)
print("     去除字符串左侧的空白".lstrip()) #去除字符串左侧的空白
    #2.rstrip() (去除字符串右侧的空白)
print("去除字符串右侧的空白     ".rstrip()) #去除字符串右侧的空白
    #3.strip() (去除字符串两侧的空白)
print("  (  去除字符串两侧的空白   )    ".strip()) #(  去除字符串两侧的空白   )
    #上面三个方法可以传入一个参数,指定要消除的一些字符,不指定默认为消除空白
print("www.python.com".lstrip("wcom.")) # python.com
print("www.python.com".rstrip("wcom.")) # www.python
print("www.python.com".strip("wcom."))  # python
    #以下两个方法是python3.9以后才有的
    #4.removeprefix() (消除指定的前缀)
#print("www.python.com".removeprefix("www."))
#print("012345".removeprefix("02"))
    #5.removesuffix() (消除指定的后缀)
#print("www.python.com".removesuffix(".com"))


#六、字符串的拆分和拼接
    #1.partition() (从左往右,把字符串按指定字符串拆分,返回一个含有三个元素的元组)
print("www.python.com".partition("."))  #('www', '.', 'python.com')

    #2.rpartition() (从右往左,把字符串按指定字符串拆分,返回一个含有三个元素的元组)
print("www.python.com".rpartition("."))  #('www.python', '.', 'com')

    #3.split() (从左往右,把字符串,按指定字符串切分,返回一个列表)
print("www.python.com".split(".")) #['www', 'python', 'com']

    #4.rsplit() (从右往左,把字符串,按指定字符串切分,返回一个列表)
print("www.python.com".rsplit(".")) #['www', 'python', 'com']
    #split(rsplit)还可以添加一个参数,指定切分的次数
print("www.python.com".split(".",1)) #['www', 'python.com']
print("www.python.com".rsplit(".",1)) #['www.python', 'com'] (由此可看出split和rsplit的区别)
    #按换行符切分
print("www\npython\ncom".split("\n")) #['www', 'python', 'com']
    #但要知道Linix下的换行是\n, Mac下的换是\r, windows下的是\r\n,这要一个一个区分太麻烦了

    #5.splitlines() (将字符串按行分割,将结果以列表形式返回)
print("\rwww\npython\r\n\rcom".splitlines()) #['', 'www', 'python', '', 'com']
    #该方法可添加一个参数,True表示要带上换行符,默认的False不带
print("\rwww\npython\r\n\rcom".splitlines(True)) #['\r', 'www\n', 'python\r\n', '\r', 'com']

    #6.join() (非常重要,用于字符串的拼接)
print(" ".join(["I","love","Python"])) #I love Python
print(" ".join(("I","love","Python"))) # ""是分隔符,()里面必须是一个可迭代对象,元组也可以
#print(" ".join([1,2,3,4,5])) #只能链接字符串
    #为什么大神喜欢使用join而不使用 + 来拼接字符串
print("I love" + " Python") #I love Python
    #join的速度远超 + (一亿组数据 + 要差不多4个小时,join只要8.88秒)
    #所以join适合大数据


#七、格式化输出字符串(format()方法)
    #1.用花括号代替要输出的参数
print("{}爱{}".format("我","Python"))  #我爱Python
    #2.花括号里可加一个数字对应要输出的括号里参数的索引值。(索引值从0开始)
print("{1}爱{0}".format("我","Python")) #Python爱我
    #同一个索引值可以引用多次
print("{0}{1}{0}{1}".format("A","B")) #ABAB
    #3.使用关键字参数
print("{name}爱{name1}".format(name = "我",name1 = "Python")) #我爱Python
print("{name}爱{name1}".format(name1 = "我",name = "Python")) #Python爱我
    #关键字和索引可混合使用
print("{name}爱{0}".format("Python",name = "我")) #我爱Python
#print("{name}爱{0}".format(name = "我","Python")) #错误,关键字必须写在前面
    #4.如何输出花括号?
print("{{}}") #{{}}
print("{}") #{}
print("{}".format("1")) #1
print("{{}}".format("1")) #{}
        #有format时,用两个嵌套的花括号{{}},输出花括号,没有format时一个花括号就可以了

    #5.字符串的对齐(^:居中 ,<:左对齐 ,>:右对齐 ,=:强制填充在正负号之后(如果有的话))
    #6.指定字符串的宽度(数字写在在:的右侧)(:的左边是关键字索引,右边才是格式化选项)
print("{:10}".format("Python")) #Python    #(默认为左对齐)
print("{:^10}".format("Python")) #  Python  #
print("{:<10}".format("Python")) #Python    #
print("{:>10}".format("Python")) #    Python
print("{1:>10}{0:<10}".format("Python","C++")) #       C++Python    #
print("{left:>10}{right:<10}".format(left = "Python",right = "C++")) #    PythonC++       #

    #7.在指定宽度前还可以加一个0 ,表示用0填充
    # 0写在对齐的符号右边,不感知正负号
print("{:>010}".format(-1)) #00000000-1
    # 0写在对齐的符号左边 或 不写对齐符号,感知正负号
print("{:0>10}".format(-1)) #-000000001
print("{:010}".format(-1)) #-000000001
print("{:¥=10}".format(-1)) #-¥¥¥¥¥¥¥¥1 (=:强制填充在正负号之后)

print("{:¥>10}".format(-1)) #¥¥¥¥¥¥¥¥-1
#print("{:>@10}".format(-1)) #错,不能这样写

print("{:>010}".format("Python")) #0000Python
print("{:#>10}".format("Python")) #####Python
#print("{:010}".format("Python")) #错,为字符串时不能这样写
# print("{:>#10}".format("Python"))#错,为字符串时不能这样写
# print("{:#10}".format("Python")) #错,为字符串时不能这样写
# print("{:010}".format("Python")) #错,为字符串时不能这样写

    #8.符号选项,仅对数字有效 (注意正负号是写在冒号后面)
        # + :正数在前面添加正号(+),负数在前面添加负号(-)
        # - :只有负数在前面添加负号(-),默认行为
        #空格: 正数在前面添加空格,负数在前面添加负号(-)
print("{:+}".format(1)) # +1 (注意正负号是写在冒号后面)
print("{: }".format(1)) #  1

    #9.设置千分位的分隔符,仅对数字有效 (位数不足,千分位分隔符不显示)
print("{:,}".format(10000)) #10,000
print("{:_}".format(10000)) #10_000
#print("{:@}".format(10000)) #报错,已知能用作千分位的分隔符有 , _

    #10.精度选项,我们只需要填入一个十进制整数,对于不同类型参数的效果是不一样的
        # 对于设置为 f 或 F 的浮点数来说,是限定小数点后显示多少个数位
        # 对于设置为 g 或 G 的浮点数来说,是限定小数点前后显示多少个数位
        # 对于非数字类型来说,限定的是最大字段的大小
        # 对于整数类型来说,不允许使用精度选项
print("{:.2f}".format(3.141592)) #3.14
print("{:.2g}".format(3.141592)) #3.1
print("{:.2}".format("3.141592")) #3.
#print("{:.2}".format(3141592)) #报错, 整数类型不允许使用精度选项

    #11.类型选项,决定类型如何呈现
        #对于数字型的类型选项:(插入图片)
        # b : 以 二进制 的形式输出
print("{:b}".format(44)) # 101100
print("{:#b}".format(44)) # 0b101100 (加一个# 会以0b作为前缀)
        # c : 以 Unicode字符 的形式输出
print("{:c}".format(44)) # ,
# print("{:#c}".format(44)) # 错误,对于c类型不能这样写
        # d : 以 十进制 的形式输出
print("{:d}".format(44)) # 44
print("{:#d}".format(44)) # 44  (加一个# 没有变化)
        # o : 以 八进制 的形式输出
print("{:o}".format(44)) # 54
print("{:#o}".format(44)) # 0o54  (加一个# 会以0o作为前缀)
        # x : 以 十六进制 的形式输出,小写abcdef
        # X : 以 十六进制 的形式输出,大写ABCDEF
print("{:x}".format(43)) # 2b
print("{:#x}".format(43)) # 0x2b  (加一个# 会以0x作为前缀)
print("{:X}".format(43)) # 2B
print("{:#X}".format(43)) # 0X2B  (加一个# 会以0X作为前缀)
        # n : 以十进制的形式输出,但它会使用当前语言环境设置的分隔符插入到恰当的位置
print("{:n}".format(44444)) # 44444
print("{:#n}".format(44444)) # 44444 (加一个# 没有变化)
        # None : 默认(什么都不加)以 十进制 的形式输出,和d一样
print("{:}".format(44)) # 44
print("{:#}".format(44)) # 44
 
        #对于浮点数和复数的类型选项:(插入图片)
        # e : 以 科学计数法 的形式输出, 输出的e是小写
        # E : 以 科学计数法 的形式输出, 输出的E是大写
print("{:e}".format(4.4)) # 4.400000e+00
print("{:E}".format(4.4)) # 4.400000E+00       
        # f : 以 定点表示法 的形式输出(默认精度为6,不是数用nan表示,无穷用inf表示)
        # F : 以 定点表示法 的形式输出(默认精度为6,不是数用nan表示,无穷用inf表示)
print("{:f}".format(4.4)) # 4.400000
print("{:F}".format(4.4)) # 4.400000
        # g : 通用格式,浮点数以'f'的形式输出,大数用'e'的形式输出
        # G : 通用格式,浮点数以'F'的形式输出,大数用'E'的形式输出
print("{:g}".format(4.4)) # 4.400000
print("{:G}".format(4.4)) # 4.400000
print("{:g}".format(4000000000000000)) # 4e+15
print("{:G}".format(4000000000000000)) # 4E+15
        # n : 通用格式,和g类似,但它会使用当前语言环境设置的分隔符插入到恰当的位置
print("{:n}".format(4000000000000000)) # 4000000000000000
        # % :以百分比的形式输出(将数字乘以100,并以定点表示法(f)显示,后面附带一个百分号)
print("{:%}".format(3.14)) # 314.000000% (默认精度为6个小数)
        #设置精度
print("{:.2%}".format(3.14)) # 314.00%
        #通过关键字选项设置精度
print("{:.{prec}%}".format(3.1415,prec = 2)) # 314.15%

    #12.通过多个关键字设定格式
print("{:{fill}{align}{width}.{prec}{ty}}".format(3.1415,fill = '+', align = '^', width = 10,
                                                  prec = 3, ty = 'g')) #+++3.14+++
print("{:+^10.3g}".format(3.1415)) #+++3.14+++

    #13. f字符串(在 Python3.6 后引入了f字符串,它相比于format方法更便捷,更高效)
print(f"{3.1415:+^10.3g}") # +++3.14+++(要格式化的数字放右边)
print(f"1 + 2 = {1+2}, 2的平方是{2*2}, 3的立方是{3*3*3}") #1 + 2 = 3, 2的平方是4, 3的立方是27
year = 2022
print(f"今年是{year}年") #今年是2022年

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用cahtGPT写高考作文,看一下会有如何表现

大家好&#xff0c;2023年高考结束有一段时间了&#xff0c;今天&#xff0c;我们尝试使用人工智能写作模型ChatGPT来写一篇高考作文&#xff0c;并猜测一下它的表现。 首先&#xff0c;我们需要简单介绍一下ChatGPT。它是由OpenAI开发的一种人工智能写作模型&#xff0c;可以…

实现二叉排序树

一&#xff1a;二叉树和二叉搜索树 二叉树中的节点最多只能有两个子节点&#xff1a;一个是左侧子节点&#xff0c;另一个是右侧子节点。这个定义有助于我们写出更高效地在树中插入、查找和删除节点的算法&#xff0c;二叉树在计算机科学中的应用非常广泛。 **二叉搜索树&…

Java Spring和Spring集成Mybatis

0目录 1.Spring 2.Spring集成Mybatis 1.Spring 特性 IOC&#xff1a;控制反转 AOP&#xff1a;面向切面 Spring组成部分 在SMM中起到的作用&#xff08;粘合剂&#xff09; Spring理念 OOP核心思想【万物皆对象】 Spring核心思想【万物皆Bean组件】 Spring优势 低侵入式 …

【决策树-鸢尾花分类】

决策树算法简介 决策树是一种基于树状结构的分类与回归算法。它通过对数据集进行递归分割&#xff0c;将样本划分为多个类别或者回归值。决策树算法的核心思想是通过构建树来对数据进行划分&#xff0c;从而实现对未知样本的预测。 决策树的构建过程 决策树的构建过程包括以…

vue计时器

//将秒转化为时分秒 const resultTime ref();const formateSeconds function (endTime) {let secondTime parseInt(endTime); //将传入的秒的值转化为Numberlet min 0; // 初始化分let h 0; // 初始化小时// let result "";if (secondTime > 60) {//如果秒数…

PLC绝对值指令ABS()

在C语言里,ABS()指令属于基础指令,博途PLC系统也有绝对值指令。对于S7-200SMART PLC则需要自行构造,下面给出SMART PLC的绝对值指令ABS()。 1、S7-SMART PLC绝对值指令 2、STL代码 SUBROUTINE_BLOCK ABS:SBR3 TITLE=ABS()函数 VAR_INPUT x:REAL; END_VAR VAR_OUTPUT y:RE…

Redis学习1--Redis简介与基础数据类型操作

1、什么是Redis? Remote Dictionary Server&#xff0c;远程词典服务器&#xff0c;是一个基于内存的键值型NoSQL数据库 特点&#xff1a; 键值&#xff08;key-value&#xff09;型&#xff0c;value支持多种不同数据结构&#xff0c;功能丰富单线程&#xff0c;每个命令具…

【T1】存货成本异常、数量为零金额不为零的处理方法。

【问题描述】 使用T1飞跃专业版的过程中&#xff0c; 由于业务问题或者是操作问题&#xff0c; 经常会遇到某个商品成本异常不准确&#xff0c; 或者是遇到数量为0金额不为0的情况&#xff0c;需要将其成本调为0。 但是T1软件没有出入库调整单&#xff0c;并且结账无法针对数量…

QTday4(鼠标事件和键盘事件/QT实现连接TCP协议)

笔记 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> #include <QTcpServer>//服务器类 #include <QTcpSocket>//客户端类 #include <QMessageBox> #include <QList>//链表容器QT_BEGIN_NAMESPACE namespace Ui …

ES6基础知识五:你是怎么理解ES6新增Set、Map两种数据结构的?

如果要用一句来描述&#xff0c;我们可以说 Set是一种叫做集合的数据结构&#xff0c;Map是一种叫做字典的数据结构 什么是集合&#xff1f;什么又是字典&#xff1f; 集合 是由一堆无序的、相关联的&#xff0c;且不重复的内存结构【数学中称为元素】组成的组合 字典 是…

【复盘与分享】第十一届泰迪杯B题:产品订单的数据分析与需求预测

文章目录 题目第一问第二问2.1 数据预处理2.2 数据集分析2.2.1 训练集2.2.2 预测集 2.3 特征工程2.4 模型建立2.4.1 模型框架和评价指标2.4.2 模型建立2.4.3 误差分析和特征筛选2.4.4 新品模型 2.5 模型融合2.6 预测方法2.7 总结 结尾 距离比赛结束已经过去两个多月了。 整个过…

【Python入门系列】第十九篇:Python基于协同过滤推荐系统的实现

文章目录 前言一、协同过滤算法简介二、计算相似度三、Python实现简单的协同过滤推荐系统总结 前言 推荐系统是现代互联网平台中的重要组成部分&#xff0c;它可以根据用户的兴趣和行为&#xff0c;向其推荐个性化的内容。协同过滤是推荐系统中常用的一种方法&#xff0c;它基…

Flutter:flutter_local_notifications——消息推送的学习

前言 注&#xff1a; 刚开始学习&#xff0c;如果某些案例使用时遇到问题&#xff0c;可以自行百度、查看官方案例、官方github。 简介 Flutter Local Notifications是一个用于在Flutter应用程序中显示本地通知的插件。它提供了一个简单而强大的方法来在设备上发送通知&#…

PostgreSQL 查询json/jsonb是否存在某个片段

文章目录 前言实现实现思路坑1坑2坑3 恍然大悟 前言 在PostgreSQL中&#xff0c;jsonb有额外的操作符&#xff0c;如 >、<、?、?|、?& 可以用来查询是否包含路径/值&#xff0c;以及顶层键值是否存在。 详细文章&#xff1a;PostgreSQL 操作json/jsonb 那么&am…

青大数据结构【2021】

一、单选&#xff08;17&#xff01;&#xff09; 根据中序遍历得到降序序列可以知道&#xff0c;每个结点的左子树的结点的值比该结点的值小&#xff0c;因为没有重复的关键字&#xff0c;所以拥有最大值的结点没有左子树。 二、简答 三、分析计算 四、算法分析 3.迪杰斯特拉…

LLaMA2可商用|GPT-4变笨|【2023-0723】【第七期】

一、大咖观点&#xff1a; 傅盛&#xff1a;ChatGPT时代如何创业 - BOTAI - 博客园Google 已经被OpenAI 超越了吗&#xff1f;| AlphaGo 之父深度访谈《人民日报》&#xff1a;大模型的竞争&#xff0c;是国家科技战略的竞争WAIC 2023 | 张俊林&#xff1a;大语言模型带来的交…

贝塞尔曲线与B样条曲线

B-spline and Bezier Curve 介绍一下robotics运动规划方向的B样条曲线与贝塞尔曲线相关知识。 0728&#xff1a;TODO&#xff0c;节点向量如何得到&#xff1f; 贝塞尔曲线&#xff0c;B-样条&#xff0c;非均匀有理B样条梳理曲线篇: 贝塞尔曲线Animated Bzier CurvesBzier …

gin框架内容(三)--中间件

gin框架内容&#xff08;三&#xff09;--中间件 Gin框架允许开发者在处理请求的过程中&#xff0c;加入用户自己的函数。这个函数就叫中间件&#xff0c;中间件适合处理一些公共的业务逻辑&#xff0c;比如登录认证、权限校验、数据分页、记录日志、耗时统计等 即比如&#x…

【牛客面试必刷TOP101】Day1.反转链表和合并两个排序的链表

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;牛客面试必刷TOP101 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01;&…

【Ansible】Ansible自动化运维工具的应用与常用命令

ansible自动化运维工具 一、ansible 的概述1. ansible 的概念2. ansible 的特性 二、ansible 的部署与命令1. ansible 的部署1.1 服务器ip地址设置1.2 ansible 服务器部署 2. ansible 命令行模块2.1 command 模块2.2 shell 模块2.3 cron 模块2.4 user 模块2.5 group 模块2.6 co…