1. 程式人生 > >基本數據類型 (int , bool, str)

基本數據類型 (int , bool, str)

sdi alex orm money 字符串 用戶登錄 years 判斷字符串 mon

1.基本數據類型 1 int 整數 2 str 字符串 ‘, ‘‘, ‘‘‘, """, 字符串一般不存儲大量數據 ,不容易操作 3 bool 布爾值, Ture,False 4 list [] 列表([]裏放列表的值) list["sylar",‘太白‘,1,Ture,(),{}] 5 tuple () 元組 只能讀取 不能修改 6 dict {} 字典 查找比較快 key:value,一次存兩個數據 一對一對存 7 set {} 集合 一次存一個 不能重復 ,只存Key 比較少見 2 int
a=5   #0000 0101
print(a.bit_length() )

#輸出:3

3 Bool str =>int int(str) int =>str str(int) 數字準換成bool值 如果數字是0轉換成False,如果數字不是0轉換成True
a=0
print(bool(a))

#輸出 False

在while循環中 True 和 1 的效率問題 :1的效率高 (計算機無需轉換成ASCII碼直接執行)
while1:   #1 ==True
    print("hello")

bool 轉換成int
a=0
print(int(True))
#輸出 1
print(int(False))
#輸出 0

str轉換成bool ( 非零轉換成True 零準換成False )
a="abc"
print(bool(a))
#輸出 True
a="123"
print(bool(a))
#輸出 True
a=""          #"" 這個是空字符
print(bool(a))
#輸出 False
a=" "          #" " 這個是空格
print(bool(a))
#輸出 True
a=None        #  這個是真的空
print(bool(a))
#輸出 False a="None" #這個是字符串 "None" print(bool(a)) #輸出 True

向系統中錄入員工信息,不停地錄入,輸出回車退出
while 1:            # while 1 和while True 一個意思
    name=input("請輸入用戶信息:")
    if name != "":
        print("新員工信息:{}".format(name))
    else:
        break
改寫:
while 1:
    name=input("請輸入用戶信息")
    if not name:   # 判斷 如果不正確
        break
    else:
        print("新員工信息:"+name)     

4 str 1.索引 索引就是下標 下標 從 0 開始 print([""])
#  0 1 2 3 456 7 8 9101112  # 正向
#  0              ...-2-1
s="小老板很帥,他比別人都帥."
# 字符串中的第幾個字符   正向從0開始  反向從-1開始
print([3])
#輸出:很
print([5])
#輸出:,
print([-1])
#輸出:.
print([-9])
#輸出:帥

2.切片 print(s[""]) 切片 顧頭不顧尾 默認從左往右切 不能改變原來字符串 只能產生新的字符串
s="1234567890"
print(s[2:5])
#輸出:345
print(s[3:10])
#輸出:4567890   # 如果右邊的值超過字符的長度,切到最後
print(s[2:])  # 切到最後
#輸出:34567890
print(s[-5:])   #切到最後
#輸出:67890
print(s[:])    #全部切出來
#輸出:1234567890
# 可以跳著切 步長 step
print(s[1:9:2])
#輸出:2468
print(s[3:8:-1])  #反著切
#輸出不了  反著 從8無法切到3
print(s[-1:-6:-2])
#輸出:086

首字母大寫; 每個單詞首字母大寫
s="xu yang zhen de chou!"
s1=s.capitalize()     # 首字母大寫
print(s1)
s2=s.title()      #    標題 ,單詞首字母大寫  除英文字母之外的其它字符全都算分割符                                  #將字符串分割成兩個甚至多個,分開之後的所有首字母都大寫
print(s2)
n="xu y>a@ng zhe=n de cho,u!"
n1=s.title()
print(n1)
#輸出:    Xu Y>A@Ng Zhe=N De Cho,U!

全部轉換成大寫 (.upper() ) 字母;全部轉換成小寫 (.lower() ) 字母;大小寫轉換(.swapcase())
name = "taiBai"
s1 = name.upper() # 轉換成大寫字母
print(s1)
s2 = name.lower()  #轉換成小寫字母
print(s2)

# 用戶登錄
while 1:
    verify_code ="Alex"
    verify_code_uesr=input("請輸入驗證碼:")
    if verify_code_uesr==verify_code:
        print("驗證成功")
        break
    else:
        print(驗證失敗)
如果出現用戶大小寫輸入有誤 驗證不成功,那麽改成大小寫輸入都能夠驗證成功
while 1:
    verify_code ="alex"
    verify_code_uesr=input("請輸入驗證碼:")
    if verify_code_uesr.upper()==verify_code.upper():
        print("驗證成功")
        break
else:
        print(驗證失敗)
s = "alexAndEggonAndRiTian"
s1 = s.swapcase() # 大小寫轉換
print(s1)
 
s2 = "БB?" # 俄美德
print(s2)
print(s2.lower())
print(s2.casefold())
 

居中 (.center) ; \t 一個TAB ;
s = "alex"
s1 = s.center(15, "*") # 拉長成10個字符. 由*進行填充
print(s1)
# 輸出 ******alex*****
 
s = "al\twusir"     #/t   TAB 
s1 = s.expandtabs()
print(s)
print(s1)
# 輸出 
 al    wusir
al      wusir

去除兩邊空格(.strip) (.lstrip)去除左邊空格 (.rstrip)去除右邊空格
s=" alxe, xueyang, sylar, boss,熊大 "
s1=s.strip()
print(s1)
s2=s.lstrip()
print(s2)
s3=s.rstrip()
print(s3)

字符串切割(.split) 切割的結果是列表 如果原字符跟用來切割的字符一樣得到兩個空字符 在開頭結尾如果出現用於切割的字符一定會得到空字符
s = "李嘉誠_王健林_馬雲_劉東強_alex"
lst = s.split("_") # 字符串切割. 切割的結果是列表
print(lst[0])
print(lst[1])
print(lst[2])
print(lst[3])
print(lst[4])
輸入:
李嘉誠
王健林
馬雲
劉東強
alex
s = "李嘉誠王健林麻花藤周傑倫"
lst = s.split("李嘉誠王健林麻花藤周傑倫") # 如果原字符串和刀一樣.得到的是兩個空字符串
lst = s.split("馬雲") # 如果不存在.得到的是原字符串
lst = s.split("") # empty separator 報錯
print(lst)
s.split()
 
s = "a_b_c_d_e_f_g"
lst = s.split("_", 2) # 第二個參數. 切的次數
print(lst)
 
s = "周傑倫_周潤發_周星馳_周星星"
lst = s.split("周傑倫")
print(lst)
lst = s.split("周星星")
print(lst)
# 在開頭和結尾如果出現了你的刀. 一定會出現空字符串

字符串替換
# 字符串替換
s8 = "sylar_alex_taibai_wusir_eggon"
ret = s8.replace(alex, 金角大王) # 把alex替換成金角大王
print(s8) # sylar_alex_taibai_wusir_eggon 切記, 字符串是不可變對象. 所有操作都是產生新字符串返回
 
print(ret) # sylar_金角大王_taibai_wusir_eggon

格式化輸出 (.format())
#    %s 字符串
#    %d 數字站位
print("%s很帥, 你信嗎?" % "")
print("{}很帥, {}信嗎?, 不信給你{}錢".format("旭哥", "我們", 100))
print("{1}很帥, {0}信嗎?, 不信給你{2}錢".format("旭哥", "我們", 100))
print("{person1}很帥, {person2}信嗎?, 不信給你{money}錢".format(person1="旭哥", person2="我們", money=100))

數數 (count) :計算字符在字符串中出現的次數,如果沒有出現返回0 查找(find) :如果你要查找的內容不存在,返回 -1,如果存在返回索引 求索引(index):如果找不到報錯
#count 數數
s = "alex wusir taibai 女神"
print(s.count("ai")) # 計算ai在原字符串中出現的次數 如果沒出現返回0
 
# find 查找
s = "明天周末了.你們打算幹什麽去?"
print(s.find("")) # 如果你要查找的內容不存在. 返回-1, 如果存在返回索引
 
#index 求索引
s = "下周我們要考試了. 你們慌不慌"
print(s.index("你大爺")) # 如果找不到報錯

條件判斷 判斷字符是不是以XXX開頭(,startswith("") 或者以XXX結尾(.endswith(""))
s = "寫個啥呢? 哈哈哈"
# 判斷字符串是否以xxx開頭
print(s.startswith("寫個啥呢"))
# 判斷字符串是否以xxx結尾
print(s.endswith("哈哈哈"))

判斷是否是字母和數字組成
s = "abcdefg"
print(s.isalnum()) # 數字和字母
print(s.isdigit()) # 數字
print(s.isalpha()) # 字母
# 輸出
True
False
True

求字符串長度 len("")
s = "abcde"
ret = len(s) # 內置函數
print(ret)
print("你好")
#練習, 計算在字符串"I am sylar, I‘m 14 years old, I have 2 dogs!" 出現過多少個數字. 個位為單位
s="I am sylar, I‘m 14 years old, I have 2 dogs!"
count=0
for w in s :
    if w.isdigit():
        count=count+1
print(count)

基本數據類型 (int , bool, str)