1. 程式人生 > >基本資料型別(int bool str)

基本資料型別(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()一樣就⾏了