剛開始接觸Python的時候,網(wǎng)上找到的資料基本上上來就是介紹Python語言,很少有對開發(fā)環(huán)境進行講解的,但如果在學習的過程中不斷練習,這樣效率會更高,所以特意將一個Python的開發(fā)環(huán)境Spyder自帶的入門教程翻譯出來,希望可以幫助到和我有同樣困惑的你。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比永州網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式永州網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋永州地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。
個人水平有限,會有翻譯不到位的地方,歡迎批評指正!
Spyder是使用Python編程語言進行科學計算的集成開發(fā)環(huán)境。它有一個Editor(編輯器)用于編寫代碼,Console(控制臺)可以評估代碼并且在任何時候都可以看到運行結(jié)果,Variable Explorer(變量管理器)可以查看代碼中定義的變量,還有其他的一些設(shè)備可以幫你高效地開發(fā)代碼。
本教程由英國南安普頓大學的Hans Fangohr所寫。
使用Spyder的第一步
這部分內(nèi)容針對Python和Spyder的初學者,如果你覺得太簡單,請繼續(xù)學習下一部分內(nèi)容。
執(zhí)行一段代碼
我們將使用這段代碼作為第一個例子:
# Demo file for Spyder Tutorial
# Hans Fangohr, University of Southampton, UK
def hello():
"""Print "Hello World" and return None"""
print("Hello World")
# main program starts here
hello()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
為了使用這段代碼,請在Spyder的Editor(編輯窗)新建一個文件。將代碼拷貝到文件中,并以hello.py文件名保存該文件。
為了執(zhí)行這段代碼,從菜單中選擇Run Run(或者按F5鍵),如果有需要請確認Run settings的設(shè)置。如果這是第一次運行代碼,你可能會看到如下形式的輸出:
In [1]: runfile('/Users/fangohr/Desktop/hello.py', wdir=r'/Users/fangohr/Desktop')
Hello World
In [2]:
這說明你已經(jīng)成功運行了第一個Python程序。
注意:
runfile旁邊顯示的具體路徑取決于你剛剛保存文件的位置。
1
2
3
4
使用IPython Console
我們推薦您使用IPython Console,因為它比標準的Python Console的功能更多,并且建議您將它設(shè)置為默認控制臺。
在執(zhí)行代碼的過程中到底發(fā)生了什么?
Python逐行讀取Editor中的代碼,并且它會自動忽略注釋(即以#符號開頭的行)。
當遇到def關(guān)鍵字,Python知道在這里定義了一個函數(shù)。在def hello():之后的所有縮進行都是函數(shù)體。
注意:這個函數(shù)對象僅僅只是在文件的這個位置被定義了,并沒有被調(diào)用(或者執(zhí)行)。
當Python遇到從最左邊的列開始寫的命令(除了def…和其他一些關(guān)鍵字),它將馬上執(zhí)行這些命令。在hello.py文件中只在hello()的這一行才正真調(diào)用名為hello的函數(shù)。
如果你在代碼中注釋掉或者刪除hello()這一行,再次執(zhí)行整個文件(按F5鍵或者選擇 Run Run),將不會打印任何內(nèi)容,因為函數(shù)hello只被定義了,但沒有被調(diào)用。
通過使用IPython Console,現(xiàn)在你應(yīng)該知道Spyder中Editor窗口中的Python代碼是如何執(zhí)行的了。
如果你剛開始學習Python,現(xiàn)在最好返回到課本或者課程中練習更多的程序?qū)嵗?/p>
下一部分內(nèi)容將詳細介紹如何在IPython Console中執(zhí)行Editor窗口中的代碼段,然后更新Editor中的部分定義。這是一種更先進的技術(shù),并且非常有用。(你可能對執(zhí)行被分隔符隔開的代碼塊(也稱為“cells”)也感興趣,可以查看——功能快捷鍵)。
調(diào)用console中的函數(shù)
你一旦執(zhí)行了hello.py文件,函數(shù)對象hello就被定義了,并且IPython console也知道了它的存在。因此,我們可以用如下方式在console中調(diào)用函數(shù):
在console中寫入hello()(靠近In[?],?可以是任意正整數(shù)),然后按下Enter鍵。
你應(yīng)該發(fā)現(xiàn)hello()函數(shù)又被執(zhí)行了一遍,Hello World又被打印了一次。在console中調(diào) 用函數(shù)和輸出的形式應(yīng)該如下:
In [ ]: hello()
Hello World
1
2
你能發(fā)現(xiàn)它和執(zhí)行整個代碼之間的區(qū)別嗎?
當你執(zhí)行整個代碼時,Python會遍歷整個文件,創(chuàng)建一個hello函數(shù)對象(覆蓋之間的 對象),當?shù)竭_hello()這一行就調(diào)用這個函數(shù)。
如果我們在console中調(diào)用hello(),我們只是調(diào)用了之前執(zhí)行整個hello.py文件在IPython console中定義的函數(shù)對象hello。
這些概念在多次練習或者處理更大一些的代碼實例后會更加清楚。在稍后的階段中你可能還會返回此教程。
查看定義在console中的對象
Python提供了一個函數(shù),它可以顯示console中當前命名空間中所有已知的對象。它就是dir():當你在console中寫入dir(),你將得到一個對象列表?,F(xiàn)在忽略所有以下劃線開始的。你能看見hello在列表中嗎?
注意:
如果你得到了一個定義對象的長列表,那么Spyder可能已經(jīng)為你做了一些方便的導入。 為了強調(diào)這一點,你需要:
按上文介紹的步驟運行dir()。
重啟命名空間
按F5鍵再次執(zhí)行hello.py
一旦一個對象在當前命名空間中可見(例如本例中的hello),我們可以使用help函數(shù)了解這個對象:在console提示區(qū)寫入help(hello),你應(yīng)該可以看到如下的輸出:
In [ ]: help(hello)
Help on function hello in module __main__:
hello()
Print "Hello World" and return None
Python從哪獲取的信息呢?其中一些信息(例如輸入的參數(shù)個數(shù)和變量名稱,這里我們沒有輸入?yún)?shù))Python可以通過檢查對象獲得,另外一些信息源自于提供給函數(shù)對象hello的文檔字符串。文檔字符串就是緊挨著def hello():的下一行字符串。
這些字符串很特殊,他們被稱為docstring,是documentation strings的縮寫。它們通常有好幾行,并且被三個單引號( ’ ’ ’ )或者三個雙引號(“ ” ” )封裝起來。
1
2
3
4
5
Spyder開發(fā)環(huán)境同樣提供了Help窗口,通常默認位于右上角。
當光標在一個對象名字之上,按下CTRL+i(在MAC中按下CMD+i),我們可以獲得同使用help(hello)一樣的信息。
這在console和Editor中都起作用。
更新對象
簡單策略:重新執(zhí)行整個程序
在Editor窗口,修改函數(shù)hello使其輸出Good Bye World而不是Hello World。
按F5鍵執(zhí)行整個程序,然后檢查當前程序的輸出:
Good Bye World
1
當你按下F5鍵時發(fā)生了什么?其實,Python遍歷的整個hello.py文件,創(chuàng)建了一個新的函數(shù)對象hello(覆蓋了之前的函數(shù)對象hello),然后執(zhí)行了整個函數(shù)。
我們看一下細節(jié)
我們需要從一個定義清晰的情形開始。為了做到這一點,請你將函數(shù)hello()改回輸出Hello World的情況,然后按F5鍵執(zhí)行整個程序,檢查輸出應(yīng)該是Hello World。
在console命令提示區(qū)調(diào)用hello()函數(shù)。你會看到輸出Hello World。
現(xiàn)在在editor窗口改變函數(shù)使其打印Laters World,然后保存文件,但不要執(zhí)行程序(不按F5鍵)。
在console中調(diào)用hello()函數(shù)。你會看到輸出是Hello World,如下:
In [ ]: hello()
Hello World
為什么會這樣?因為console中的hello函數(shù)對象是打印Hello World的舊的函數(shù)對象。因此,因此我們在editor中改變hello.py(用Laters World代替了Hello World)文件并不會影響之前在console中創(chuàng)建的對象。
1
2
有兩種方法可以更新hello函數(shù)的版本:
方法一:按F5鍵重新執(zhí)行整個hello.py文件,這一操作會生成一個新的hello函數(shù)對象,并覆蓋舊的。你會發(fā)現(xiàn),當你按下F5鍵,在console命令提示區(qū)調(diào)用hello(),會輸出新的文本Laters World。
方法二:選中你改變的區(qū)域,在這個例子中是整個hello函數(shù),從def hello():開始到print(“Laters World”)結(jié)束,然后選擇Run Run selections。
這樣就會更新console中的hello對象,而不用重新執(zhí)行整個hello.py文件:
In [ ]: def hello():
...: """Print "Hello World" and return None"""
...: print("Laters world")
...:
如果現(xiàn)在寫入hello(),我們會看到更新后的輸出:
In [ ]: hello()
Laters world
1
2
1
2
3
4
在console中通過執(zhí)行部分代碼(上述例子中我們升級了函數(shù)對象hello)來升級一些對象的能,對于將來開發(fā)和調(diào)試更復雜的代碼非常有用,也會節(jié)省在console中創(chuàng)建對象或數(shù)據(jù)的時間。例如,只修改我們真正想要調(diào)試的函數(shù)(或者類/對象),我們可以繼續(xù)使用當前console中定義的數(shù)據(jù)和其他對象。
Python初學者的第一步
對于Python編程教學和學習,我們推薦使用IPython console而不是Python console,這在科學Python社區(qū)被認為是事實上的標準。
轉(zhuǎn)換到IPython console
如果你已經(jīng)有一個激活的IPython console,那么你可忽略這部分內(nèi)容,只要用鼠標點擊“IPython console”就使它可見了。
在console窗口中(默認位于右下角),在默認情況下用3個大于號最為提示,如。這表示我們使用的是普通的Python console(Spyder新增了一些功能)。
然而我們更喜歡使用交互式的Python console(Interactive Python console),即IPython console。因此,選擇Console Open an IPython Console。
你可以看到在console窗口中產(chǎn)生了一個新的命令窗,IPython 的提示區(qū)是In [ 1 ]:
重置命名空間
命名空間(在任何給定時間內(nèi)在console中定義的對象集合)在IPython中可以使用%reset命令清除。輸入%reset然后按下enter鍵,用y確認:
In [1]: %reset
Once deleted, variables cannot be recovered. Proceed (y/[n])? y
In [2]:12345
這就可以了。
我們對它進行更深一層的討論,倘若你不感興趣,也可以跳過這部分內(nèi)容:使用%reset命令之后,在當前會話中只有少部分對象在命名空間中。我們可以使用dir()把他們都列出來:
In [2]: dir()
Out[2]:
['In',
'Out',
'__builtin__',
'__builtins__',
'__name__',
'_dh',
'_i',
'_i2',
'_ih',
'_ii',
'_iii',
'_oh',
'_sh',
'exit',
'get_ipython',
'help',
'quit']12345678910111213141516171819
最后,如果你想在使用reset命令時跳過確認步驟,你可以使用%reset -f命令。
遵守PEP8規(guī)則
除了由Pyhton編程語言執(zhí)行的語法之外,關(guān)于源代碼的布局還有其他約定,特別是Style Guide for Python source code即大家所熟知的“PEP8”。遵循這一規(guī)則,盡可能寫出相同風格的代碼,這樣,對于代碼的作者和用戶就更容易讀和調(diào)試。
你需要修改Spyder的設(shè)置,如果觸犯了PEP8的編碼規(guī)則,就會自動警告。
參數(shù)設(shè)置
參數(shù)在哪配置
很多Spyder的行為都可以通過配置參數(shù)實現(xiàn)。而它們在菜單的位置取決于你是用的操作系統(tǒng):
在Windows和linux系統(tǒng),使用Tools Preferences
在Mac OS中,使用Python/spyder Preferences
設(shè)置PEP8規(guī)則檢測警告
Preferences Editor Code Introspection/Analysis,然后勾選Style analysis(PEP8)。
激活sympy模式
通過Preferences IPython console Advanced Settings Use symbolic math激活I(lǐng)Python的sympy模式,這個模式由sympy模塊提供。Spyder中的這一模式提供了非常好的渲染過的數(shù)學上的輸出(LaTeX風格),并匯報它完成了什么。在IPython console啟動時自動導入一些sympy對象。
These commands were executed:
from __future__ import division
from sympy import *
x, y, z, t = symbols('x y z t')
k, m, n = symbols('k m n', integer=True)
f, g, h = symbols('f g h', cls=Function)123456
我們可以使用變量x,y:
方便的快捷方式
F5執(zhí)行當前文件。
Tab鍵自動補全命令、函數(shù)名、變量名、Console(Python和IPython)和Editor中的方法名。這個特點也很有用,將來你可能會頻繁地使用?,F(xiàn)在你就可以嘗試一下這一功能。假設(shè)你定義了一個變量:
mylongvariablename = 42
假設(shè)我們需要寫代碼計算mylongvariablename + 100,我們只需要輸入 my 然后按Tab鍵。如果這個變量名是唯一的,在光標位置會自動補齊變量名,然后再繼續(xù)輸入 + 100。如果以字母my開頭的變量名不是唯一的,按下Tab鍵之后會列出所有以my開頭的變量名以供選擇,之后可以使用上下鍵選擇,也可以輸入更多的字母匹配。
Ctrl+Enter執(zhí)行當前cell(在菜單中Run Run Cell)。Cell是以#%%開頭的兩行之間的代碼。
Shift+Enter執(zhí)行當前cell并將光標移到下一個cell(菜單中選擇Run Run cell and advance)。
Cells可實現(xiàn)將大的文件或代碼段以小單元執(zhí)行。
Alt+把當前行向上移一行。如果很多行被選中,它們將被一起移動。 Alt+則是相對應(yīng)的將某(些)行向下移。
Ctrl+鼠標左鍵 在一個函數(shù)/方法名上使用Ctrl+鼠標左鍵,打開一個新的editor窗口顯示這個函數(shù)的定義。
Ctrl + +(Cmd + +在MacOS),將增大Editor窗口的字體,Ctrl + -則相反。在IPython窗口中也適用。
Help或者python console窗口中的字體則通過Preferences Help設(shè)置。
Variable Explorer則沒辦法改變。
Ctrl + s(Cmd + s在MacOS上)保存當前Editor窗的文件。這還會在編輯器的左欄中強制更新各種警告三角形(否則它們默認2到3秒更新一次)。
Ctrl + s(Cmd + s在MacOS上)在IPython console窗將會把當前IPython會話以HTML文件保存,包括任何顯示在命令行的參數(shù)。這樣可以快速記錄在會話中完成了什么。
(但是不能將這個HTML 文件再次加載到會話中,如果你需要這樣的功能,請查看 IPython Notebook。)
Ctrl + i(Cmd + i在MacOS上),當光標在一個對象上時使用,將在help窗口顯示這個對象的文檔。
執(zhí)行設(shè)置
這些設(shè)置定義當我們選擇Run Run或者按了F5鍵Editor中的代碼如何執(zhí)行的。
默認情況下,當我們第一次執(zhí)行一個文件時設(shè)置會出現(xiàn)。如果我們想改變設(shè)置,可以選擇Run Configure或者按F6找到它們。
對于console有3種方法可用,我們將討論其中兩種。我們假設(shè)在Editor中有如下形式的hello.py程序:
def hello(name):
"""Given an object 'name', print 'Hello ' and the object."""
print("Hello {}".format(name))
i = 42
if __name__ == "__main__":
hello(i)12345678
在當前Python或者IPython console中執(zhí)行
這是一個建議,通常也是一個很好的選擇。
存在的對象I(執(zhí)行代碼之后)
選擇Run Configure下的Execute in current Python or IPython console這一設(shè)置,意味著:
1.當完全執(zhí)行hello.py,我們可以和執(zhí)行代碼的console交互,并且我們可以很方便的使用IPython console做到這一點。
2.我們可以檢查對象,也可以和執(zhí)行代碼創(chuàng)建的對象交互,例如i和hello()。
這種方法對于遞增式的編程、測試和調(diào)試都非常有用:我們可以在console的命令提示區(qū)直接調(diào)用hello()函數(shù),而不用執(zhí)行整個hello.py文件。
存在的對象II(從代碼執(zhí)行前開始)
然而,在當前console中執(zhí)行Editor中的代碼也意味著:
3.其他定義與console會話中的其他(全局)對象對于執(zhí)行的代碼也是可見的。
這些對象的存在很容被遺忘,對于小量級的代碼也不是必須的。這些對象可能源自于之前執(zhí)行的代碼,也可能來自console中的交互式工作,又或是源于一些導入(例如from pylab import *,Spyder也可能會自動導入)。
如果無意間依賴于這些對象,控制臺命名空間中對象的可見性可能會導致代碼出錯。
實例如下:我們可以想象:
運行hello.py文件,變量i在console中就是一個全局變量。
編輯hello.py文件,刪除i = 42這一行。
再次執(zhí)行hello.py文件。在這時調(diào)用hello(i)依然不會出錯,即使現(xiàn)在的hello.py文件中已經(jīng)沒有定義i,因為console中之前已經(jīng)存在變量i了。
這時,我們保存hello.py文件,本想著可以正確執(zhí)行。但是,在新的(I)Python console會話中執(zhí)行代碼卻導致錯誤,因為i并沒有被定義。
這一問題的出現(xiàn)是因為代碼使用了一個代碼本身沒有創(chuàng)建的對象(這里是i)。這一問題同樣會影響模塊導入:如果我們在IPython console命令提示區(qū)導入了pylab,它對于我們在IPython console會話中執(zhí)行的代碼就是可見的。
為了學習如何確認我們的代碼并沒有依賴于已經(jīng)存在的對象,請看“如何雙重檢查你的代碼是獨立正確運行的”這部分內(nèi)容。
在一個獨立的Python console中運行
在Run Configure下選擇Execute in new dedicated Python console,在每次運行hello.py程序時都會重新開啟一個新的Python console。它的主要優(yōu)點在于,在這一模式下我們可以確定在執(zhí)行代碼時的console中不會有源自于之前調(diào)試和執(zhí)行代碼產(chǎn)生的對象。這樣,每次執(zhí)行editor中的代碼,python console都是新的。
這一選擇很安全,但是靈活性下降,并且不能使用IPython console。
如何雙重檢查你的代碼是獨立正確運行的
假設(shè)你已經(jīng)選擇 Execute in current Python or IPython console這一選項,你有兩種方法可以確認你的代碼時獨立運行的(例如,代碼不依賴于未定義的變量,未導入的模塊和命令)。
1.從 Execute in current Python or IPython console換到 Execute in new dedicated Python console這一選項,然后再獨立的Python console中運行Editor中的代碼。
另一種方法你也可以選擇。如果你想繼續(xù)使用當前的IPython console,你可以
2.使用IPython console的%reset命令,這將會移除所有當前命名空間中的對象(如上述例子中的變量i),然后再執(zhí)行Editor中的代碼。
建議
我給初學者的建議是使用 Execute in current Python or IPython console,然后選擇IPython console。
一旦你完成了一段代碼,你都可以使用上述的兩種方法確認你的代碼是否獨立運行。
其他需要注意的內(nèi)容
多文件
如果在Editor中打開了多個文件,窗口頂部文件名對應(yīng)的標簽從左往右是以字母表順序排列的。
在左側(cè)的標簽,有一個圖標,當鼠標移到它上面會顯示Browse tabs。在很多文件打開時,它可以使你能直接跳轉(zhuǎn)到某一文件。
環(huán)境變量
環(huán)境變量可以在Python Console窗口中顯示。單擊Options圖標(提示信息就是Options),然后選擇Environment variables。
重置個性化設(shè)置
所有個性化設(shè)置都可以被重置,調(diào)用以–reset結(jié)尾的命令行。例如:spyder –reset。
Variable Explorer中的對象
在variable explorer中選擇變量,鼠標右鍵,將會給出進一步分析它們的選項。
鼠標雙擊一個字典對象,將會在一個新的窗口中顯示這個字典。
你同樣可以顯示和編輯數(shù)組、列表、數(shù)字和字符串。
說明文檔的格式
如果你想為你正開發(fā)的代碼添加說明(我們也推薦您為它編寫說明),那就使用被稱為reStructuredText的特殊格式。這種格式需要遵守叫做 Numpydoc standard的標準。
你遵照那些指導,就可以在Spyder中編寫非常漂亮的說明。
例如,為了在Spyder的Help窗口中得到如下展示的average()函數(shù):
你應(yīng)該以如下形式編輯說明文字:
def average(a, b):
"""
Given two numbers a and b, return their average value.
Parameters
----------
a : number
A number
b : number
Another number
Returns
-------
res : number
The average of a and b, computed using 0.5*(a + b)
Example
-------
average(5, 10)
7.5
"""
return (a + b) * 0.5123456789101112131415161718192021222324
需要注意的是,這里使用了Parameters關(guān)鍵字,并且有下劃線。a : number這一行告訴我們參數(shù)a是一個數(shù)。下一行是補充說明,我們可以給出更加詳細的解釋,這個變量代表什么,它的數(shù)據(jù)類型應(yīng)該滿足什么條件等等。
對于其他參數(shù)和返回值都可按這個形式編寫。
為了補充完整這個函數(shù),你可以在填空1處使用 input() 函數(shù)讀入用戶輸入的數(shù)據(jù),并使用 eval() 函數(shù)將其轉(zhuǎn)換為 Python 對象,然后使用 Python 的解包語法獲取第一個數(shù)和剩余的數(shù)的列表。
填空2處可以使用 print() 函數(shù)將函數(shù)的返回值輸出到屏幕上。
完整的代碼如下:
def fsum(a):
s = 0
for n in a:
s += n
return s
b, *a = eval(input('請輸入n個數(shù):'))
print(fsum(a))
1、首先我們打開電腦找到并打開jupyter notebook。
2、點擊jupyter notebook時,會出來黑色的控制臺,剛開始頁面是全黑的,這個時候需要耐心等待下,程序其實已經(jīng)在運行了。
3、當控制臺開始出現(xiàn)滿屏的代碼時,程序同時會自動打開瀏覽器。(這個時候不要關(guān)閉控制臺,也不要關(guān)閉瀏覽器)
4、程序運行完畢后,保持控制臺的運行狀態(tài)(將其最小化但不要關(guān)閉)。接下來在網(wǎng)頁上操作jupyter notebook。找到頁面右邊的“New”字樣,點擊。
5、在下拉的菜單點擊“python”字樣。
6、這樣一個新的python文件就新建好了,在頁面中心的長方形框中輸入我們的想要運行的代碼。
1、函數(shù)定義
①使用def關(guān)鍵字定義函數(shù)
②
def 函數(shù)名(參數(shù)1.參數(shù)2.參數(shù)3...):
"""文檔字符串,docstring,用來說明函數(shù)的作用"""
#函數(shù)體
return 表達式
注釋的作用:說明函數(shù)是做什么的,函數(shù)有什么功能。
③遇到冒號要縮進,冒號后面所有的縮進的代碼塊構(gòu)成了函數(shù)體,描述了函數(shù)是做什么的,即函數(shù)的功能是什么。Python函數(shù)的本質(zhì)與數(shù)學中的函數(shù)的本質(zhì)是一致的。
2、函數(shù)調(diào)用
①函數(shù)必須先定義,才能調(diào)用,否則會報錯。
②無參數(shù)時函數(shù)的調(diào)用:函數(shù)名(),有參數(shù)時函數(shù)的調(diào)用:函數(shù)名(參數(shù)1.參數(shù)2.……)
③不要在定義函數(shù)的時候在函數(shù)體里面調(diào)用本身,否則會出不來,陷入循環(huán)調(diào)用。
④函數(shù)需要調(diào)用函數(shù)體才會被執(zhí)行,單純的只是定義函數(shù)是不會被執(zhí)行的。
⑤Debug工具中Step into進入到調(diào)用的函數(shù)里,Step Into My Code進入到調(diào)用的模塊里函數(shù)。
當前標題:python補全函數(shù)名 python快捷鍵
轉(zhuǎn)載來源:http://muchs.cn/article6/doeisog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化、靜態(tài)網(wǎng)站、微信小程序、做網(wǎng)站、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)