Python基礎之Python資料世界

ckxllf發表於2019-12-18

  python的基本資料型別

  1.數值

  int

  flaot

  2.字串String

  獲取長度

  字串拼接三種方式

  字串切片

  指定字元查詢

  字元計數

  3.布林boolean

  True

  Flase

  4.空值None

  5.list列表

  元素可以是不同型別,有序集合。

  6.元組tuple

  元素經定義便不可更改

  7.字典dictionary

  透過鍵值來儲存,查詢十分迅速

  8.集合sets

  無序無重複序列

  9.透過一個小程式來說明python的格式規範。

  一:數值

  在Python中數值只有兩種型別

  1.int

  2.float

  定義數值十分的方便,減少了許多的的定義,比如說c中定義a=3

  int a = 3;//c

  a = 3#python

  python會自動給你識別你的數值為int型或float型,因此執行速度要比c語言慢。

  a = 3.14#float

  常量定義為大寫,如PI=3.14,其他語言中定義為常量不可更改,python中由於失去了限定,可以更改,但請儘量不要更改。

  >>> PI=3.14

  >>> PI

  3.14

  >>> PI = PI+2

  >>> PI

  5.140000000000001

  **

  二:字串

  **

  字串的定義

  直接賦值用以定義,python中字串可以使用單引號,雙引號,三引號來括起來。

  >>> s='abc'

  >>> s

  'abc'

  >>> s="abcd"

  >>> s

  'abcd'

  >>> s='''abdc'''

  >>> s

  'abdc'

  >>> len(s)#len()獲取長度

  4

  字串的三種拼接方式:

  1,+號拼接

  >>> s= 'abc'+'bcd'

  >>> s

  'abcbcd'

  >>> s1 = s+'abc'

  >>> s1

  'abcbcdabc'

  2.list有序集合拼接(使用+號拼接大量字元需要輸入許多程式碼)

  >>> list_str = ['ni','hao','bei','jin']

  >>> str2 = ''.join(list_str)

  >>> str2

  'nihaobeijin'

  >>> str3 = ' '.join(list_str)#前面代表拼接的間隔

  >>> str3

  'ni hao bei jin'

  3.format拼接:使用{}將需要拼接的字串給空出來,後面進行拼接

  >>> str3 = '我喜歡{},因為我需要{}'.format('python','高效')

  >>> str3

  '我喜歡python,因為我需要高效'

  字串的切片:(起始:終止:間隔),不寫預設從頭尾開始。也可使用split切割:

  >>> s = 'abcdefgh'

  >>> s[0:3]

  >>> s[:3]預設從0開始

  'abc'

  >>> s[3:]

  'defgh'

  >>> s[:-1]

  'abcdefg'

  >>> s[:-2]

  'abcdef'

  >>> s = 'abcdegh'

  >>> s[::2]//起始,終止,間隔

  'aceh'

  >>> a ='abcdef'

  >>> a[::-1]//可用於字串反轉

  'fedcba'

  >>> str4 = "小紅,小拜,小化"

  >>> str4.split(",")

  ['小紅,小拜,小化']

  字串查詢:

  >>> s = 'abcdefgh'

  >>> str2.find('a')

  0

  #查詢不到返回-1

  >>> s= 'abc'

  >>> s.find('d')

  -1

  字串下標查詢:

  >>> s = 'abcdefgh'

  >>> str2.index('b')

  1

  字串計數:

  >>> str3 = 'aaabbbccc'

  >>> str3.count('b')

  3

  三:布林

  只包含兩個值True和False。(明確區分大小寫)

  >>> 3<2

  False

  >>> 3>2

  True

  >>> 3>2 and 3<2#有假為假

  False

  >>> 3>2 or 3<2#有真為真

  True

  >>> not 3>2#真則為假

  False

  四:None值

  代表空型別

  >>> s= None

  >>> s

  >>> type(s)#使用type()檢視引數型別

  五:list列表

  list中元素不受限制#並且是有序集合,可以獲取

  classmates = ['yh','xiaobai','xiaohong']

  >>> type(classmates)

  >>> len(classmates)

  3

  >>> classmates[0]

  'yh'

  >>> classmates[-1]

  'xiaohong'

  list新增,直接新增在最後一位

  classmates.append('haha')

  classmates

  ['yh', 'xiaobai', 'xiaohong', 'haha']

  插入,可指定位置插入

  >>> classmates.insert(1,'hehe')

  >>> classmates

  ['yh', 'hehe', 'xiaobai', 'xiaohong', 'haha']

  彈出元素,預設為最後一位,也可指定位置

  >>> classmates.pop()

  'haha'

  classmates.pop(3)

  'xiaohong'

  >>> classmates

  ['yh', 'hehe', 'xiaobai']

  list中元素可以是一個list

  >>> s = ['python','java',[123,123],'hehe']

  >>> len(s)

  4

  六:元組

  #元素一經定義不能被更改,引用可以被修改.

  >>> t = (1,2,3)

  >>> t

  (1, 2, 3)

  >>> t[1]

  2

  >>> t = ('1','2','3')

  >>> t

  ('1', '2', '3')

  元素經定義就無法修改

  >>> t = ('1','2','3')

  >>> t

  ('1', '2', '3')

  >>> l=[1,2]

  >>> t[2]=l

  Traceback (most recent call last):

  File "", line 1, in

  TypeError: 'tuple' object does not support item assignment

  >>> t[2]=3

  Traceback (most recent call last):

  File "", line 1, in

  TypeError: 'tuple' object does not support item assignment

  但是其中的引用可以被修改,即元組中的元素是一個一個引用的時候可以被修改

  >>> l =[1,2,3] 鄭州人流價格

  >>> t = (1,2,l)

  >>> l=[3,2,1]

  >>> t

  (1, 2, [1, 2, 3])

  >>> t[2][0]=3//代表t的第三個元素l中的第一個元素。

  >>> t

  (1, 2, [3, 2, 3])

  七:字典

  dictionnary無序物件集合,透過key-value來對映。用"{}"來標識,查詢速度極快,只需找到鍵值。需要佔用大量記憶體(不僅儲存值,還儲存鍵值)。key使用不可變物件,利用key來計算位置,通常採用hash演算法。

  >>> names = ['yh','haha','hehe']

  >>> scores = [90,80,70]

  >>> d = {'yh':90,'xiaohong':20,'hehe':70}

  >>> d['hehe']

  70

  >>> d['xiaogou']=30#新增,無序。

  >>> d

  {'yh': 90, 'xiaohong': 20, 'hehe': 70, 'xiaogou': 30}

  查詢是否存在

  >>> 'hehe' in d

  True

  >>> 123 in d

  False

  >>> d.get('123',-1)#如果沒有找到,返回-1,沒有先查詢就去檢視某個的值,會報錯,先查詢可以防止報錯。

  -1

  >>> d.pop('xiaogou')

  60

  >>> d

  {'yh': 90, 'xiaohong': 20, 'hehe': 70}

  八:集合sets

  無序不重複元素的序列,常用於去重,交集,並集。十分快速

  >>> s = set([1,1,3,3,4,4])

  >>> s

  {1, 3, 4}

  >>> s.add(3)

  >>> s

  {1, 3, 4}

  >>> s.add(2)

  >>> s

  {1, 2, 3, 4}

  >>> s1 =set([1,2,3])

  >>> s2 = set([2,3,4])

  >>> s1 & s2

  {2, 3}

  >>> s1 | s2

  {1, 2, 3, 4}

  九:冰雹猜想

  任意寫出一個正整數N,並且按照以下的規律進行變換:

  如果是個奇數,則下一步變成3N+1。

  如果是個偶數,則下一步變成N/2。

  最終都會變成1.

  code:

  def collatz(number):#def是python的函式,通常是“def 函式名(引數):”開始

  if number%2 == 0:#函式內部使用4個空格,即一個tab鍵進行格式化,if語句後面加:

  return number//2#if後面的語句tab

  elif number%2 ==1:#elif同理,即

  return 3*number+1

  print('Please inter a number:')#列印在螢幕上輸入一個整數

  try:#錯誤校驗,如果輸入的不是正整數,將會報錯

  num = int(input())

  while num!=1:#如果內容為真,會一直做這個迴圈,這個數字不等於1,那麼會一直對這個數字進行操作

  print(collatz(num))

  num = collatz(num)

  except ValueError:#這裡是報錯資訊。

  print('you must input a int number')


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2669192/,如需轉載,請註明出處,否則將追究法律責任。

相關文章