Python3基本數據類型


1、Python簡介

Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言。Python主要有兩個版本Python 2.x和Python 3.x。Python 團隊計划於2020年停止對2.x版本的支持。

優點:

  • 簡單,優雅,明確
  • 容易上手
  • 有完善的基礎庫可以“站在巨人的肩膀上”開發,還有大量的第三方庫可以使用。

缺點:

  • 不能加密,這是解釋型語法的“通病”
  • 運行速度慢於編譯型語法,因為解釋型語言在運行前要先編譯。

2、開發環境與開發工具

2.1、環境安裝

官網下載Python安裝包:https://www.python.org/downloads/
Windows平台:下載指定的版本完成后,點擊可執行安裝器,根據提示一步步安裝,記得勾選Add Python 3.x to path,不勾選需要手動配置環境變量。
Ubuntu平台:默認是安裝有Python的,也可以在官網上下載指定版本進行安裝,詳情參考:https://ywnz.com/linuxjc/3159.html

Ubuntu打開終端,windows打開cmd,輸入python,如果出現以下情況,則說明安裝成功。如果提示:python不是內部或外部命令,需要檢查環境變量的配置。

2.2、開發工具

  • PyCharm
  • Eclipse+Pydev
  • Intellij IDEA+PyCharm插件
  • Sublime Text

3、基本數據類型

Python基本數據類型包括:數,字符串,字典(dict),列表(list),元組(tuple),布爾值,空值,集合(set),變量。

3.1、布爾值

True表示真,False表示假。布爾值支持與(and),或(or),非(!)運算。規則和數學中的一致。布爾值也可以由表達式計算出來。

>>> 2>2
False
>>> 1<2 and 3>2
True
>>>

3.2、整數

和數學中表示方法一致,比如十進制整數1,2。也可以采用其它進制表示,比如十六進制,八進制。
整數的加減乘除:

>>> 1+2
3
>>> 2-1
1
>>> 1 * 2
2
>>> 1/2
0.5
>>>

3.2、浮點數

浮點數也稱小數,表示方法和數學中一致,比如1.22,3.14157。當浮點數非常大或非常小時,需要用科學計數法表示,e表示10,1.1*10^9即就是1.1e9。浮點數的運算同整數。

3.3、字符串

用雙引號(")或單引號(’)包裹起來的任意文本就是字符串。

>>> 'Hello World'
'Hello World'
  • 如果單引號是字符串的一部分時,需要用到雙引號來表示。
  • 如果字符串本身包含雙引號,需要用到轉義字符\,比如"Hi,\"Lucy\""表示字符串Hi,"Lucy"
  • 如果轉義字符太多,書寫不便時,用r' ',''內不文本默認不轉義。

字符串聲明

str1 = "I love Python3"

字符串長度

>>> len(str1)
14

根據索引取值

索引從0開始

>>> str1[0]
'I'

字符串拼接

>>> str1 + "and Python2"
'I love Python3and Python2'

切片

[n:m]截取字符串的第n到m個字符,左邊右開。

>>> str1[0:5]
'I lov'

格式化

% 將一個值插入到一個字符串%s的地方。

>>> "I love %s" %"Python3"
'I love Python3'

3.4、空值

空值是特殊的值,用None表示。

3.5、變量

和數學中的定義相同,比如,x=1表示x是一個整型變量。

3.6、列表

列表中的各項值不需要具備相同的類型。放在[]中,用逗號(,)隔開。列表中可以嵌套列表。索引是從0開始的。

創建列表

>>> lst1 = [1,"Hi",True,2.3,"Python"]
>>> lst1
[1, 'Hi', True, 2.3, 'Python']
>>> 

根據索引訪問值

>>> lst1[1]
'Hi'
>>>

列表元素個數

>>> len(lst1)
5
>>>

修改元素值

將第二個元素的值修改為Hello

>>> lst1[2]="Hello"
>>> lst1
[1, 'Hi', 'Hello', 2.3, 'Python']
>>> 

新增元素

  • list.append(val):在列表末尾添加新元素。
  • list.insert(index,val):在指定索引的位置插入元素。
>>> lst1
[1, 'Hi', 'Hello', 2.3, 'Python', 'last']
>>> 
>>> lst1.insert(1,"11")
>>> lst1
[1, '11', 'Hi', 'Hello', 2.3, 'Python', 'last']
>>> 

刪除元素

  • list.pop():刪除元素,並返回元素的值,默認最后一個。
  • list.remove(val):刪除列表中第一個匹配的值。
>>> lst1
[1, '11', 'Hi', 'Hello', 2.3, 'Python', 'last']
>>> lst1.pop()
'last'
>>> lst1
[1, '11', 'Hi', 'Hello', 2.3, 'Python']
>>> lst1.remove("11")
>>> lst1
[1, 'Hi', 'Hello', 2.3, 'Python']
>>> 

切片

取列表lst1的第一到第二個元素。

>>> lst1
[1, 'Hi', 'Hello', 2.3, 'Python']
>>> lst1[0:2]
[1, 'Hi']

3.7、字典

字典包裹在花括號({})中,由一個或多個鍵值對組成,鍵值對之間用逗號(,)分隔,鍵與值之間用冒號(:)分隔。鍵必須是不可變的且不可重復,值可以重復。

字典創建

>>> dict1={1:"x",2:"y",3:"z"}
>>> dict1
{1: 'x', 2: 'y', 3: 'z'}

訪問字典里的值

>>> dict1[1]
'x'
>>> 

修改字典的值

>>> dict1[1]="1x"
>>> dict1
{1: '1x', 2: 'y', 3: 'z'}
>>>

刪除字典元素

>>> del dict1[1]
>>> dict1
{2: 'y', 3: 'z'}
>>>

查看字典的方法以及幫助

兩個下划線開頭和結尾的是特殊的變量或方法,先不管。

['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

如果想知道pop方法怎么使用該怎么做呢?

help(dict.pop)
Help on method_descriptor:

pop(...)
    D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
    If key is not found, d is returned if given, otherwise KeyError is raised
(END)

翻譯過來就是:刪除指定的key並返回對應的value,如果d值給了的話,在key不存在時會返回,反之,則拋出KeyError。來實驗一下:

>>> dict1
{2: 'y', 3: 'z'}
>>> dict1.pop(22,"key 22 is not exist")
'key 22 is not exist'
>>> dict1.pop(22)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 22
>>> dict1.pop(2)
'y'
>>>

這種查看幫助文檔的方法同樣也適用於其它數據類型。

3.8、元組

元組和列表類似,是用括號包裹起來的,不同之處在於元組不能修改,所有元組自然沒有新增,修改元組元素值的方法嘍。

創建元組

>>> t1
(1, 2, True, 'Hello')
>>>

當元組只有一個元素時,需要在元素后面加上逗號(,)。

訪問元組中的元素

>>> t1[0]
1
>>>

將列表轉換成元組

>>> lst2=[1,1,2,2]        
>>> lst2
[1, 1, 2, 2]
>>> tuple(lst2)
(1, 1, 2, 2)
>>> 

元組切片

>>> t1[1:2]
(2,)
>>>

刪除元組

>>> del t1
>>> t1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 't1' is not defined
>>> 

3.9、 集合

set和字典類似,set只存儲key,因此set無重復值,創建時會自動過濾重復值,創建set的方法有兩種。

  • {}
  • set()函數創建,創建空的集合必須用set(),因為{}創建的是一個空字典。

創建集合

>>> set1={1,1,2,3}
>>> set1
{1, 2, 3}
>>>

添加元素

  • set.add(val):添加元素val到集合中,如何已存在,則不進行任何操作。
  • set.update(x):x可以是列表,元組,字典等。
>>> set1.add(4)
>>> set1
{1, 2, 3, 4}
>>>
>>> set1.update((1,1,3,4,5))
>>> set1
{1, 2, 3, 4, 5}
>>>

移除元素

  • set.remove(val):刪除元素val,如果不存在,則報錯。
  • set.discard(val):刪除元素val,即使元素不存在,也不會報錯。
>>> set1.remove(6)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 6
>>> set1.discard(6)
>>> 

集合操作

set也可以做數學意義上的交集,並集,補集等操作。

>>> set2
{1, 2, 3}
>>> set1
{1, 2, 3, 4, 5}

集合1中存在而集合2中不存在的元素,即差集。

>>> set1 - set2
{4, 5}
>>> 

集合1和2中都存在的元素,即交集。

>>> set1 & set2
{1, 2, 3}
>>> 

不同時包含集合1和2 中的元素,即補集。

>>> set2 ^ set1
{4, 5}
>>> 

集合1和2中包含的所有元素,即全集。

>>> set1 | set2
{1, 2, 3, 4, 5}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM