python 學習日記(一)

2021-06-21 18:02:15 字數 3463 閱讀 6488

這兩天看完了python速成教程,從c++轉到python確實有點不是很適應。主要是兩種語言差別還是挺大的,下面我就先說說,我在轉換過程中出現的一些問題。

1、python 的語言風格是指令碼式的,語言側重於解決問題,而不是語言本身,所以可以發現,對於變數(python裡都是物件)的使用上來看,python要靈活很多,不需要像c++那樣需要給定變數型別,可以直接就賦值,python直譯器可以自動識別型別。

2、說到變數(物件),python中有乙個非常重要的特性,那就是」動態型別「

,意思是我們在使用物件的時候,不是直接使用變數本身,而是乙個引用。如:

a = 3

a = "at"

a 可以用作不同資料型別,原理就是當乙個變數沒有引用指向物件時候,python會自動呼叫(destruct),刪除物件記憶體

3、python中很重的是用縮進來確定語句的所屬關係。具體上是這樣的乙個語句與另乙個語句有4個空格差,那麼這個語句就是屬於上乙個語句。

對於初學者來說,用慣了以括號為所屬關係,python的縮排方式是非常容易出錯的

4、語句塊的一定要有冒號

比如 if ():

else:

while():

for i in set :

def () :

5、python中比較重要的資料結構

1》、序列

序列有分為兩種型別,乙個是元組(tuple),還有乙個是表(list),此外字串是乙個定值表。表裡面的元素是可以改變的,但是定值表裡面的元素是不可以改變。

元組:s = (1,2,3,4)

表: s1 = [1,2,3,4]

任何的序列都可以引用其中的元素(item)。

下面的內建函式(built-in function)可用於序列(表,定值表,字串):

# s為乙個序列

len(s)         返回: 序列中包含元素的個數

min(s)         返回: 序列中最小的元素

max(s)         返回: 序列中最大的元素

all(s)         返回: true, 如果所有元素都為true的話

any(s)         返回: true, 如果任一元素為true的話

下面的方法主要起查詢功能,不改變序列本身,可用於表和定值表:

sum(s)         返回:序列中所有元素的和

# x為元素值,i為下標(元素在序列中的位置)

s.count(x)     返回: x在s中出現的次數

s.index(x)     返回: x在s中第一次出現的下標

由於定值表的元素不可變更,下面方法只適用於表:

# l為乙個表, l2為另乙個表

l.extend(l2)        在表l的末尾新增表l2的所有元素

l.sort()            對l中的元素排序

l.reverse()         將l中的元素逆序

l.pop()             返回:表l的最後乙個元素,並在表l中刪除該元素

del l[i]            刪除該元素

(以上這些方法都是在原來的表的上進行操作,會對原來的表產生影響,而不是返回乙個新錶。)

下面是一些用於字串的方法。儘管字串是定值表的特殊的一種,但字串(string)類有一些方法是改變字串的。這些方法的本質不是對原有字串進行操作,而是刪除原有字串,再建立乙個新的字串,所以並不與定值表的特點相矛盾。

#str為乙個字串,sub為str的乙個子字串。s為乙個序列,它的元素都是字串。width為乙個整數,用於說明新生成字串的寬度。

str.count(sub)       返回:sub在str中出現的次數

str.find(sub)        返回:從左開始,查詢sub在str中第一次出現的位置。如果str中不包含sub,返回 -1

str.index(sub)       返回:從左開始,查詢sub在str中第一次出現的位置。如果str中不包含sub,舉出錯誤

str.rfind(sub)       返回:從右開始,查詢sub在str中第一次出現的位置。如果str中不包含sub,返回 -1

str.rindex(sub)      返回:從右開始,查詢sub在str中第一次出現的位置。如果str中不包含sub,舉出錯誤

str.isalnum()        返回:true, 如果所有的字元都是字母或數字

str.isalpha()        返回:true,如果所有的字元都是字母

str.isdigit()        返回:true,如果所有的字元都是數字

str.istitle()        返回:true,如果所有的詞的首字母都是大寫

str.isspace()        返回:true,如果所有的字元都是空格

str.islower()        返回:true,如果所有的字元都是小寫字母

str.isupper()        返回:true,如果所有的字元都是大寫字母

str.split([sep, [max]])    返回:從左開始,以空格為分割符(separator),將str分割為多個子字串,總共分割max次。將所得的子字串放在乙個表中返回。可以str.split(',')的方式使用逗號或者其它分割符

str.rsplit([sep, [max]])   返回:從右開始,以空格為分割符(separator),將str分割為多個子字串,總共分割max次。將所得的子字串放在乙個表中返回。可以str.rsplit(',')的方式使用逗號或者其它分割符

str.join(s)                返回:將s中的元素,以str為分割符,合併成為乙個字串。

str.strip([sub])           返回:去掉字串開頭和結尾的空格。也可以提供引數sub,去掉位於字串開頭和結尾的sub  

str.replace(sub, new_sub)  返回:用乙個新的字串new_sub替換str中的sub

str.capitalize()           返回:將str第乙個字母大寫

str.lower()                返回:將str全部字母改為小寫

str.upper()                返回:將str全部字母改為大寫

str.swapcase()             返回:將str大寫字母改為小寫,小寫改為大寫

str.title()                返回:將str的每個詞(以空格分隔)的首字母大寫

str.center(width)          返回:長度為width的字串,將原字串放入該字串中心,其它空餘位置為空格。

str.ljust(width)           返回:長度為width的字串,將原字串左對齊放入該字串,其它空餘位置為空格。

str.rjust(width)           返回:長度為width的字串,將原字串右對齊放入該字串,其它空餘位置為空格。

python學習日記(一)

windows下python2配置完成,在power shell下學習python.計算機基礎較為薄弱,所以對於power shell不是很了解,因為對python學習沒有太大影響,所以暫時不作深入研究,大概理解為類似於linux系統中,可以通過命令列來控制電腦程式的環境。學習在terminal下如...

Python學習日記一

人生很迷茫吶,找不到自己有什麼價值,只能先挖掘自己的潛力了,聽朋友說沒事寫寫部落格什麼的,能夠加深記憶,可以更好的總結所學知識。不妨試一試?沒事幹總不能閒著吧,遊戲又沒人一起玩,逛街又不會逛街,看電影,追劇又容易睡覺。一 了解python 1 python是一門解釋型語言。解釋型語言指的是源 不是直...

python學習日記(一)

第一次用csdn來寫部落格,以後這就是我的常駐站了哈哈哈哈,這幾天在學習python,看的是小甲魚的網課,感覺講的挺詳細的,每次學完要進行部落格記載,第二天重溫學過的知識。好了不說廢話了,開始記載第一天的學習內容。1.這次學的是python3,相對於python2做了很大的改動,很多地方也與2不相容...