㈠ 用python語言解決
多分支解決。
㈡ python語言是什麼
Python是一種計算機程序設計語言,你可能已經聽說過很多流行的編程語言,比如非常難學的C語言,非常流行的java語言,適合初學者的Basic語言,適合網頁編程的JavaScript等,Python就是其中之一。
相對於其他編程語言,Python具有自己獨特的優勢,它可以用極少的代碼完成任務。比如完成同一個任務,C語言要寫1000行代碼,Java需要100行,而Python可能只需要20行,所以說Python是一門非常高級的編程語言。
㈢ 如何學習python
Python是一種跨平台的計算機程序設計語言。是一種面向對象的動態類型語言,最初被設計用於編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越來越多被用於獨立的、大型項目的開發。
最近幾年,隨著大數據和人工智慧的到來,python越來越受到歡迎,轉行學python的也越來越多。那麼小白該如何學習python呢?
很多人對python縮進試的簡潔表達不以為然。那些都是已混跡於C和JAVA的老鳥已經習慣了花括弧。對於初學者,python語言是最好寫,最好讀的。
1、追求生產力,應該學python
python是全能語言,社區龐大,有太多的庫和框架。你只需要找到合適的工具來實現想法,省去了造輪子的精力。
coder可以寫盡可能少的代碼來實現同等的功能。「人生苦短,我用python」是至理名言。
如果實現一個中等業務復雜度的項目,在相同的時間要求內,用java實現要4-5個碼農的話,用python實現也許只需要1個。這就是python最大的優勢了。
2、那麼應該如何入門python呢
看書學編輯是效率最低的事情。且不說書的內容基本過時。就是比較較的翻譯也很晦澀,照書寫了代碼跑不通,不斷報錯。是很打擊學習積極性的。
不過,介紹語法的基礎書,還是可以買一本,作為手冊查閱之用。這類基礎書籍買一本就好,找個周末休息時間,一天便可看完。
3、那麼應該如何進階python呢
對python語言有一個全面的了解之後,就可以進階了。怎麼進階,很簡單,找一個你喜歡的領域直接做項目。做WEB網站,做爬蟲,都可以的。
首先要找容易上手的教程。網上有SET BY SET這種文字型 教程 ,這種只能做相對簡單的項目,如果是復雜一點的是效率那是讓人無法忍受的。而且文字教程由於有時效性問題,或是教程本身細節的一些錯誤,會讓人抓狂的。
最好的學習教程,其實就是現在淘寶上販賣的項目視頻教程。這類教程有很多,但是魚龍混雜,很難去偽存真。當然也有很多技術網站提供官方教程 。
㈣ 請教一個python代碼問題!
假設兩個數帶進去替換x和n就好理解了,比如power(2,3)計算2的3次方
按照代碼
s=1 n>0(我們假設了n為3)
然後執行while n>0 里的n=n-1 n變成2
再執行s(這個是新的s)=s(這個是舊的s)*x 新s變為2(我們上面假設x為2)
然後返回s(下次使用時就變成了舊s)
接著判斷n,依舊大於0 ,執行n=n-1 n變成1 執行s=s*x 新s變為4,然後返回s
接著判斷n,依舊大於0,執行n=n-1 n變成0(意味著這次結束就將跳出循環)執行s=s*x
新s變成8
循環結束,得到結果。2的3次方是8
不知道還有什麼地方不明白
㈤ python 文本文件中查找指定的字元串
def find(lists):
for list0 in lists:
if list0.find('set internet Active')>=0:
if list0.find('#')>=0:
continue
else:
return 0 #有一行不帶#號的set internet Active,那麼返回0
return -1 #若沒有不帶號的set internet Active,那麼返回-1
if __name__=='__main':
lists = ['set internet Active','#set internet Active','# set internet Active']
#lists 是從文件中讀出內容的列表
findout=find(lists) #調用函數
print(findout) #列印結果
㈥ python的基礎是什麼
Python的基礎有:
1 標識符
標識符是編程時使用的名字,用於給變數、函數、語句塊等命名,Python 中標識符由字母、數字、下劃線組成,不能以數字開頭,區分大小寫。
以下劃線開頭的標識符有特殊含義,單下劃線開頭的標識符,如:_xxx,表示不能直接訪問的類屬性,需通過類提供的介面進行訪問,不能用from xxx import *導入;雙下劃線開頭的標識符,如:__xx,表示私有成員;雙下劃線開頭和結尾的標識符,如:__xx__,表示 Python 中內置標識,如:__init__()表示類的構造函數。
2 關鍵字
3 引號
Python 可以使用引號(')、雙引號(")、三引號('''或""")來表示字元串,引號的開始與結束須類型相同,三引號可以由多行組成。
4 編碼
Python2 中默認編碼為ASCII,假如內容為漢字,不指定編碼便不能正確的輸出及讀取,比如我們想要指定編碼為UTF-8,Python 中通過在開頭加入# -*- coding: UTF-8 -*-進行指定。
Python3 中默認編碼為UTF-8,因此在使用 Python3 時,我們通常不需指定編碼。
5 輸入輸出
Python 輸出使用 print(),內容加在括弧中即可。
Python 提供了一個 input(),可以讓用戶輸入字元串,並存放到一個變數里。
6 縮進
Python 不使用{}來控制類、函數、邏輯判斷等,而是使用縮進,縮進的空格可變。
7 多行
Python 中一般以新行作為語句的結束標識,可以使用將一行語句分為多行顯示。
如果包含在[]、{}、()括弧中,則不需要使用。
8 注釋
Python 中單行注釋使用#,多行注釋使用三個單引號(''')或三個雙引號(""")。
㈦ python中如何檢測比較操作符,『=='『!=』'=''>='等,前後是否有空格,沒有就添加空格
我有一個優化Python代碼格式的腳本,自己寫的,可以部分實現你說的這種功能。本意是為了提高pylint評分的。分享一下,希望能給你提供一些思路。方法比較瑣碎,分兩部分:
1,雙目運算符。
先處理雙目的運算符。先將有空格的替換成無空格的,例如" == "替換成"=="。然後再將無空格的替換成有空格的。以此來避免部分有空格而部分沒有空格,以及重復添加空格的情況。只有一個空格的情況,如"== ",由於我寫代碼的習慣,我沒有考慮。你可以自己添加。
2,單目運算符。
使用正則匹配單目運算符,如re.find(r"[S]=[S]")就是匹配單個=號的。並且只匹配旁邊沒有空格的"a=b"這個形式的,不匹配"a= b"。因為雙目的==等已經處理過,所以==等前後一定有空格,因此不會匹配到了。這樣就解決了單雙目符號沖突的問題。
當然也可以使用1中相同的伎倆,在1之前就將" =","= "等替換成"="。
以下是我的代碼的片段。僅供參考,請勿直接復制(因為是片段無法正常運行)。
defaddSpace(s):
return''+s+''
……
#簡單替換一些雙目符號
forchin['!=','>=','<=','==','+=',
'-=','*=','/=','**','>>','<<']:
lines[i]=lines[i].replace(addSpace(ch),ch)
lines[i]=lines[i].replace(ch,addSpace(ch))
#將單個符號兩邊加空格
fordin['=','+','-','*','>',
',','<','^','&','\%']:#斜杠是為re語句加的
with_singles=re.findall('[S]'+d+'[S]',lines[i])
forjinwith_singles:
iflen(j)!=3:continue
ifd==',':
lines[i]=lines[i].replace(j,j[0]+j[1]+''+j[2])#逗號後加空格
else:
lines[i]=lines[i].replace(j,j[0]+addSpace(j[1])+j[2])
㈧ 怎麼用python判斷,文件中的等於號「=」,小於號「<」的前後是否含有空格,沒有的話,就添加空格
importre
code=open('test.c').read()
newcode=re.sub(r"(?<!)(=|<)",r"1",code)
newcode=re.sub(r"(=|<)(?!)",r"1",newcode)
newfile=open('test.c','w')
newfile.write(newcode)
newfile.close()
㈨ 為什麼要使用Python進行數據分析
我使用python這門語言也有三年了,被其簡潔、易讀、強大的庫所折服,我已經深深愛上了python。其pythonic語言特性,對人極其友好,可以說,一個完全不懂編程語言的人,看懂python語言也不是難事。
在數據分析和交互、探索性計算以及數據可視化等方面,相對於R、MATLAB、SAS、Stata等工具,Python都有其優勢。近年來,由於Python庫的不斷發展(如pandas),使其在數據挖掘領域嶄露頭角。結合其在通用編程方面的強大實力,我們完全可以只使用Python這一種語言去構建以數據為中心的應用程序。
由於python是一種解釋性語言,大部分編譯型語言都要比python代碼運行速度快,有些同學就因此鄙視python。但是小編認為,python是一門高級語言,其生產效率更高,程序員的時間通常比CPU的時間值錢,因此為了權衡利弊,考慮用python是值得的。
Python強大的計算能力依賴於其豐富而強大的庫:
Numpy
Numerical Python的簡稱,是Python科學計算的基礎包。其功能:
1. 快速高效的多維數組對象ndarray。
2. 用於對數組執行元素級計算以及直接對數組執行數學運算的函數。
3. 線性代數運算、傅里葉變換,以及隨機數生成。
4. 用於將C、C++、Fortran代碼集成到Python的工具。
除了為Python提供快速的數組處理能力,NumPy在數據分析方面還有另外一個主要作用,即作為在演算法之間傳遞數據的容器。對於數值型數據,NumPy數組在存儲和處理數據時要比內置的Python數據結構高效得多。此外,由低級語言(比如C和Fortran)編寫的庫可以直接操作NumPy數組中的數據,無需進行任何數據復制工作。
SciPy
是一組專門解決科學計算中各種標准問題域的包的集合,主要包括下面這些包:
1. scipy.integrate:數值積分常式和微分方程求解器。
2. scipy.linalg:擴展了由numpy.linalg提供的線性代數常式和矩陣分解功能。
3. scipy.optimize:函數優化器(最小化器)以及根查找演算法。
4. scipy.signal:信號處理工具。
5. scipy.sparse:稀疏矩陣和稀疏線性系統求解器。
6. scipy.special:SPECFUN(這是一個實現了許多常用數學函數(如伽瑪函數)的Fortran庫)的包裝器。
7. scipy.stats:標准連續和離散概率分布(如密度函數、采樣器、連續分布函數等)、各種統計檢驗方法,以及更好的描述統計法。
8. scipy.weave:利用內聯C++代碼加速數組計算的工具。
註:NumPy跟SciPy的有機結合完全可以替代MATLAB的計算功能(包括其插件工具箱)。
SymPy
是python的數學符號計算庫,用它可以進行數學表達式的符號推導和演算。
pandas
提供了使我們能夠快速便捷地處理結構化數據的大量數據結構和函數。你很快就會發現,它是使Python成為強大而高效的數據分析環境的重要因素之一。
pandas兼具NumPy高性能的數組計算功能以及電子表格和關系型資料庫(如SQL)靈活的數據處理功能。它提供了復雜精細的索引功能,以便更為便捷地完成重塑、切片和切塊、聚合以及選取數據子集等操作。
對於使用R語言進行統計計算的用戶,肯定不會對DataFrame這個名字感到陌生,因為它源自於R的data.frame對象。但是這兩個對象並不相同。R的data.frame對象所提供的功能只是DataFrame對象所提供的功能的一個子集。也就是說pandas的DataFrame功能比R的data.frame功能更強大。
matplotlib
是最流行的用於繪制數據圖表的Python庫。它最初由John D. Hunter(JDH)創建,目前由一個龐大的開發人員團隊維護。它非常適合創建出版物上用的圖表。它跟IPython(馬上就會講到)結合得很好,因而提供了一種非常好用的互動式數據繪圖環境。繪制的圖表也是互動式的,你可以利用繪圖窗口中的工具欄放大圖表中的某個區域或對整個圖表進行平移瀏覽。
TVTK
是python數據三維可視化庫,是一套功能十分強大的三維數據可視化庫,它提供了Python風格的API,並支持Trait屬性(由於Python是動態編程語言,其變數沒有類型,這種靈活性有助於快速開發,但是也有缺點。而Trait庫可以為對象的屬性添加檢校功能,從而提高程序的可讀性,降低出錯率。) 和NumPy數組。此庫非常龐大,因此開發公司提供了一個查詢文檔,用戶可以通過下面語句運行它:
>>> from enthought.tvtk.toolsimport tvtk_doc
>>> tvtk_doc.main()
Scikit-Learn
是基於python的機器學習庫,建立在NumPy、SciPy和matplotlib基礎上,操作簡單、高效的數據挖掘和數據分析。其文檔、實例都比較齊全。
小編建議:初學者使用python(x, y),其是一個免費的科學和工程開發包,提供數學計算、數據分析和可視化展示。非常方便!
㈩ Python3 & 基本數據類型(一)
Python提供的基本數據類型:數值(整型、浮點型、復數、布爾型等)、字元串、列表、元組、字典、集合等,將它們簡單分類如下:
通常被稱為整型,數值為正或者負,不帶小數點。
Python 3的整型可以當做Long類型使用,所以Python 3沒有
Python 2的Long類型。
Python 初始化的時候會自動建立一個小整數對象池,方便我們調用,避免後期重復生成!這是一個包含 262個指向整數對象的指針數組,范圍是 -5 到 256 。
Python的浮點數就是數學中的小數,類似C語言中的double。
浮點數 也就是小數,如 1.23 , 3.14 , -9.01 等等。但是對於很大或很小的浮點數,一般用科學計數法表示,把10用e替代, 1.23x10^9 就是 1.23e9 ,或者 12.3e8 , 0.000012 可以寫成1.2e-5 等等。
復數 由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示,復數的實部a和虛部b都是浮點。
對 與 錯 、 0 和 1 、 正 與 反 ,都是傳統意義上的布爾類型。
但在Python語言中,布爾類型只有兩個值, True 與 False 。請注意,是英文單詞的對與錯,並且首字母要大寫。
在Python中,0、0.0、-0.0、None、空字元串「」、空元組()、空列表[]、空字典{}都被當作False,還有自定義類型,如果實現了 nonzero ()或 len ()方法且方法返回0或False,則其實例也被當作False,其他對象均為True
布爾值還可以用and、or和not運算。
1)、and 運算是 與 運算,只有所有都為 True , and 運算的結果才是 True ;
2)、or 運算是 或 運算,只要其中有一個為 True , or 運算結果就是 True ;
3)、not 運算是 非 運算,它是單目運算符,把 True 變成 False,False 變成 True。
例如:
由以上案例可以看出,在做四則運算的時候,明顯把 True 看做 1 , False 看做 0 。
4)空值
空值不是布爾類型,只不過和布爾關系比較緊密。
空值是Python里一個特殊的值,用 None 表示(首字母大寫)。None不能理解為0,因為0是整數類型,而None是一個特殊的值。None也不是布爾類型,而是NoneType。
在某些特定的情況下,需要對數字的類型進行轉換。
Python提供了內置的數據類型轉換函數:
int(x) 將x轉換為一個整數。如果x是一個浮點數,則截取小數部分。
float(x) 將x轉換成一個浮點數。
complex(x) 將x轉換到一個復數,實數部分為 x,虛數部分為 0。
complex(x, y): 將 x 和 y 轉換到一個復數,實數部分為 x,虛數部分為 y。
Python字元串即可以用單引號也可以用雙引號括起來,甚至還可以用三引號括起來,字元串是以''或""括起來的任意文本。
例如:'abc',"xyz"等等。請注意,''或""本身只是一種表示方式,不是字元串的一部分,因此,字元串'abc'隻有a,b,c這3個字元。如果'本身也是一個字元,那就可以用""括起來,比如"I'm OK"包含的字元是I,',m,空格,O,K這6個字元。
字元串中包括特殊字元,可以用轉義字元來標識
但是字元串裡面如果有很多字元都需要轉義,就需要加很多,為了簡化,Python還允許用r''表示''內部的字元串默認不轉義
例如:
print r'\ \' #輸出:\ \
字元串的一些常見操作
切⽚是指對操作的對象截取其中⼀部分的操作
語法:序列[開始位置下標:結束位置下標:步⻓]
a. 不包含結束位置下標對應的數據, 正負整數均可;
b. 步⻓是選取間隔,正負整數均可,默認步⻓為1。
find():檢測某個⼦串是否包含在這個字元串中,如果在返回這個⼦串開始的位置下標,否則則返回-1。
index():檢測某個⼦串是否包含在這個字元串中,如果在返回這個⼦串開始的位置下標,否則則報異常。
rfind(): 和find()功能相同,但查找⽅向為右側開始。
rindex():和index()功能相同,但查找⽅向為右側開始。
count():返回某個⼦串在字元串中出現的次數。
replace():替換
split():按照指定字元分割字元串。
join():⽤⼀個字元或⼦串合並字元串,即是將多個字元串合並為⼀個新的字元串。
capitalize():將字元串第⼀個字元轉換成⼤寫。
title():將字元串每個單詞⾸字⺟轉換成⼤寫。
lower():將字元串中⼤寫轉⼩寫。
upper():將字元串中⼩寫轉⼤寫。
lstrip():刪除字元串左側空⽩字元。
rstrip():刪除字元串右側空⽩字元。
strip():刪除字元串兩側空⽩字元。
ljust():返回⼀個原字元串左對⻬,並使⽤指定字元(默認空格)填充⾄對應⻓度 的新字元串。
rjust():返回⼀個原字元串右對⻬,並使⽤指定字元(默認空格)填充⾄對應⻓度 的新字元串,語法和
ljust()相同。
center():返回⼀個原字元串居中對⻬,並使⽤指定字元(默認空格)填充⾄對應⻓度 的新字元串,語
法和ljust()相同。
所謂判斷即是判斷真假,返回的結果是布爾型數據類型:True 或 False。
startswith():檢查字元串是否是以指定⼦串開頭,是則返回 True,否則返回 False。如果設置開
始和結束位置下標,則在指定范圍內檢查。
endswith()::檢查字元串是否是以指定⼦串結尾,是則返回 True,否則返回 False。如果設置開
始和結束位置下標,則在指定范圍內檢查。
isalpha():如果字元串⾄少有⼀個字元並且所有字元都是字⺟則返回 True, 否則返回 False。
isdigit():如果字元串只包含數字則返回 True 否則返回 False。
isalnum():如果字元串⾄少有⼀個字元並且所有字元都是字⺟或數字則返 回 True,否則返回
False。