多数的程式设计师,处理字串的次数远比数字还要多。

程式设计给人的印象通常是会使用到许多数学,也是不少人对学程式语言感到惧怕的原因。

但其实程式设计的实务上,处理文字字串(string)的频率远比数字高出许多,若要说学习程式语言关键是什么,逻辑思维与耐心比你的数学好不好还要重要。

快速阅读

  • Python字串是什么?
  • 用哪一种引号来表示字串比较好?
  • 只想用一种引号?转义字元可以帮你
  • 字串的20种操作
    • 使用Str() 函式来建立字串
    • 利用len() 函式取得字串长度
    • 显示原始字串
    • 取得字串内的部分字元
    • 使用运算子+、*、in、not in
      • 两个字串相加使用 +
      • 重复字串使用 *
      • 使用in 或not in 来检查是否含有特定子字串
    • 字串插值 (string interpolation)
    • f-strings (Python 3.6后加入的)
    • 利用方法(Method) 处理字串
      • 转换英文字母大小写
      • islower()、isupper() 辨别英文字母大小写
      • isXXX 辨别字串内容
      • startswith()、endswith() 辨别开头与结尾
      • 用strip() 从两端移除字元
      • 对齐文字的字串方法
      • 将字串切三段partition()
      • 用split() 拆出多个字串
      • 使用join() 将字串结合
      • 以replace() 替换
      • 用index() 或find() 找寻位置
      • 用count() 计算出现的次数
  • 使用Python字串时常见的语法错误
    • SyntaxError: EOL 扫描字符串文字时
    • SyntaxError:无效的语法

Python字串是什么?

Python字符串

字串是众多Python资料型态的其中一种,以成对的引号来呈现,单引号、双引号、三个单引号、三个双引号都可以拿来表示字串,代表文字的意思。

下面四个例子都代表Python字串。

下方的范例,>>>代表程式码,没有>>>代表程式运作的结果。

<span style="background-color:#eeeeee"><code>>>>'this'
>>>"is"
>>>'''a'''
>>>"""string! """</code></span>

字串是字元序列,字元又是什么呢?像是字母、数字、符号、空格或是换行都是字元,一个a 是一个字元,一个空格也是一个字元,它是文书系统里头最小的单位。

如果想表达文字,却忘了使用引号,Python 会将你输入的文字视为变数、数字或是保留字。

下方例子可以看出字串与其他资料型态的差异,#符号是注解的符号,Python不会将#后方的文字当作程式码。

加入注解可以方便理解与阅读程式码,下方的例子,使用注解告诉你各个值的类型。

<span style="background-color:#eeeeee"><code>>>>hello    #變數
>>>'hello'  #字串
>>>10       #整數
>>>'10'     #字串</code></span>

Python 字串是不可变的(inmmutable),你无法使用方法(Method)对字串进行修改,但可以透过指派一个新的值给变数,来达到修改的效果。

也就是说,字串属于不可变的资料型态

用哪一种引号来表示字串比较好?

短字串使用单或双引号,多行字串使用三重引号。

<span style="background-color:#eeeeee"><code>>>>'hello’
>>>“hello”</code></span>

这两种表示短字串的方式都很普遍,你可以随意地使用,只要确定是成对的就好,不可以前面单引号,后面双引号,像’hello”,Python会回传错误给你。

要特别注意的是,假如你要建立的值,也就是字串的内容物,里头有使用到单引号或双引号时,要记得错开,不要同时使用。

例如字串的值是That’s mine!,因为使用了 这个单引号,为避免Python无法辨识你的字串,建立字串时就建议以双引号来包住字串的内容物。 '

<span style="background-color:#eeeeee"><code>>>>"That's mine!"</code></span>

反过来说,如果字串中的值有用到双引号,

例如你想印出"Hi!”, he said.,那就要用单引号来表示字串,'"Hi!”, he said.'

<span style="background-color:#eeeeee"><code>>>>'"Hi!", he said.'</code></span>

如果你想用单引号或双引号建立多行字串,不行喔,Python 会显示语法错误(SyntaxError) ,然后就不运作了。

针对多行字串我们可以使用三重引号,多行字串就像下方程式码,使用三个单引号建立多行字串。

下方我们建立了一个四行的Python字串,并将这个字串指派给 song 这个变数。

<span style="background-color:#eeeeee"><code>>>>song = '''Baby shark, doo doo doo,
>>>Baby shark, doo doo doo doo doo,
>>>Baby shark, doo doo doo doo doo,
>>>Baby shark!'''</code></span>

=在Python代表将其右边的值指派给左边的变数,如果你还不清楚,可以阅读这篇文章:《Python观念,从= 开始》。

除了建立多行字串,如果你有多行注释,不想每一行都打上#,也可以使用三个引号来表示。

只想用一种引号?转义字元可以帮你

如果你就只想固定使用单引号来表示Python字串,什么双引号、三重引号你都不要!

也可以喔,你可以使用转义字元(escape character),让你的字串始终如一,只有单引号。

转义是什么呢?它可以让你转换字串内某些字元的涵义,你只需要在要转义的字元前面加上一个\就可以转义了。

以前面的例子,你只想用单引号制作That's mine! 的字串,如果输入下方程式码会有语法错误。

<span style="background-color:#eeeeee"><code>>>>print('That’s mine!')print('That's mine!')^
SyntaxError: invalid syntax</code></span>

使用 \ 将字串内的转义即可正常运作。 '

<span style="background-color:#eeeeee"><code>>>>the_word = 'That\'s mine!'
>>>print(the_word)
That's mine!
</code></span>

常见转义字元

常见转义字元 呈现结果
\’ 单引号'
\” 双引号”
\n 换行,\n后的内容会换到下一行
\t 定位空格,一个tab键的空格
\\ 反斜线\

字串的20种操作

觉得头有点晕?看影片学习操作Python字串

使用Str() 函式来建立字串

除了直接在你要转变为字串的值两端加上引号,来建立字串外,你也可以使用str()这个函式,优雅地使用各种资料型态来建立字串。

例如123 是个整数(int),在 str() 函式的括号内填入你要作为字串的值,就可以建立该字串。

下方的例子中,使用 type() 这个函数显示资料的型态,使用 str() 函数后,123 成为字串,再使用 print() 函式结果印出来。

str 代表字串, int 代表整数。

<span style="background-color:#eeeeee"><code>>>>str(123)
>>>print(type(str(123)))
<class 'str'>
>>>print(type(123))
<class 'int'></code></span>

利用len() 函式取得字串长度

在 len() 函式的括号中填入要取得长度的字串。

下方的例子中,空格也算一个位元,所以字串长度为12。

<span style="background-color:#eeeeee"><code>>>>word = 'hello python'
>>>print(len(word))
12
</code></span>

显示原始字串

在字串的前面加上 r,可以印出字串的全貌,包含转义符号。在 'That\’s mine!' 这个字串前面加上r,r'That\’s mine!'

<span style="background-color:#eeeeee"><code>>>>word = r'That\’s mine!'
>>>print(word)
That\’s mine!
</code></span>

取得字串内的部分字元

将 “that’s mine” 字串指派给变数the_wordthe_word =  “that’s mine”

the_word[0] 可以取得t。

the_word[1] 可以取得h。

the_word[0:5] 可以取得第0个位置到第4个位置的字元,that'。

<span style="background-color:#eeeeee"><code>>>>the_word = "that's mine"
>>>print(the_word[0:5])
that'</code></span>

使用运算子+、*、in、not in

+*innot in运算子都可以结合字串运用。

两个字串相加使用 +

假如现在有两个字串,你想将它们连在一起,你可以使用 + 达到这个目的。

<span style="background-color:#eeeeee"><code>>>>line1 = 'Do you like Python?'
>>>line2 = 'Yes, and I am learning it.'
>>>print(line1 + ' ' + line2)
Do you like Python? Yes, and I am learning it.</code></span>

重复字串使用 *

为了表达想自学成功的决心,打算写20 遍 I will success!

只需要打一次I will success! ,再使用* 运算子,就可以得到20 个I will success!

<span style="background-color:#eeeeee"><code>>>>print('I will success!' * 20)
I will success!I will success!I will success!I will success!I will success!I will success!I will success!I will success!I will success!I will success!I will success!I will success!I will success!I will success!I will success!I will success!I will success!I will success!I will success!I will success!</code></span>

使用 in 或 not in 来检查是否含有特定子字串

当字串中,存在你要找寻的子字串时,回传的值会是True,若无则会回传False

<span style="background-color:#eeeeee"><code>>>>print('He' in 'Hello')
True
>>>print('He' not in 'Hello')
False</code></span>

字串插值 (string interpolation)

使用 %s 作为标记,在字串之后填入要插入的值,以 % (填入要插入內容 )呈现。

%s的% 代表初始值,s 代表字串,也可以替换为d、f 等型态,%d转换为十进制整数,%f 转换为十进制浮点数。

本文只讨论%s,如果你想深入了解,推荐阅读《精通Python(第2版)》这本书,在字串的章节,讲解得相当清楚,这是一本入门书,不要被精通两个字吓到了。

下方例子中,在 'the %s is %s dollars.' 这个字串中放入两个 %s 标记,在字串后,加上% (),并在括号内填上要填入两个变数productprice,其中product 被指派为'apple'price被指派为55,最后印出的 sentence 就是the apple is 55 dollars.

<span style="background-color:#eeeeee"><code>>>>product = 'apple'
>>>price = 55
>>>sentence = 'the %s is %s dollars.' % (product, price)
>>>print(sentence)
the apple is 55 dollars.</code></span>

f-strings (Python 3.6后加入的)

与字串插值很像似,但将标记 %s 改为大括号{},要呈现的内容,就直接填在{} 中,最重要的要在字串前面加上f。

用与字串插值相同的例子,来看看如何使用f-strings。

<span style="background-color:#eeeeee"><code>>>>product = 'apple'
>>>price = 55
>>>f_sentence = f'the {product} is {price} dollars.'
>>>print(f_sentence)
the apple is 55 dollars.</code></span>

利用方法(Method) 处理字串

函式(function )与方法(Method)都是一段程式,有它的功能,只是方法(Method)在使用上需要接在要操作的目标之后,并且以一个句点.连接。

例如字串方法lower(),需要接在字串之后,才可以运作,需要留意 () 是用来让电脑知道你在呼叫这个方法,不要漏掉了。

<span style="background-color:#eeeeee"><code>>>>print('HOW'.lower())
how</code></span>

方法并不会改变字串,而是让字串依照方法的要求呈现。

因为各种资料型态特性不同,有些方法只有字串可以使用,有些则只有串列、字典等其他资料型态可以使用,误用的话系统会显示错误。

转换英文字母大小写

在验证码或帐号密码输入设计上很常见的观念,因为英文大写小对于Python 而言是不一样的意思,但若你想让使用者在输入HOW、how、hOw 时,将三个字都视同一个字,便可以使用 lower() 这个方法,让资料处理时都转变为小写,便可以判读唯一样的资料。

转换字串字母大小写的方法包括:lower()upper()title()capitalize(),请留意这个方法只有转换,并没有改变原本的字串。

  • upper() 将所有字母改为大写
  • lower() 将所有字母改为小写
  • capitalize() 将字串中的第一个字母大写,其余小写
  • title() 将每个词第一个字母大写,其余小写
<span style="background-color:#eeeeee"><code>>>>word = 'how are you?'
>>>print(word.upper())
HOW ARE YOU?
>>>print(word.lower())
how are you?
>>>print(word.capitalize())
How are you?
>>>print(word.title())
How Are You?</code></span>

islower()isupper() 辨别英文字母大小写

使用islower()isupper() 这个两方法,来辨别字串中的字母是全部大写或全部小写,返回的值是布林值,若符合要求,返回 True,否则返回False

<span style="background-color:#eeeeee"><code>>>>print('123abc'.islower())
True
>>>print('123'.islower())
False
>>>print('AAA'.lower().islower())
True</code></span>

我们可以在使用方法后再接着使用方法,如例子print('AAA'.lower().islower()),返回的值会是True

isXXX 辨别字串内容

除了使用islower()isupper() 这两个字串方法外,还有5 个类似的字串方法:

方法

功能

isalpha()

字串内只含有字母时,且不是空字串时,返回True。

十进制()

字串内只含有数字时,且不是空字串时,返回True。

isspace()

字串内只含有空格、定位空格(tab)、换行时,且不是空字串时,返回True。

标题()

字串内第每个词的第一个字母为大写,其余皆小写,返回True。

十进制()

字串内只含有字母或数字时,且不是空字串时,返回True。

<span style="background-color:#eeeeee"><code>>>>print('smile'.isalpha())
True
>>>print('smile666'.isalpha())
False
>>>print('666'.isdecimal())
True
>>>print(' '.isspace())
True
>>>print('You Make Me Smile.'.istitle())
True
>>>print('smile666'.isalnum())
True</code></span>

startswith()endswith() 辨别开头与结尾

startswith()endswith() 这两个字串方法可依照你在 () 内所输入的引数,辨别字串的起始与结尾是否与引述一致,一致返回值为True,反之为False

<span style="background-color:#eeeeee"><code>>>>print('You Make Me Smile.'.startswith('You'))
True
>>>print('You Make Me Smile.'.endswith('mile.'))
True
>>>print('You Make Me Smile.'.endswith('ohoh'))
False</code></span>

用 strip() 从两端移除字元

strip() 字串方法会将字串两端的空白字元删除,就是把两端的空格删除的意思,如果只要删除右边的使用rstrip(),只要删除左边的则使用lstrip()

<span style="background-color:#eeeeee"><code>>>>word = '      Smart      '
>>>print(word.strip())
Smart
>>>print(word.rstrip())Smart
>>>print(word.lstrip())
Smart</code></span>

如果删除两端指定的字元,在括号 () 内放入要删除的字元即可。

<span style="background-color:#eeeeee"><code>>>>learner ='Smart!!!!!'
>>>print(learner.strip('!'))
Smart</code></span>

这个方法只能从两端删除,如果要删除的字元不在两端,就无法直接删除,而且引述的字元顺序与是否删除无关,只要符合 () 内的引数就可以。

以下方例子来说,为了瘦身dinner 这个变数放了太多dieT ,有些甚至打成dTie ,strip('dieT’)可以从两端开始找寻d、i、e、T (大小写有差别),将要求的字元都删除。

而不在两端的dieT 字元不会被删除。

<span style="background-color:#eeeeee"><code>>>>dinner = 'dieTdeiTSteak and dieT soupdeiTdTie'
>>>print(dinner.strip('dieT'))
Steak and dieT soup</code></span>

对齐文字的字串方法

方法

功能

中央()

依照括号内填入的数字,将字串于相对空格中置中对齐

正义 ()

依照括号内填入的数字,将字串于相对空格中靠右对齐,r代表right。

光()

依照括号内填入的数字,将字串于相对空格中靠左对齐,l代表left。

括号内要填入的引数,相当于字串在多少空格中对齐,可以再填入第二个引数,替代预设了空格,下方第三个例子就是填入 * 取代预设的空格。

rjust(10)代表在10个字元的长度中,将字串靠右对齐。

<span style="background-color:#eeeeee"><code>>>>print('smile'.rjust(10))smile
>>>print('smile'.ljust(10))
smile
>>>print('smile'.center(20,'*'))
*******smile********</code></span>

将字串切三段partition()

这个字串方法可以将一个字串切割为三个部分,并回传多元组(Tuple)。

<span style="background-color:#eeeeee"><code>>>>print('You work very hard!'.partition('very'))
('You work ', 'very', ' hard!')</code></span>

如果要分隔的字串在目标字串中有许多个,会以第一个出现的为主来分拆。

而若分隔个字串不存在,返回的Tuple 第一个项目就是目标字串,后面两的项目为空字串。

<span style="background-color:#eeeeee"><code>>>>print('You work very hard!'.partition('r'))
('You wo', 'r', 'k very hard!')
>>>print('You work very hard!'.partition('smart'))
('You work very hard!', '', '')</code></span>

用 split() 拆出多个字串

split()预设以空白字元来切割,并回传包含分拆后各个字串的串列(list),回传的资料型态是串列。

<span style="background-color:#eeeeee"><code>>>>print('You work very hard!'.split())
['You', 'work', 'very', 'hard!']</code></span>

可以在括号那指定分割的依据,这个分隔字串不会留下。

<span style="background-color:#eeeeee"><code>>>>print('You work very hard!'.split('o'))
['Y', 'u w', 'rk very hard!']</code></span>

常见的 split() 操作,是以 \n 换行字元作为分隔依据,将多行字串分拆出来。

下方的例子中,letter 这个变数所指派到的字串,使用三重引号,三重引号的换行预设有\n,所以使用 split(’\n’) 分拆字串时,会将每一行都拆为一个字串,空行也会以空字串放入回传值的串列中。

<span style="background-color:#eeeeee"><code>>>>letter = '''Hi Phoebe,
>>>The weather recently is great,
>>>would you like to take a trip with me this weekend?
>>>If this weekend is not available, how about next weekend?
>>>
>>>BR,
>>>M.'''
>>>
>>>print(letter.split('\n'))
['Hi Phoebe,', 'The weather recently is great, ', 'would you like to take a trip with me this weekend?', 'If this weekend is not available, how about next weekend?', '', 'BR,', 'M.']</code></span>

使用 join() 将字串结合

这个方法会需要字串(string) 与串列(list)这两个材料,利用字串当胶水,把串列中的各个字串结合起来,回传的值是串列(list)。

<span style="background-color:#eeeeee"><code>>>>gift_list = ['iphone 12', 'PS5', 'notebook']
>>>print('Christmas gifts: '+', '.join(gift_list))
Christmas gifts: iphone 12, PS5, notebook</code></span>

以 replace() 替换

原本的字串值并不会改变,只是加上replace()方法后,指定的部分会被替换,有点类似拿了一个副本做替换,原本的字串不会改变。

replace(要被替換的值, 替換成這個值)

<span style="background-color:#eeeeee"><code>>>>lesson ='the new skill I am learning this year : Python.'
>>>print(lesson.replace('Python', 'playing guitar'))
the new skill I am learning this year : playing guitar.
>>>print(lesson)
the new skill I am learning this year : Python.</code></span>

用 index() 或 find() 找寻位置

在字串后加上 .index(要找的子字串)  .find(要找的子字串) ,当子字串找的到时,两个方法的回传值的是字串首个字母的位置。

如果你困惑为何会出现0 这个数字,你可以阅读这篇文章《Python观念》,厘清编写Python时,位置该怎么计算。

<span style="background-color:#eeeeee"><code>>>>lesson ='the new skill I am learning this year : Python.'
>>>print(lesson.index('the'))
0
>>print(lesson.find('the'))
0
>>>print(lesson.index('I'))
14
>>>print(lesson.find('I'))
14</code></span>

预设的找寻的方向是由左至右,如果想从右边开始找可以在 find() 与 index() 前面加上r,变成rfind()rindex(),就可以从右边开始找。

以找寻e 这个字母为例,会得到不一样的位置回覆。

<span style="background-color:#eeeeee"><code>lesson ='the new skill I am learning this year : Python.'
>>>print(lesson.find('e'))
2
>>>print(lesson.rfind('e'))
34
>>>print(lesson.index('e'))
2
>>>print(lesson.rindex('e'))
34</code></span>

当找不到目标时呢?index()方法会回覆ValueErrorfind() 则回传-1

<span style="background-color:#eeeeee"><code>>>>lesson ='the new skill I am learning this year : Python.'
>>>print(lesson.find('peace'))
-1
>>>print(lesson.index('peace'))
Traceback (most recent call last):print(lesson.index('peace'))
ValueError: substring not found</code></span>

用 count() 计算出现的次数

利用 count() 计算括号内指定的字串出现的次数,下方的例子计算e 这个字母在lesson 这个字串中出现的次数,答案是4 次。

<span style="background-color:#eeeeee"><code>>>>lesson ='the new skill I am learning this year : Python.'
>>>print(lesson.count('e'))
4</code></span>

使用Python字串时常见的语法错误

使用Python字串时,常见的错误大多是因为引号问题而产生的语法错误(syntax error)。

语法错误(syntax error) 是编写程式码时,常见的错误。如果程式码中有Python无法辨识的内容,就会显示语法错误。

SyntaxError: EOL 扫描字符串文字时

以下面的例子来说,因为字串的右边少了引号,所以Python 显示语法错误,只要将引号加回去,就可会正常了。

<span style="background-color:#eeeeee"><code>>>>a = 'hi
>>>print(a)a = 'hi^
SyntaxError: EOL while scanning string literal</code></span>

SyntaxError: EOL while scanning string literal这句话是什么意思呢?

SyntaxError 是两个英文单字,syntax 语法、error 错误,就是语法错误。

在语法错误有一个冒号,冒号之后说明错误是什么。

EOL是 End Of Line 的缩写,意思是:这一行的尾端。

错误的原因是EOL while scanning string literal,Python 检视字串后,发现尾端有错误,这里的例子就是忘了把引号加上。

Python 除了文字说明外,也有用^ 符号指出错误的地方,协助你更正。

SyntaxError:无效的语法

另一个使用Python字串时常见的错误是,未将引号与字串的内容作区隔,这个问题点在本文「用哪一种引号来表示字串比较好?」的段落有提到过,现在我们再来看一次。

下方的例子中,已经使用对称的引号把that's mine! 这段文字包起来了,为何还会出现错误呢?

<span style="background-color:#eeeeee"><code>>>>b = 'that's mine!'
>>>print(b)b = 'that's mine!'^
SyntaxError: invalid syntax</code></span>

错误的原因在于,Python是由左至右在读取程式码,对于Python而言对称的单引号是这样'that' ,之后的 s mine!' 对Python 来说是不符合语法的。

<span style="background-color:#eeeeee"><code> >>>b = 'that'</code></span>

这个问题有两个解决方法:

  1. 将建立字串的单引号,改为双引号,与 that's 的单引号作区别,Python变可以完整读出字串的内容。
  2. 不调整建立字串的单引号,而是使用转义字元 \' 来告诉Python,that\'s的单引号不是建立字串用的那个单引号。
<span style="background-color:#eeeeee"><code>>>>c = "that's mine!"
>>>d = 'that\'s mine!'
>>>print(c)
>>>print(d)
that's mine!
that's mine!</code></span>

当然语法错误的原因并不只限于这个两例子,如果想看更多的范例,可以参考下方这篇文章Invalid Syntax in Python: Common Reasons for SyntaxError  。

如果想了解更多字串的观念与操作,可以阅读《精通Python》、《Python 自动化的乐趣》这两本书,都有单独针对字串做详细的说明及练习。

Python字串(string)基础与20种常见操作相关推荐

  1. html中页面布局技术,CSS基础之几种常见的页面布局

    CSS基础之几种常见的页面布局 本人前端菜鸟一枚,在学习 CSS 过程中发现网上流传的教程参差不齐,要么内容不够详细,要么方法就是错的,按照它给出的方法不能实现我想要的目的.于是自己决定写一篇经验.如 ...

  2. python初学者_面向初学者的20种重要的Python技巧

    python初学者 Python is among the most widely used market programming languages in the world. This is be ...

  3. Python 字串处理

    #!/usr/bin/python #-*- coding:utf-8 –*-import os import sys import re import shutil import xlrd impo ...

  4. 采用python解决实际问题_Python编程语言解决几种常见的实际问题

    Python编程语言解决几种常见的实际问题 (2012-10-25 17:24:12) 标签: it python python培训 北京 杂谈 Python编程语言解决一些实际问题 from os. ...

  5. 关于黑帽SEO的16种常见操作手法解析

    黑帽SEO的操作手法可能对刚接触SEO或一直从事白帽SEO的朋友来讲有些陌生甚至是抵触,然而还是有很多人愿意冒着Google沙盒.百度沙盒,甚至被K站的风险去使用黑帽SEO,这是因为黑帽SEO能够短期 ...

  6. python设置字符间距_Python中字符串的常见操作技巧总结

    本文实例总结了Python中字符串的常见操作技巧.分享给大家供大家参考,具体如下: 反转一个字符串 >>> S = 'abcdefghijklmnop' >>> S ...

  7. java八种基础数据结构_8种常见数据结构及其Javascript实现

    摘要: 面试常问的知识点啊... Fundebug经授权转载,版权归原作者所有. 做前端的同学不少都是自学成才或者半路出家,计算机基础的知识比较薄弱,尤其是数据结构和算法这块,所以今天整理了一下常见的 ...

  8. Python 中让你相见恨晚的 20 个骚操作

    今天和大家分享 20 个 Python 编程中新手必会的"骚操作",使用的频率超高!记得点赞,收藏哦!话不多说,进入正题! 1.列表推导式 使用列表推导式创建一个列表. >& ...

  9. python基础之字符串定义常见操作、列表定义进阶操作

    字符串 创建字符串 创建字符串有三种方式:' ' ," " , ''' ''' 三引号允许换行,并且可以保留换行 引用--访问字符串中的字符 引用是访问字符串中的一个字符 不能超出 ...

最新文章

  1. 2022-2028年中国汽车俱乐部行业发展趋势与投资战略研究报告
  2. Citrix Avalon安装实验手册之一----Avalon概述及实验环境准备
  3. win10 连接android,win10系统连接安卓手机usb没反应的解决方法
  4. Objective-C中的instancetype和id关键字
  5. Vue第一部分(1):Vue简介以及第一个示例
  6. mysql下载for linux 64_mysql官网下载linux版本安装包
  7. 23 岁创业,28 岁成为福布斯亚洲青年领袖,这个“刷脸的男人”有点牛
  8. MySQL Installer 8.0.21安装教程图文详解 转载
  9. 多项式之和 Sn=a+aa+aaa+aaaa+.....+aaa.....aa(n个a)
  10. 我在GNU/Linux下使用的桌面环境工具组合
  11. WinForm 单例模式实例
  12. vue 中使用 js-xlsx 导出数据导 excle, 支持多 sheet
  13. BMC远程管理服务器
  14. Windows(多)操作系统启动过程
  15. JTT1078-2016道路运输车辆卫星定位系统视频通信协议-音视频上传部分
  16. 校园APP开发的优势和特点
  17. Find a Mother Vertex in a Graph
  18. 如何为BLE 设备添加OTA DFU 空中升级服务(下)?
  19. 彼时彼刻,正如此时此刻——评《让×××飞》
  20. ※前端面试--知识总结

热门文章

  1. 正则表达式 Exel单元格
  2. 在unreal中的基于波叠加的波浪水面材质原理和制作
  3. FreeRTOSMini
  4. USB之Cyusb3014芯片原理之四控制传输实现原理(十二) 2022-04-01
  5. scrapy 下载gif图片
  6. ubuntu关机、重启、注销命令行指令
  7. 全国软考中级软件设计师 学习笔记-法律法规部分
  8. 计算机操作培训图片,【图片】计算机学习之旅【汇编吧】_百度贴吧
  9. 【C语言】C语言函数
  10. vm fusion Linux系统克隆