python基礎-03

來源:互聯網
上載者:User

標籤:應用   指定   case   false   abd   rip   必須   特殊   規則   

1.python基礎資料型別 (Elementary Data Type)

(1) int ==> 整數. 主要用來進行數學運算

(2) str ==> 字串, 可以儲存少量資料並進行相應的操作

(3) bool==>判斷真假, True, False

(4) list==> 儲存大量資料.用[ ]表示

(5) tuple=> 元組, 不可以發生改變 用( )表示

(6) dict==> 字典, 儲存索引值對, 一樣可以儲存大量資料

(7) set==> 集合, 儲存大量資料. 不可以重複. 其實就是不儲存value的dict

 

2.布爾值(bool)

取值只有True, False. bool值沒有操作.

轉換問題:

str => int int(str)

int => str str(int)

int => bool bool(int). 0是False 非0是True

bool=>int int(bool) True是1, False是0

str => bool bool(str) Null 字元串是False, 不空是True

bool => str str(bool) 把bool值轉換成相應的"值"

 

3.索引  索引就是下標. 切記, 下標從0開始

 

# 0123456 7 8

s1 = "python最牛B"

print(s1[0]) # 擷取第0個

print(s1[1])

print(s1[2])

print(s1[3])

print(s1[4])

print(s1[5])

print(s1[6])

print(s1[7])

print(s1[8])

# print(s1[9]) # 沒有9, 越界了. 會報錯

print(s1[-1]) # -1 表示倒數.

print(s1[-2]) # 倒數第二個

 

4.切片  我們可以使用下標來截取部分字串的內容

文法: str[start: end]

規則: 顧頭不顧腚, 從start開始截取. 截取到end位置. 但不包括end

 

s2 = "python最牛B"

print(s2[0:3]) # 從0擷取到3. 不包含3. 結果: pyt

print(s2[6:8]) # 結果 最牛

print(s2[6:9]) # 最大是8. 但根據顧頭不顧腚, 想要取到8必須給9

print(s2[6:10]) # 如果右邊已經過了最大值. 相當於擷取到最後

print(s2[4:]) # 如果想擷取到最後. 那麼最後一個值可以不給.

print(s2[-1:-5]) # 從-1 擷取到 -5 這樣是擷取不到任何結果的. 從-1向右數. 你怎麼數也數不到-5

print(s2[-5:-1]) # 牛b, 取到資料了. 但是. 顧頭不顧腚. 怎麼取最後一個呢?

print(s2[-5:]) # 什麼都不寫就是最後了

print(s2[:-1]) # 這個是取到倒數第一個

print(s2[:]) # 原樣輸出

 

5.跳著截取

# 跳著取, 步長

print(s2[1:5:2]) # 從第一個開始取, 取到第5個,每2個取1個, 結果: yh, 分析: 1:5=> ytho => yh

print(s2[:5:2]) # 從頭開始到第五個. 每兩個取一個

print(s2[4::2]) # 從4開始取到最後. 每兩個取一個

print(s2[-5::2]) # 從-5取到最後.每兩個取一個

print(s2[-1:-5]) # -1:-5什麼都沒有. 因為是從左往右擷取的.

print(s2[-1:-5:-1]) # 步長是-1. 這時就從右往左取值了

print(s2[-5::-3]) # 從倒數第5個開始. 到最開始. 每3個取一個, 結果oy

 

6.步長  如果是整數, 則從左往右取. 如果是負數. 則從右往左取. 預設是1

切片文法:

str[start:end:step]

start: 起始位置

end: 結束位置

step:步長

 

7.字串的相關操作方法

切記, 字串是不可變的對象, 所以任何操作對原字串是不會有任何影響的

 

(1)大小寫轉來轉去

s1.capitalize()

print(s1) # 輸出發現並沒有任何的變化. 因為這裡的字串本身是不會發生改變的. 需要我們重新擷取

ret1 = s1.capitalize()

print(ret1)

 

大小寫轉換

ret = s1.lower() # 全部轉換成小寫

print(ret)

ret = s1.upper() # 全部轉換成大寫

print(ret)

# 應用, 校正使用者輸入的驗證碼是否合法

verify_code = "abDe"

user_verify_code = input("請輸入驗證碼:")

if verify_code.upper() == user_verify_code.upper():

 print("驗證成功")

else:

 print("驗證失敗")

ret = s1.swapcase() # 大小寫互相轉換

print(ret)

 

不常用

ret = s1.casefold() # 轉換成小寫, 和lower的區別: lower()對某些字元支援不夠好. casefold()對所有字母都有效. 比如東歐的一些字

print(ret)

s2 = "БB?" # 俄美德

print(s2)

print(s2.lower())

print(s2.casefold())

 

每個被特殊字元隔開的字母首字母大寫

s3 = "alex eggon,taibai*yinwang_麻花藤"

ret = s3.title() # Alex Eggon,Taibai*Yinwang_麻花藤

print(ret)

 

中文也算是特殊字元

s4 = "alex老男孩wusir" # Alex老男孩Wusir

print(s4.title())

 

(2)切來切去

 

置中

s5 = "周杰倫"

ret = s5.center(10, "*") # 拉長成10, 把原字串放中間.其餘位置補*

print(ret)

# 更改tab的長度

s6 = "alex wusir\teggon"

print(s6)

print(s6.expandtabs()) # 可以改變\t的長度, 預設長度更改為8

 

去空格

s7 = " alex wusir haha "

ret = s7.strip() # 去掉左右兩端的空格

print(ret)

ret = s7.lstrip() # 去掉左邊空格

print(ret)

ret = s7.rstrip() # 去掉右邊空格

print(ret)

# 應用, 類比使用者登入. 忽略使用者輸入的空格

username = input("請輸入使用者名稱:").strip()

password = input("請輸入密碼: ").strip()

if username == ‘alex‘ and password == ‘123‘:

 print("登入成功")

else:

 print("登入失敗")

s7 = "abcdefgabc"

print(s7.strip("abc")) # defg 也可以指定去掉的元素,

 

字串替換

s8 = "sylar_alex_taibai_wusir_eggon"

ret = s8.replace(‘alex‘, ‘金角大王‘) # 把alex替換成金角大王

print(s8) # sylar_alex_taibai_wusir_eggon 切記, 字串是不可變對象. 所有操作都是產生新字串返回

print(ret) # sylar_金角大王_taibai_wusir_eggon

ret = s8.replace(‘i‘, ‘SB‘, 2) # 把i替換成SB, 替換2個

print(ret) # sylar_alex_taSBbaSB_wusir_eggon

 

(3)字串切割

s9 = "alex,wusir,sylar,taibai,eggon"

lst = s9.split(",") # 字串切割, 根據,進行切割

print(lst)

s10 = """詩人

學者

驚嘆號

渣渣"""

print(s10.split("\n")) # 用\n切割

 

(4)

s11 = "銀王哈哈銀王呵呵銀王吼吼銀王"

lst = s11.split("銀王") # [‘‘, ‘哈哈‘, ‘呵呵‘, ‘吼吼‘, ‘‘] 如果切割符在左右兩端. 那麼一定會出現Null 字元串.深坑請留意

print(lst)

 

(5)格式化輸出

# 格式化輸出

s12 = "我叫%s, 今年%d歲了, 我喜歡%s" % (‘sylar‘, 18, ‘周杰倫‘) # 之前的寫法

print(s12)

s12 = "我叫{}, 今年{}歲了, 我喜歡{}".format("周杰倫", 28, "周潤發") # 按位置格式化

print(s12)

s12 = "我叫{0}, 今年{2}歲了, 我喜歡{1}".format("周杰倫", "周潤發", 28) # 指定位置

print(s12)

s12 = "我叫{name}, 今年{age}歲了, 我喜歡{singer}".format(name="周杰倫", singer="周潤發", age=28) # 指定關鍵字

print(s12)

 

(6)尋找

s13 = "我叫sylar, 我喜歡python, java, c等程式設計語言."

ret1 = s13.startswith("sylar") # 判斷是否以sylar開頭

print(ret1)

ret2 = s13.startswith("我叫sylar") # 判斷是否以我叫sylar開頭

print(ret2)

ret3 = s13.endswith("語言") # 是否以‘語言‘結尾

print(ret3)

ret4 = s13.endswith("語言.") # 是否以‘語言.‘結尾

print(ret4)

ret7 = s13.count("a") # 尋找"a"出現的次數

print(ret7)

ret5 = s13.find("sylar") # 尋找‘sylar‘出現的位置

print(ret5)

ret6 = s13.find("tory") # 尋找‘tory‘的位置, 如果沒有返回-1

print(ret6)

ret7 = s13.find("a", 8, 22) # 切片找

print(ret7)

ret8 = s13.index("sylar") # 求索引位置. 注意. 如果找不到索引. 程式會報錯

print(ret8)

 

(7)條件判斷

 

# 條件判斷

s14 = "123.16"

s15 = "abc"

s16 = "[email protected]"

 

# 是否由字母和數字組成

print(s14.isalnum())

print(s15.isalnum())

print(s16.isalnum())

 

# 是否由字母組成

print(s14.isalpha())

print(s15.isalpha())

print(s16.isalpha())

 

# 是否由數字組成, 不包括小數點

print(s14.isdigit())

print(s14.isdecimal())

print(s14.isnumeric()) # 這個比較牛B. 中文都識別.

print(s15.isdigit())

print(s16.isdigit())

 

# 練習. 用演算法判斷某一個字串是否是小數

s17 = "-123.12"

s17 = s17.replace("-", "") # 替換掉負號

if s17.isdigit():

 print("是整數")

else:

 if s17.count(".") == 1 and not s17.startswith(".") and not s17.endswith("."):

 print("是小數")

 else:

 print("不是小數")

 

(8)計算字串的長度

s18 = "我是你的眼, 我也是a"

ret = len(s18) # 計算字串的長度

print(ret)

注意: len()是python的內建函數. 所以訪問方式也不一樣. 你就記著len()和print()一樣就行了

 

(9)迭代

我們可以使用for迴圈來便利(擷取)字串中的每一個字元

 文法:

 for 變數 in 可迭代對象:

 pass

 可迭代對象: 可以一個一個往外取值的對象

s19 = "大家好, 我是VUE, 前端的小朋友們. 你們好麼?"

# 用while迴圈

index = 0

while index < len(s19):

 print(s19[index]) # 利用索引切片來完成字元的尋找

 index = index + 1

# for迴圈, 把s19中的每一個字元拿出來賦值給前面的c

for c in s19:

 print(c)

‘‘‘

 in有兩種用法:

 1. 在for中. 是把每一個元素擷取到賦值給前面的變數.

 2. 不在for中. 判斷xxx是否出現在str中.

‘‘‘

print(‘VUE‘ in s19)

# 練習, 計算在字串"I am sylar, I‘m 14 years old, I have 2 dogs!"

s20 = "I am sylar, I‘m 14 years old, I have 2 dogs!"

count = 0

for c in s20:

 if c.isdigit():

 count = count + 1

print(count)

python基礎-03

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.