前言:
學過c、java後來學python相對快很多,不過它們之間還是有很多的不同之處,這裏只總結一些它們的不同之處,主要用於自己的複習。
一、Python基礎
1. 標識符和關鍵字
標識符就是變量、常量、函數、屬性、類、模塊和包等由程序員指定的名字。
2. 變量和常量
在Python 中,不需要事先聲明變量名及其類型,直接賦值即可創建各種類型的對象變量。Python 採用的是基於值的內存管理方式 ,如果爲不同變量賦相同值,這個值在內存中只有一份,多個變量指向同一塊內存地址。
3. 運算符
- “/ ”和“// ”分別表示除法和整除運算。
- % 運算符除去可以用於字符串格式化之外,還可以對整數和浮點數計算餘數。但是由於浮點數的精確度影響,計算結果可能略有誤差。
- 1 < 3 < 5 # 等價於1 < 3 and 3 < 5。
- 位運算是以二進位(bit) 爲單位進行運算的,操作數和結果都是整型數據。位運算符有:& 、| 、^ 、~ 、>> 和<<。
- Python 不支持++ 和- -。
4. 模塊導入與使用
模塊的導入主要是函數、類的導入。
x = 5/2 # x結果爲 2.5 普通除法
x = 5//2 #x結果爲 2 整除
x = 6.0 % 2.0 # 0.0
x = 6.3 % 2.1 # 2.0999999999999996
from math import sin as f # 別名
Python 中沒有數組結構
二、數字類型
Python 數字類型有四種:整數類型、浮點類型、複數類型和 布爾類型
。
- Python 整數類型爲int ,整數類型可以表示很大的整數,這隻受計算機硬件的限制。
- Python 3.6.x 開始支持在數字中間位置使用 單個下劃線 作爲分隔來提高數字的可讀性,類似於數學上使用逗號作爲千位分隔符。1_000_000 = 1000000
- Python 是支持複數的,這使得Python 能夠很好地用來進行科學計算。a = 3 + 4j
- 任何類型數據都可以通過 bool() 函數轉換爲布爾值,那些被認爲“沒有的”、“空的”值會轉換爲False ,反之轉換爲True。
- 除複數外 ,整數類型、浮點類型和布爾類型都有自己的轉換函數,分別是int() 、float() 和bool().
三、字符串
1. 字符串的三種表示
普通字符串: 採用單引號或雙引號包裹起來的字符串。
原始字符串: 在普通字符串前加r ,字符串中的特殊字符不需要轉義,按照字符串的本來“面目”呈現。
長字符串: 字符串中包含了換行縮進等排版字符,可以使用三重單引號或三重雙引號包裹起來,這就是長字符串
2. 字符串格式化
在字符串格式化時可以使用字符串的format()方法以及佔位符。
s = '{0} 的年齡是{1} 歲。'.format(name, age)
s = '{n} 的年齡是{a} 歲。'.format(n=name, a=age)
{1:d} 表示索引爲1 的佔位符格式參數是十進制整數。
3. 字符串方法
函數 | 描述 |
---|---|
str.capitalize | 返回字符串的副本,字符串首字母大寫,其他字符小寫 |
str.casefold | 返回字符串副本,字母均小寫,對其他非英文字字母也均適用,按照 |
str.lower() |
返回字符串副本,字母(特指英文字母)均小寫 |
str.upper() |
將字符串字母大寫,並返回 |
str.center(width, filter='') |
返回以原字符串爲中心向兩邊填充的新字符串,填充物爲filter,默認爲ASCII空格。填充長度爲width,若width小於原字符串長度,則返回原字符串副本 |
str.ljust(width, fillchar='') |
返回一個將原字符串左端利用fillchar填充的,長度爲width的新字符串。其他類似於str.center() |
str.zfill(width) | 在字符串最左端填充ASCII的0,若最左端爲’-‘或’+'時,選次右端爲首字母,width爲填充後字符串寬度 |
str.count(sub,start=None,end=None) |
返回字符串中字符sub的個數,截取字符串自start到end之間的字符串進行統計,兩參數默認爲None(即默認爲原字符串) |
str.translate(table) | table爲類似於字典的鍵值對(映射關係),字符串中的字符將按照映射進行轉換,類似於密碼譯對 |
str.encode(encoding=“utf-8”, errors=“strict”) | 作用於編碼爲encoding的字符串,返回一個bytes類型。相應的b’ '.decode(),逆變換。errors對轉換時出現的錯誤進行處理的方法,常用的由strict(觸發異常)、ignore(忽略錯誤) |
str.endwith(suffix, start=None, error=None) | 截取字符串自start到end之間的字符串,判斷字符串是否以suffix爲結尾,返回True(是)、False(否) |
str.startswith(suffix, start=None, error=None) | 類似於str.endwith |
str.expandtabs(tabsize=8) | 返回字符串的副本,將字符串中的tab(默認大小爲tabsize=8)替換爲一個或多個空格。 |
str.find(sub, start=None,end=None) |
截取字符串自start到end之間的字符串,查找子字符串中是否有sub,返回True ,False |
str.rfind(sub,start=None,end=None) | 若sub爲原字符串的子字符串,則返回其最高索引(最右側一組),否則返回-1 |
str.format(*args, kwargs) | 格式化字符串 |
str.format_map(mapping) | 格式化字符串,mapping爲字典,具有對應關係。 |
str.swapcase() |
將原字符串的字母大小寫反轉,並返回 |
str.index(sub, start,end) |
截取字符串自start到end之間的字符串,查找子字符串中是否有sub,存在返回sub首字母的在原字符串中的位置,否則觸發異常 |
str.rindex(sub,start=None,end=None) | 類似於str.rfind(sub,start=None,end=None),未找到是觸發異常 |
str.replace(old, new, count=1) |
由new替換原字符串中old子字符串,並返回一個新字符串。若找到多組,則由count決定需要替換的組數,由左向右 |
str.isalnum() |
判斷字符串中字符是否均爲字母或數字,返回True,False。字符串爲空時返回False。 |
str.isalpha() |
類似於str.isalnum,判斷是否均爲字母字符 |
str.isdecimal() |
類似於str.isalnum,判斷是否均爲十進制 |
str.isdigit | 類似於str.isalnum,判斷是否均爲數字 |
str.isspace | 類似於str.isalnum,判斷是否均空格 |
str.lower()、str.upper() |
判斷字符串是否均爲小寫或大寫 |
str.isprintable | 判斷字符串是否可打印 |
str.title() |
將原字符串轉換成title形式,並返回 |
str.istitle | 判斷字符串是否爲標題,參見python標題格式 |
str.join(iterable) |
常用形式爲’sub’.join(iterable),將可迭代對象,以sub爲分隔符,組成一個新的字符串 |
str.lstrip(chars='') |
返回一個將原字符串去掉左端的chars(默認爲空格)的新字符串。從左向右,原字符串最左端的字符只要包含在chars中均刪除,直至原字符串最左端字符不包含在chars中。 |
str.rstrip() |
類似於str.lstrip |
str.strip() |
類似於str.lstrip,兩端 |
str.partition(‘spe’) | 分割字符串,在遍歷字符串首次遇見spe時分割。返回一個列表,包括原字符串在sep之前部分,spe,和原字符串在spe之後的部分。若spe在最左端或最右端,均有其右(左)部分由空格替代。未找到,返回包含原字符串和兩個空格的列表。 |
str.rpartition(sub) | 類似於str.partition(‘spe’),spe爲最右一組。 |
str.split(spe=None,maxsplit=-1) |
以spe爲分隔符分割字符串,返回一個列表。若指定maxsplit,則之多分裂maxsplit+1組。 |
str.rsplit(spe=None,maxsplit=-1) | 類似於str.split(spe=None,maxsplit=-1),只是在maxsplit不爲-1時,由右計算 |
四、語句
1. if 語句
if 語句有if 結構、if-else 結構和elif 結構三種。
條件表達式:表達式1 if 條件 else 表達式2
if 語句可使用in 、not in、or、and
關鍵字
if x == 0 or x == 1:
print("YES")
elif x == 2 and y == 2:
print("NO")
else:
print("YN")
2. for 語句
while 循環語句和for 循環語句都可以帶else 子句,如果循環因爲條件表達式不成立而 自然結束 ,則執行else 結構中的語句;如果循環是因爲執行了break 語句而導致循環提前結束,則不執行else 中的語句。
for 取值 in 序列或迭代對象:
循環體
[else:
else 子句代碼塊]
3. while 語句
while 條件表達式:
循環體
[else:
else 子句代碼塊]
4. 輸入、輸出語句
x = input("請輸入x的值:")
print(1,2,3,sep=":")
print(1,2,3,end="")