基本資料型別(int bool str)
基本資料型別
一.python基本資料型別
1. int ==> 整數. 主要用來進行數學運算
2. str ==> 字元串, 可以儲存量資料並進行相應的操作
3. bool==>判斷真假, True, False
4. list==> 儲存⼤量資料.用[ ]表示
5. tuple=> 元組, 不可以發生改變 用( )表示
6. dict==> 字典, 儲存鍵值對, ⼀樣可以儲存⼤量資料
7. set==> 集合, 儲存大量資料. 不可以重複. 其實就是不儲存value的dict
二. 整數(int)
在python3中所有的整數都是int型別. 但在python2中如果資料量比較大. 會使⽤long型別.
在python3中不存在long型別 整數可以進行的操作: bit_length(). 計算整數在記憶體中佔用的二進位制碼的長度
三. 布林值(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) 空字元串是False, 不空是True
bool => str str(bool) 把bool值轉換成相應的"值"
四. 字元串(str)
把字元連成串串. 在python中用', ", ''', """引起來的內容被稱為字元串.
切片和索引
1. 索引. 索引就是下標. 切記, 下標從0開始
s = "今天中吃胡蘿蔔" print(s[3]) # 吃 print(s[2]) # 中 print(s[-2]) # 蘿 print(s[-6]) # 天
2. 切片, 我們可以使用下標來擷取部分字元串的內容
語法: str[start: end]
規則: 顧頭不顧尾, 從start開始擷取. 擷取到end位置. 但不包括end
s = "中間的,你們為什麼不說話.難受" print(s[3:7]) #,你們為 print(s[5:9])#們為什麼 print(s[-3:-7])#切不到東西 print(s[-7:-3])#麼不說話 print(s[:6]) #中間的,你們 print(s[6:])#為什麼不說話.難受 print(s[:])#中間的,你們為什麼不說話.難受
步長: 如果是整數, 則從左往右取.如果是負數. 則從右往左取. 預設是1
切片語法: str[start:end:step]
start: 起始位置
end: 結束位置
step:步長
s = "abcdefghijklmn" print(s[::2]) #acegikm print(s[1:5:3]) #be print(s[7:3]) #切不到什麼 print(s[7:3:-1]) #hgfe print(s[-1:-8:-2]) #nljh
切記, 字串串是不可變的物件, 所以任何操作對原字串串是不會有任何影響的
迴文題目
s = "黃山落葉松葉落山黃" s2 = s[::-1] if s == s2: print("是迴文") else: print("不是迴文")
capitalize
s = "abcdefg" s1= s.capitalize() #把首字母大寫 print(s1)#Abcdefg
title
s = "alex sb dsb wusir bi1gsb" s2 = s.title() #把所有的首字母都大寫 print(s2)#Alex Sb Dsb Wusir Bi1Gsb
upper
s = "alex sb dsb wusir bi1gsb" s3 = s.upper() #所有字母都大寫 print(s3)#ALEX SB DSB WUSIR BI1GSB
lower和casefold
s = "Alex Is Not A Or B" s5 = s.lower() #對歐洲的特殊字元識別不了 print(s5)#alex is not a or b s6 = s.casefold() #支援特殊文字 print(s6)#alex is not a or b s2 = "БBß" s7 = s2.lower() print(s7)#бbß s8 = s2.casefold() print(s8)#бbss
swapcase
s = "WuSir 昨天出去 Love 女生 呵呵" s2 = s.swapcase() #大寫變小寫,小寫變大寫 print(s2)#wUsIR 昨天出去 lOVE 女生 呵呵 s = "alex"
center
s = "alex" s6 = s.center(10,"*")#文字居中左右填充 print(s6) #***alex***
格式化輸出
name = "alex" age = 18 hobby = "wusir" print(f"領導叫{name},今年{age}歲,喜歡{hobby}") print("領導叫{},今年{}歲,喜歡{}".format(name,age,hobby)) print("領導叫{n},今年{a}歲,喜歡{h}".format(n=name,a = age,h = hobby)) print("領導叫{0},今年{2}歲,喜歡{1}".format(name,age,hobby))
strip
s = "\n\t alex hhh 123 " s2 = s.strip()#去除字串左右兩邊的空白字元 print(s2) s = "bb aa bb cc dd bb" s2 = s.strip("bb") #去除左右兩邊的bb print(s2)
replace
s = " good alex good wusir good 大蝦 good 胡辣湯 " s8 = s.replace("大蝦","大魚") #文字的替換 print(s8) s9 = s.replace(" ","") print(s9) s10 = s.replace("good","sb",2) print(s10)
startswith和endswith
name = input("請輸入你的名字:").strip() if name.startswith("錢"): #是否以它開頭 print("過來") elif name.endswith("多"):#是否以它結尾 print("過來") else: print("走開")
count
s = "alex is big sb" print(s.count("i"))#統計個數
find 查詢
s = "紅燒豬蹄子" print(s.find("燒")) #1 print(s.find("123")) #-1 print(s.index("燒")) #1 print(s.index("123")) #報錯ValueError: substring not found
isalpha
s = "alexwusir" print(s.isalpha()) #純字母,不包含數字 True
isdigit
s = "123456789" print(s.isdigit()) #純數字,不包含其他字元 True
len
s = "我是周潤發,我喜歡你" print(len(s)) #10 s = input("請輸入一句話:") i = 0 while i < len(s): #計算字串長度 print(s[i]) #10 i += 1
注意: len()是python的內建函式. 所以訪問方式也不一樣. 你就記著len()和print()一樣就⾏了