1. 程式人生 > >DAY3 python基礎之數據類型總覽

DAY3 python基礎之數據類型總覽

ict 一個bug 數字 程序 bob 不能 轉化 例子 符號

一.數據類型總覽

  int : 數值,用於數學計算,計數;例如:1,2,3,4,...

  str :字符串,用於少量數據的存儲,方便操作。

  bool : 布爾型,只有兩個狀態True,False。機器反饋給用戶“對”或“錯”。

  list : 列表,存儲大量數據,各種數據。例如:{1,‘alex‘,True,[],{}...}

  tuple :(),元組,又稱為只讀列表,只能閱讀不能修改。

  dict :{},鍵值對的形式存儲數據,存儲大量的關聯型數據

  set :{},集合,用於關系測試。

二. 數值

  詳細的操作,看之前的博客。

  關鍵知識點:

    bit_length(): 十進制數轉為二進制所占的最小位數

    1 0000 0001 有效位數為1

     2 0000 0010 有效位數為2

    例子:     

             i = 2
print(i.bit_length())
       >>> 2

三. bool布爾型

  數值轉換:

    int ----> bool : 只有0是False,非0都是True

    bool---->int : True對應的是1,False對應的是0

    

    bool---->str : bool(str),只有空字符串對應的bool值為False。

四. 字符串

  對字符串的下面兩個部分操作:形成的都是一個新的字符串,與原字符串沒有關系。

  (一)索引,切片,步長

  在Python中,從左向右,第一個元素的索引值為0;從右往左,索引值從-1,-2...所以最後一個元素的索引值為-1.

  # 按索引取值  s1 = ‘python1期騎士計劃‘

  print(s1[0],type(s1[0]))
  print(s1[2])
  print(s1[4])

 # 按切片取值,取一段範圍的元素。
  [start:end] : 顧頭不顧尾,取不到結尾值。
  [:end] : 表示從頭開始取
  [start:] : 表示取到結尾
  s1 = ‘python1期騎士計劃‘
  print(s1[-4:])
  print(s1[1:])
 # 按切片+步長來取值,[start:end:step]
  
s1 = ‘python1期騎士計劃‘
print(s1[0::2])
  
  # 如果想倒敘取值,可以用反向步長“-”
   
print(s1[1::-1])
  
 (二)字符串常用的方法(*代表重要程序)
  ‘‘‘capitalize():首字母大寫 *** ‘‘‘
name = ‘oldboy‘
print(name.capitalize())
>>> Oldboy

  ‘‘‘center(長度,填充符號): 字符串居中,前後填充指定字符 **‘‘‘

name = ‘oldboy‘
print(name.center(10,‘*‘))
>>>**oldboy**

  ‘‘‘upper():英文全部轉為大寫

    lower():英文全部轉為小寫

   ***** ‘‘‘

name = ‘oldboy‘
print(name.upper())
>>> OLDBOY

name2 = ‘OLDBOY‘
print(name.lower())
>>> oldboy

  ‘‘‘title():字符串中的首字母大寫。 **

   # title 非字母隔開的每個部分的首字母大寫

  ‘‘‘

name = ‘i love python‘
print(name.title())
>>>I Love Python

  ‘‘‘

  ***

  startswith(): 判斷字符串是否以指定字符開頭,返回True/False。

  endswith(): 判斷字符串是否以指定字符結尾,返回True/False。

  ‘‘‘

name = ‘oldboy‘
print(name.startswith(‘ol‘))
>>> True print(name.endswith(‘oy‘))
>>> True

  # 還可以判斷字符串其中的切片是否以指定字符為開頭

startswith(prefix,start=None,end=None)
print(name.startswith(‘ld‘,1,5))

  ‘‘‘通過元素找索引

  index():找到字符串中第一個指定元素的最左索引,如果不存在,報錯。

  find():找到字符串中第一個指定元素的最左索引,如果不存在,返回-1。

  ‘‘‘

name = ‘oldboy‘
print(name.index(‘o‘))
print(name.find(‘o‘))
print(name.index(‘ld‘))

  ‘‘‘

  *****

  strip(): 去掉字符串中指定部分,默認去除空格。

  lsrtip():去除左邊的空白字符。

  rstrip(): 去除右邊的空白字符。

  ‘‘‘

name = ‘ python is cool   ‘
print(name.strip()) #去除空格
print(name.strip(‘is cool‘))  #去掉指定部分
name1 = ‘weralexqwe‘
print(name1.strip(‘erw‘)

  例子:username = input(‘>>>:‘).strip()

  ‘‘‘
  *****
  split():根據指定的字符(默認:空格)分割字符串,返回列表
  # 將字符串分割為列表:str--->list
  # 以空格分割符有一個bug,謹記
  ‘‘‘
s1 = ‘alex bob taibai‘
l1 = s1.split()
print(l1)
>>> [‘alex‘,‘bob‘,‘taibai‘]
#設置分割次數
# s1 = ‘alexlwe‘
# print(s1.split(‘l‘,1))
>>>[‘a‘,‘lexlwe‘]
# 以空格為分割符有一個bug
s1 =‘ python java c++‘
print(s1.split())
>>>[‘python‘,‘java‘,‘c++‘] #註意這裏會把python開頭的空白字符省略掉,bug!!

空格正確分割:
print(s1.split(" ")) #需要指定分割符為“ ”
>>> [‘‘,‘python‘,‘java‘,‘c++‘]

  ‘‘‘

  *****

  join():通過指定的鏈接字符串,將可叠代對象的元素連接起來

  ### 把列表轉化為字符串:list---> str

  ‘‘‘

s1 = ‘alex‘
s2 = ‘*‘.join(s1)
s3 = ‘_‘.join(s1)
print(s2)
>>>a*l*e*x*
print(s3)
>>>a_l_e_x
# 把列表轉為為字符串
l1 = [‘python‘,‘is‘,‘cool‘]
li_to_str = ‘‘.join(l1)
print(li_to_str)

  ‘‘‘

  *****

  replace(old,new,count=None):用新的字符串替換舊的字符串

  ‘‘‘

s1 = ‘java is cool,java is fast‘
s2 = s1.replace(‘java‘,‘python‘)   #全部替換
s3 = s1.replace(‘java‘,‘python‘,1)  #限制次數
print(s2)
>>> python is cool,python is fast
print(s3)
>>> python is cool,java is fast

  ‘‘‘

  format():格式化輸出

  ‘‘‘

第一種方式:按順序輸入
s1 = ‘我叫{},今年{},性別{}‘.format(‘he‘,‘23‘,‘男‘)
print(s1)

第二種方式:索引,可以重復使用 *****
s1 = ‘我叫{0},今年{1},性別{2},我依然叫{0}‘.format(‘he‘,‘23‘,‘男‘)
print(s1)

第三種方式:傳參,可以打亂傳參位置
s1 = ‘我叫{name},今年{age},性別{sex}‘.format(name=‘he‘,age=‘23‘,sex=‘男‘)
print(s1)

  ‘‘‘

is系列:返回True/False
isdigit():判斷是否都為數字
isalpha():判斷是否都為字母
isalnum():判斷是否只有數字或字母組成
...

  ‘‘‘

language = ‘python‘
print(language.isdigit())
>>>False
print(language.isalpha())
>>>True

  ‘‘‘

  公共方法:

  count():計算指定字符出現的次數

  len(): 計算長度---> 元素的個數

  ‘‘‘

 

 

DAY3 python基礎之數據類型總覽