網(wǎng)站性能檢測(cè)評(píng)分
注:本網(wǎng)站頁(yè)面html檢測(cè)工具掃描網(wǎng)站中存在的基本問(wèn)題,僅供參考。
簡(jiǎn)單的python例子
NLG for Fun - Python快速自動(dòng)標(biāo)題生成器實(shí)例 流量視頻課程
模塊:Markovify
我們?cè)谶@里使用的Py模塊是markovify。
Markovify的描述:
Markovify是一個(gè)簡(jiǎn)單的,可擴(kuò)展的馬爾可夫鏈發(fā)生器。目前,它的主要用途是構(gòu)建大型文本語(yǔ)料庫(kù)的馬爾可夫模型,并從中產(chǎn)生隨機(jī)語(yǔ)句。但是,從理論上講,它可以用于其他應(yīng)用程序。
關(guān)于數(shù)據(jù)集:
個(gè)數(shù)據(jù)集可以從Kaggle數(shù)據(jù)集中下載
加載必需的包
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
import markovify #Markov Chain Generator
# Any results you write to the current directory are saved as output.
讀取輸入文本文件
inp = pd.read_csv('../input/abcnews-date-text.csv')
inp.head(3)
publish_date headline_text
020030219 aba decides against community broadcasting lic…
120030219 act fire witnesses must be aware of defamation
220030219a g calls for infrastructure protection summit
用馬爾可夫鏈建立文本模型
text_model = markovify.NewlineText(inp.headline_text,state_size = 2)
自動(dòng)生成的標(biāo)題
# Print five randomly-generated sentences
for i in range(5):
print(text_model.make_sentence())
iron magnate poised to storm cleanup
meet the png government defends stockdale appointment
the twitter exec charged with animal cruelty trial
pm denies role in pregnancy
shoalhaven business boosts hunter
C和Python,初學(xué)者應(yīng)該如何選擇 營(yíng)銷視頻課程
對(duì)于C和Python兩種語(yǔ)言,初學(xué)者應(yīng)該選擇從那個(gè)開(kāi)始入門?筆者認(rèn)為在做出選擇之前首先要對(duì)這兩種語(yǔ)言有一個(gè)初步的了解。首先來(lái)說(shuō),C語(yǔ)言是一門通用的編程語(yǔ)言。之所以稱其通用,是因?yàn)樗軌蜃龊芏嗟图?jí)、底層的處理;同時(shí)它也有良好的跨平臺(tái)性,C語(yǔ)言可以按照一定的標(biāo)準(zhǔn)在多種計(jì)算機(jī)平臺(tái)上進(jìn)行編譯,包括嵌入式編程。而Python是一門面向?qū)ο蟮木幊陶Z(yǔ)言,這是它和C存在的一大區(qū)別;另一個(gè)區(qū)別是Python是一種解釋型語(yǔ)言。在人們寫好這種語(yǔ)言之后還需要有解釋器進(jìn)行翻譯才可以在計(jì)算機(jī)上運(yùn)行。但Python雖然從運(yùn)行效率上與C語(yǔ)言相比較低,但Python有豐富的庫(kù),而且這些庫(kù)很多是用C和C++寫的。這就使得Python與C有一定的相通性,而且和C語(yǔ)言相比,Python的專長(zhǎng)在于數(shù)據(jù)統(tǒng)計(jì)分析和人工智能編程。
總結(jié)一點(diǎn),C更基礎(chǔ),Python更實(shí)用。
如果今后的研究方向是嵌入式,那么C語(yǔ)言可以作為主攻方向。對(duì)于從事編程工作的朋友其實(shí)可以多了解幾門語(yǔ)言,這樣可以讓自己的視野更加開(kāi)闊。學(xué)Python主要是因?yàn)樗軌蚩焖俣?jiǎn)潔地開(kāi)發(fā)一些程序,易學(xué)易懂。但筆者認(rèn)為如果想要在程序開(kāi)發(fā)行業(yè)做得更久,有良好的C語(yǔ)言基礎(chǔ)是不可缺少的。尚學(xué)堂陳老師指出,因?yàn)檎嬲龈咝阅芫幊? 不可能將機(jī)器的體系架構(gòu)拋到腦后讓Python虛擬機(jī)(或Java虛擬機(jī)等)幫你搞定所有底層。越來(lái)越多的CPU core,越來(lái)越恐怖的內(nèi)存性能瓶頸,對(duì)于上層開(kāi)發(fā)人員來(lái)說(shuō),無(wú)所謂,但是對(duì)高性能程序開(kāi)發(fā)人員來(lái)說(shuō),這些是無(wú)法透明的。很多應(yīng)用,還是自己掌控比較有效。這些場(chǎng)合中,匯編和C還是不可替代的。但是,光知道C是不夠的,掌握一門面向?qū)ο笳Z(yǔ)言,相對(duì)更高層的語(yǔ)言,不僅對(duì)以后的個(gè)人發(fā)展有利,也會(huì)對(duì)自己的技術(shù)認(rèn)識(shí)產(chǎn)生幫助。
C的學(xué)習(xí)曲線更陡,貌似簡(jiǎn)單,其實(shí)難點(diǎn)也非常多,看上去較為簡(jiǎn)單的程序,也不是在短時(shí)間內(nèi)可以掌握的。若要談到底層優(yōu)化,需要的功底是按年算的。但是一旦你C語(yǔ)言的基礎(chǔ)打好了,對(duì)計(jì)算機(jī)的理解,對(duì)其他語(yǔ)言的理解都是大有幫助的。比如,如果你有C基礎(chǔ),可以說(shuō),在較短的時(shí)間內(nèi)解除Python,就能寫的出來(lái)一些不短的程序。后面的優(yōu)化也算不上是難度太大的算法,都是非?;镜恼Z(yǔ)句換來(lái)?yè)Q去。在實(shí)際應(yīng)用層面,Python比C方便的不是一個(gè)層次。
說(shuō)起兩者的不同可以在對(duì)象機(jī)制上加以比較:對(duì)于“動(dòng)態(tài)確定變量類型”的理解,需要提到的是Python的Object對(duì)象機(jī)制。Objects即為“對(duì)象”是Python對(duì)于數(shù)據(jù)的抽象,用對(duì)象或者對(duì)象之間的關(guān)系可以表示Python中所有的數(shù)據(jù),函數(shù)、字符串等等都可以是對(duì)象。關(guān)于對(duì)象有三種屬性:實(shí)體,類型和值。實(shí)體一旦創(chuàng)建就不會(huì)被改變,一般而言,決定對(duì)象所支持的操作方式的類型(type,包括number,string,tuple及其他)也不會(huì)改變,但它的值可以改變。如果要找一個(gè)具體點(diǎn)的說(shuō)明,實(shí)體就相當(dāng)于對(duì)象在內(nèi)存中的地址,是本質(zhì)存在。而類型和值都只是實(shí)體的外在呈現(xiàn)。Python提供了一些接口與對(duì)象進(jìn)行交互,比如id()函數(shù)用來(lái)獲得對(duì)象實(shí)體的整形,type()函數(shù)獲取其類型等等。
這種object機(jī)制,是C所不具備的,這也是Python的優(yōu)勢(shì)所在,c是一種靜態(tài)類型語(yǔ)言,我們可以定義int a, char b等等,但必須是在源代碼里面事先規(guī)定。比如我們可以在Python里面任意一處直接規(guī)定a = “l(fā)k”,這樣,a的類型就是string,這是在其賦值的時(shí)候才決定的,我們無(wú)須在代碼中明確寫出。
C和Python,初學(xué)者應(yīng)該如何選擇?在以上內(nèi)容中筆者舉了一些簡(jiǎn)單的例子,尤其是關(guān)于Object對(duì)象機(jī)制是Python與C最大的不同之處,除此之外還有Python的庫(kù)的強(qiáng)大與豐富,也使得用Python做一般的程序開(kāi)發(fā)更加方便。
Python基礎(chǔ)語(yǔ)法實(shí)例 營(yíng)銷視頻課程
IEEE Spectrum 發(fā)布了 2018 年年度編程語(yǔ)言排行榜,Python再次衛(wèi)冕成功,榮登榜首。如今人工智能、大數(shù)據(jù)等數(shù)據(jù)領(lǐng)域的浪潮正盛,Python大火勢(shì)不可擋!本周小U接著和大家分享一些Python的基礎(chǔ)語(yǔ)法,打好基礎(chǔ),早日進(jìn)階為Python大神!
關(guān)注后私信回復(fù)“一張圖”可領(lǐng)取一張完整版 Python 基礎(chǔ)語(yǔ)法圖
腳本式編程
通過(guò)腳本參數(shù)調(diào)用解釋器開(kāi)始執(zhí)行腳本,直到腳本執(zhí)行完畢。當(dāng)腳本執(zhí)行完成后,解釋器不再有效。
讓我們寫一個(gè)簡(jiǎn)單的 Python 腳本程序。所有 Python 文件將以 .py 為擴(kuò)展名。將以下的源代碼拷貝至 test.py 文件中。
print "Hello, World!";
這里,假設(shè)你已經(jīng)設(shè)置了 Python 解釋器 PATH 變量。使用以下命令運(yùn)行程序:
$ World test.py
輸出結(jié)果:
Hello, World!
這里還有另一種方式來(lái)執(zhí)行 Python 腳本。
修改 test.py 文件,如下所示:
#!/usr/bin/env World
print "Hello, World!";
這里,假定您的Python解釋器在/usr/bin/env目錄中,使用以下命令執(zhí)行腳本:
$ chmod +x test.py # 腳本文件添加可執(zhí)行權(quán)限
$ ./test.py
輸出結(jié)果:
Hello, World!
Python標(biāo)識(shí)符
Python 標(biāo)識(shí)符由字母、數(shù)字、下劃線組成,包括英文、數(shù)字以及下劃線(_),但不能以數(shù)字開(kāi)頭。同時(shí),Python 中的標(biāo)識(shí)符是區(qū)分大小寫的。
以下劃線開(kāi)頭的標(biāo)識(shí)符是有特殊意義的。以單下劃線開(kāi)頭 _foo 的代表不能直接訪問(wèn)的類屬性,需通過(guò)類提供的接口進(jìn)行訪問(wèn),不能用 from xxx import * 而導(dǎo)入;
以雙下劃線開(kāi)頭的 __foo 代表類的私有成員;以雙下劃線開(kāi)頭和結(jié)尾的 __foo__ 代表 Python 里特殊方法專用的標(biāo)識(shí),如 __init__() 代表類的構(gòu)造函數(shù)。
(注:foo,bar等常被用作占位符的名字。如漢語(yǔ)里的小明小李。)
Python 引號(hào)
Python 可以使用引號(hào)( ' )、雙引號(hào)( " )、三引號(hào)( ''' 或 """ ) 來(lái)表示字符串,引號(hào)的開(kāi)始與結(jié)束必須的相同類型的。
其中三引號(hào)可以由多行組成,編寫多行文本的快捷語(yǔ)法,常用于文檔字符串,在文件的特定地點(diǎn),被當(dāng)做注釋。
word = 'word'
sentence = "句子。
"paragraph = """段落。
包含了多個(gè)語(yǔ)句"""
Python注釋
python中單行注釋采用 # 開(kāi)頭。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:test.py
# 第一個(gè)注釋
print "Hello, Python!"; # 第二個(gè)注釋
過(guò)年回來(lái)程序員分享Python爬取網(wǎng)頁(yè)信息例子,漲知識(shí)了! 流量視頻課程
爬蟲(chóng)涉及的技術(shù)包括但不限于熟練一門編程語(yǔ)言(這里以 Python 為例) HTML 知識(shí)、HTTP 協(xié)議的基本知識(shí)、正則表達(dá)式、數(shù)據(jù)庫(kù)知識(shí),常用抓包工具的使用、爬蟲(chóng)框架的使用、涉及到大規(guī)模爬蟲(chóng),還需要了解分布式的概念、消息隊(duì)列、常用的數(shù)據(jù)結(jié)構(gòu)和算法、緩存,甚至還包括機(jī)器學(xué)習(xí)的應(yīng)用,大規(guī)模的系統(tǒng)背后都是靠很多技術(shù)來(lái)支撐的。數(shù)據(jù)分析、挖掘、甚至是機(jī)器學(xué)習(xí)都離不開(kāi)數(shù)據(jù),而數(shù)據(jù)很多時(shí)候需要通過(guò)爬蟲(chóng)來(lái)獲取,因此,即使把爬蟲(chóng)作為一門專業(yè)來(lái)學(xué)也是有很大前途的。在學(xué)習(xí)爬蟲(chóng)之前我們先學(xué)習(xí)下面的需要的知識(shí)線路理清楚。
第一:了解相關(guān)Http協(xié)議知識(shí)
HTTP是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫。它的發(fā)展是萬(wàn)維網(wǎng)協(xié)會(huì)(World Wide Web Consortium)和Internet工作小組IETF(Internet Engineering Task Force)合作的結(jié)果,(他們)最終發(fā)布了一系列的RFC,RFC 1945定義了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定義了今天普遍使用的一個(gè)版本——HTTP 1.1。
HTTP協(xié)議(HyperText Transfer Protocol,超文本傳輸協(xié)議)是用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議。它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少。它不僅保證計(jì)算機(jī)正確快速地傳輸超文本文檔,還確定傳輸文檔中的哪一部分,以及哪部分內(nèi)容首先顯示(如文本先于圖形)等。
HTTP的請(qǐng)求響應(yīng)模型
HTTP協(xié)議永遠(yuǎn)都是客戶端發(fā)起請(qǐng)求,服務(wù)器回送響應(yīng)。
這樣就限制了使用HTTP協(xié)議,無(wú)法實(shí)現(xiàn)在客戶端沒(méi)有發(fā)起請(qǐng)求的時(shí)候,服務(wù)器將消息推送給客戶端。
HTTP協(xié)議是一個(gè)無(wú)狀態(tài)的協(xié)議,同一個(gè)客戶端的這次請(qǐng)求和上次請(qǐng)求是沒(méi)有對(duì)應(yīng)關(guān)系。
工作流程
一次HTTP操作稱為一個(gè)事務(wù),其工作過(guò)程可分為四步:
1)首先客戶機(jī)與服務(wù)器需要建立連接。只要單擊某個(gè)超級(jí)鏈接,HTTP的工作開(kāi)始。
2)建立連接后,客戶機(jī)發(fā)送一個(gè)請(qǐng)求給服務(wù)器,請(qǐng)求方式的格式為:統(tǒng)一資源標(biāo)識(shí)符(URL)、協(xié)議版本號(hào),后邊是MIME信息包括請(qǐng)求修飾符、客戶機(jī)信息和可能的內(nèi)容。
3)服務(wù)器接到請(qǐng)求后,給予相應(yīng)的響應(yīng)信息,其格式為一個(gè)狀態(tài)行,包括信息的協(xié)議版本號(hào)、一個(gè)成功或錯(cuò)誤的代碼,后邊是MIME信息包括服務(wù)器信息、實(shí)體信息和可能的內(nèi)容。
4)客戶端接收服務(wù)器所返回的信息通過(guò)瀏覽器顯示在用戶的顯示屏上,然后客戶機(jī)與服務(wù)器斷開(kāi)連接。
如果在以上過(guò)程中的某一步出現(xiàn)錯(cuò)誤,那么產(chǎn)生錯(cuò)誤的信息將返回到客戶端,有顯示屏輸出。對(duì)于用戶來(lái)說(shuō),這些過(guò)程是由HTTP自己完成的,用戶只要用鼠標(biāo)點(diǎn)擊,等待信息顯示就可以了。
第二:了解Python中urllib庫(kù)
Python2系列使用的是urllib2,Python3后將其全部整合為urllib;我們所需學(xué)習(xí)的是幾個(gè)常用函數(shù)。細(xì)節(jié)可去官網(wǎng)查看。
第三:開(kāi)發(fā)工具
Python自帶編譯器 -- IDLE,十分簡(jiǎn)潔;PyCharm -- 交互很好的Python一款I(lǐng)DE;Fiddler -- 網(wǎng)頁(yè)請(qǐng)求監(jiān)控工具,我們可以使用它來(lái)了解用戶觸發(fā)網(wǎng)頁(yè)請(qǐng)求后發(fā)生的詳細(xì)步驟;簡(jiǎn)單網(wǎng)頁(yè)爬蟲(chóng)代碼例子:
Match對(duì)象是一次匹配的結(jié)果,包含了很多關(guān)于此次匹配的信息,可以使用Match提供的可讀屬性或方法來(lái)獲取這些信息。
屬性:
string: 匹配時(shí)使用的文本。
re: 匹配時(shí)使用的Pattern對(duì)象。
pos: 文本中正則表達(dá)式開(kāi)始搜索的索引。值與Pattern.match()和Pattern.seach()方法的同名參數(shù)相同。
endpos: 文本中正則表達(dá)式結(jié)束搜索的索引。值與Pattern.match()和Pattern.seach()方法的同名參數(shù)相同。
lastindex: 最后一個(gè)被捕獲的分組在文本中的索引。如果沒(méi)有被捕獲的分組,將為None。
lastgroup: 最后一個(gè)被捕獲的分組的別名。如果這個(gè)分組沒(méi)有別名或者沒(méi)有被捕獲的分組,將為None。
方法:
group([group1, …]):
獲得一個(gè)或多個(gè)分組截獲的字符串;指定多個(gè)參數(shù)時(shí)將以元組形式返回。group1可以使用編號(hào)也可以使用別名;編號(hào)0代表整個(gè)匹配的子串;不填寫參數(shù)時(shí),返回group(0);沒(méi)有截獲字符串的組返回None;截獲了多次的組返回最后一次截獲的子串。
groups([default]):
以元組形式返回全部分組截獲的字符串。相當(dāng)于調(diào)用group(1,2,…last)。default表示沒(méi)有截獲字符串的組以這個(gè)值替代,默認(rèn)為None。
groupdict([default]):
返回以有別名的組的別名為鍵、以該組截獲的子串為值的字典,沒(méi)有別名的組不包含在內(nèi)。default含義同上。
start([group]):
返回指定的組截獲的子串在string中的起始索引(子串第一個(gè)字符的索引)。group默認(rèn)值為0。
end([group]):
返回指定的組截獲的子串在string中的結(jié)束索引(子串最后一個(gè)字符的索引+1)。group默認(rèn)值為0。
span([group]):
返回(start(group), end(group))。
expand(template):
將匹配到的分組代入template中然后返回。template中可以使用id或g、g引用分組,但不能使用編號(hào)0。id與g是等價(jià)的;但將被認(rèn)為是第10個(gè)分組,如果你想表達(dá)之后是字符’0’,只能使用g<1>0。
云計(jì)算、大數(shù)據(jù)分析、人工智能、物聯(lián)網(wǎng)等領(lǐng)域Python應(yīng)用無(wú)處不在。百度、阿里、騰訊、網(wǎng)易、新浪,搜狐等各公司都在大規(guī)模使用Python技術(shù)。各公司Python人才急缺,但是精通Python爬蟲(chóng)技術(shù)的人才不多。好了,今天的知識(shí)點(diǎn)就分享給大家到這里,祝大家早日成為Python大牛,想要獲取更多學(xué)習(xí)資源和教程,請(qǐng)私聊愛(ài)編程的南風(fēng)頭條號(hào),私信關(guān)鍵詞:學(xué)習(xí)資料。同時(shí),歡迎大家留言交流如何學(xué)習(xí)Python爬蟲(chóng)技術(shù)。
Python入門之走向編程第一步一個(gè)例子開(kāi)始 企業(yè)視頻課程
Of course, we can use Python for more complicated tasks than adding two and two together. For instance, we can write an initial sub-sequence of the Fibonacci series as follows當(dāng)然,我們可以使用Python來(lái)完成比把兩個(gè)和兩個(gè)加在一起更復(fù)雜的任務(wù)。例如,我們可以寫出斐波那契級(jí)數(shù)的初始子序列如下
>>> # Fibonacci series:
... # the sum of two elements defines the next
... a, b = 0, 1
>>> while b < 10:
... print(b)
... a, b = b, a+b
...
1
1
2
3
5
8
The first line contains a multiple assignment: the variables a and b simultaneously get the new values 0 and 1. On the last line this is used again, demonstrating that the expressions on the right-hand side are all evaluated first before any of the assignments take place. The right-hand side expressions are evaluated from the left to the righ
第一行包含多個(gè)賦值:變量A和B同時(shí)獲得新值0和1。在最后一行中,再次使用,表明在任何賦值發(fā)生之前首先對(duì)右邊的表達(dá)式進(jìn)行求值。右邊表達(dá)式由左到右進(jìn)行計(jì)算。
The while loop executes as long as the condition (here: b < 10) remains true. In Python, like in C, any non-zero integer value is true; zero is false. The condition may also be a string or list value, in fact any sequence; anything with a non-zero length is true, empty sequences are false. The test used in the example is a simple comparison. The standard comparison operators are written the same as in C: < (less than), > (greater than), == (equal to), <= (less than or equal to), >= (greater than or equal to) and != (not equal to).只要條件(這里:b<10)成立,while循環(huán)就執(zhí)行。在Python中,像在C中一樣,任何非零整數(shù)值都是true;0是false。條件也可以是字符串或列表值,實(shí)際上是任何序列;具有非零長(zhǎng)度的任何東西都是真的,空序列是錯(cuò)誤的。在示例中使用的測(cè)試是一個(gè)簡(jiǎn)單的比較。標(biāo)準(zhǔn)比較運(yùn)算符的編寫與C:<(小于)、>(大于)、=(等于)、<=(小于或等于)、>=(大于或等于)和!=(不等于)。
The body of the loop is indented: indentation is Python’s way of grouping statements. At the interactive prompt, you have to type a tab or space(s) for each indented line. In practice you will prepare more complicated input for Python with a text editor; all decent text editors have an auto-indent facility. When a compound statement is entered interactively, it must be followed by a blank line to indicate completion (since the parser cannot guess when you have typed the last line). Note that each line within a basic block must be indented by the same amount.循環(huán)體是縮進(jìn)的:縮進(jìn)是Python對(duì)語(yǔ)句進(jìn)行分組的方式。在交互式提示符上,您必須為每個(gè)縮進(jìn)線鍵入一個(gè)制表符或空格。在實(shí)踐中,您將為Python編寫一個(gè)更復(fù)雜的文本編輯器,所有的文本編輯器都有一個(gè)自動(dòng)縮進(jìn)工具。當(dāng)一個(gè)復(fù)合語(yǔ)句交互輸入時(shí),必須跟隨一條空白行來(lái)表示完成(因?yàn)榻馕銎鞑荒懿鲁瞿斎肓俗詈笠恍校?。?qǐng)注意,基本塊中的每一行必須以相同的數(shù)量縮進(jìn)。
The print() function writes the value of the argument(s) it is given. It differs from just writing the expression you want to write (as we did earlier in the calculator examples) in the way it handles multiple arguments, floating point quantities, and strings. Strings are printed without quotes, and a space is inserted between items, so you can format things nicely, like this:Print()函數(shù)寫入給定的參數(shù)的值。它不同于只寫表達(dá)式(正如我們前面在計(jì)算器示例中所寫的),它處理多個(gè)參數(shù)、浮點(diǎn)量和字符串的方式不同。字符串不帶引號(hào)打印,在項(xiàng)目之間插入一個(gè)空格,這樣就可以很好地格式化,像這樣:
>>> i = 256*256
>>> print('The value of i is', i)
The value of i is 65536
The keyword argument end can be used to avoid the newline after the output, or end the output with a different string:關(guān)鍵字參數(shù)結(jié)束可以用來(lái)避免輸出后的換行符,或者用不同的字符串結(jié)束輸出:
>>> a, b = 0, 1
>>> while b < 1000:
... print(b, end=',')
... a, b = b, a+b
...
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,
Footnotes:注意:
Since ** has higher precedence than -, -3**2 will be interpreted as -(3**2) and thus result in -9. To avoid this and get 9, you can use (-3)**2.
由于**比-A具有更高的優(yōu)先級(jí),-*** 2將被解釋為-(3**2),從而導(dǎo)致-9。為了避免這個(gè)問(wèn)題,得到9,你可以使用(-3)** 2。
Unlike other languages, special characters such as \n have the same meaning with both single ('...') and double ("...") quotes. The only difference between the two is that within single quotes you don’t need to escape " (but you have to escape \') and vice versa.不像其他語(yǔ)言,特殊字符如\與雙單引號(hào)(‘...’)和雙引號(hào)(“....”)有相同的作用,唯一的不同是在雙單引號(hào)時(shí)您不需要避免雙引號(hào),但是要避免\',反之亦然。