1. 程式人生 > >python資料型別--數字,布林值,字串

python資料型別--數字,布林值,字串

數字:
int整型
long長整型:無限大小的整數,整數最後一位是大寫的或小寫的L
在py3中整數如果過長溢位會自動轉換為long型
浮點型:(floating point real values) - 浮點型由整數部分與小數部分組成,
浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)
複數(complex numbers): - 複數由實數部分和虛數部分構成,
可以用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型。

方法:.bit_length() 表示十進位制數轉換為二進位制數時最少使用的位數。
n = 1
n1 = 3
n2 = 5
n3 = 8
print(n.bit_length())
print(n1.bit_length())
print(n2.bit_length())
print(n3.bit_length())

布林值:
字串和布林值的轉換
str—>bool:非空字串轉換為布林值為True,空字串為False
s = bool(”)
s1 = bool(‘sdsdsdds’)
print(s, s1)
bool—> str
直接將bool值數字符串化
ps:print(str(1 < 2)) 返回值是字串:’False’
說明會先進行運算。
布林值和數字之間的轉換
bool—->int
int(True) -> 1
int(bool) -> 0
int—->bool
bool(0) -> False
bool(1) -> True
bool(-1)-> True
bool(1.2) -> True
空列表,空元祖,空字典 -> False
應用:做邏輯判斷

字串:
索引:s[i] 起始為0,顧頭不顧尾 i > 0 從左至右;i < 0 從右至左
切片:s[start:end:步長] 步長 > 0 從左至右切;步長 < 0 :從右至左切。
如果沒有規定步長,預設從左至右 print(s[::-1]) #逆序字串

常用方法;終於明白()裡是寫的是方法的引數,另外學會看原始碼
*.capitalize() 將首字母大寫剩餘的小寫
.swapcase() 大小寫翻轉
*.upper()
.lower()

    .title() 每個單詞的首字母大寫,中間需用特殊字元(例如空格)隔開

    *.center()----> .center(width, fillchar)  fillchar填充字元得是字串的格式
    返回一個指定寬度 width 居中的字串,如果 width 小於字串寬度直接返回字串,否則使用 fillchar 去填充。



***.count()--->.count(子字串,start引數,end引數)
    計運算元字串在字串中出現的次數.


***.find() 
    檢測字串是否包含子字串,包含,返回匹配的*第一個子字串*的*索引值*,不包含返回-1 
      ----> .find(substring, start引數 ,end引數)

***.index()和.find()  
    方法一樣,不過如果string不包含substring,丟擲異常 “substring not found”


     *.endswith() 檢測字串中是否以指定字尾結尾
     ----> .endswith(指定字尾,start引數,end引數)
     Str='Runoob example....wow!!!'
     print (Str.endswith(suffix,20))

     .startswith() 檢測字串中是否以指定內容開頭
     ----> .endswith(指定開頭,start引數,end引數)  #引數實際是切片,注意位數



     .expandtabs() 將字串中的tab符號(\t)補全成空格 
     將tab符號前面的字串位數補全為8,超8的話補全為16,依次類推
     ----> .expandtabs(tabsize) tabsize 是空格數


  **is系列
    isalnum()檢測字串是否由數字或字母組成
    isalpha()檢測字串是否由字母組成
    isdigit()檢測字串是否由數字組成
    可作判斷條件

****replace()替換字串中的子字串
    ---->.replace(old ,new , max)  *max最大替換次數

*****.split() 
    以指定子字串分割字串,返回不含有指 定子字串的*列表*,預設按空格分割。
     ----> .split(sub, num) *num是分割次數。
     .rsplit() 從右往左。
    a = 'I can do it. Yes, I can '
    print(a.split()) # 不設定引數,預設是按空格分割
    print(a.split('a'))
    print(a.split('I')) #### 以開頭物件分割返回空字串
*****.join()
    -->S.join(iterable)
    以指定字元S連線一個可迭代物件,其元素必須
    是字串
    可以將列表轉換為*字串*
    同樣也可以將元組轉換為字串
    連線字典時連線的是鍵值
    L = ['s', 'a', 'hello', 'world']
    print('_'.join(L))
    print('*'.join(L))
    print(''.join(L), type(''.join(L)))


*****.strip()消除字串*前後*空格 ()
     函式引數預設是空格,除此還可以設定引數
     lstrip()消除字串前面(左面)空格
     rstrip()消除字串後面(右面)空格




*****.format() 
     根據不同的需求進行操作
    print('name:{}, age:{} ,length:{}'.format('muyi', 11, 180))
    print('name:{0}, age:{1} ,length:{2}'.format('muyi', 11, 180))
    print('name:{姓名}, age:{年齡},length:{身高}'.format(姓名='muyi', 年齡=18, 身高=180))

    for迴圈是有限迴圈

例題:
實現一個整數加法計算器:
如:content = input(‘請輸入內容:’) #
如使用者輸入:5+9或5+ 9或5 + 9,然後進行分割再進行計算。

sum  = 0
L = content.split('+')
for i in L:
    sum = sum + int(i)
print(sum)

content = input('請輸入表示式:')
index = content.find('+')
sum = int(content[0:index]) + int(content[index+1:])   #空格問題,int()函式可以自動去空格
print(sum)

計算使用者輸入的內容中有幾個整數。
如:content = input(‘請輸入內容:’) # 如fhdal234slfh98769fjdla
content = input(‘請輸入表示式:’)
sum = 0

#兩種角度
content = input('請輸入:')
count = 0
for i in content:
    if i.isdigit():
        count += 1
print(count)


s = input('請輸入:')
count = 0
while s:
    s = s.lstrip('abcdefghijklmnopqrstuvwxyz')
    s = s.lstrip('0123456789')
    count += 1
print(count)