Python基礎-數據類型歸納.
1.1、python3 數據類型:
類型 | 含義 | 示例 |
---|---|---|
int | 整型 | 1 |
float | 浮點型 | 1.0 |
bool | 布爾值 | True或False |
complex | 復數 | a+bj |
string | 字符串 | ‘abc123’ |
list | 列表 | [a,b,c] |
tuple | 元組 | (a,b,c) |
set | 集合 | {a,b,c} |
dictionary | 字典 | {a:b,c:d} |
1.2、備註說明
類型 | 說明 |
---|---|
complex | 復數的虛數部分不能省略 |
string | 字符串不能包括有 ‘\’ ,否則輸出的不是原來的字符串 |
list和tuple | list可以修改元素,tuple不能,但是tuple可以包括list等多種數據類型,占用資源多於list |
set | 沒有排列的順序及不會有重復的元素 |
dictionary | 一個鍵對應多個值,但是不能有相同的鍵 |
變量以及類型
<1>變量的定義
在程序中,有時我們需要對2個數據進行求和,那麽該怎樣做呢?
大家類比一下現實生活中,比如去超市買東西,往往咱們需要一個菜籃子,用來進行存儲物品,等到所有的物品都購買完成後,在收銀臺進行結賬即可
如果在程序中,需要把2個數據,或者多個數據進行求和的話,那麽就需要把這些數據先存儲起來,然後把它們累加起來即可
在Python中,存儲一個數據,需要一個叫做變量
的東西,如下示例:
-
num1 = 100 #num1就是一個變量,就好一個模具
- num2 = 87 #num2也是一個變量
- result = num1 + num2 #把num1和num2這兩個"模具"中的數據進行累加,然後放到 result變量中
- 說明:
- 所謂變量,可以理解為模具,如果需要存儲多個數據,最簡單的方式是有多個變量,當然了也可以使用一個
- 程序就是用來處理數據的,而變量就是用來存儲數據的
-
變量定義的規則:
- 變量名只能是 字母、數字或下劃線的任意組合
- 變量名的第一個字符不能是數字
- 以下關鍵字不能聲明為變量名
[‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]
想一想:我們應該讓變量占用多大的空間,保存什麽樣的數據?
<2>變量的類型Python采用動態類型系統。在編譯的時候,Python不會檢查對象是否擁有被調用的方法或者屬性,而是直至運行時,才做出檢查。所以操作對象時可能會拋出異常。不過,雖然Python采用動態類型系統,它同時也是強類型的。Python禁止沒有明確定義的操作,比如數字加字符串。 與其它面向對象語言一樣,Python允許程序員定義類型。構造一個對象只需要像函數一樣調用類型即可,比如,對於前面定義的Fish類型,使用Fish()。類型本身也是特殊類型type的對象(type類型本身也是type對象),這種特殊的設計允許對類型進行反射編程。 Python內置豐富的數據類型。與Java、C++相比,這些數據類型有效地減少代碼的長度。下面這個列表簡要地描述了Python內置數據類型(適用於Python 3.x):
類型 | 描述 | 例子 | 備註 |
---|---|---|---|
str | 一個由字符組成的不可更改的有序串行。 | ‘Wikipedia‘ "Wikipedia" """Spanning multiple lines""" | 在Python 3.x裏,字符串由Unicode字符組成 |
bytes | 一個由字節組成的不可更改的有序串行。 | b‘Some ASCII‘ b"Some ASCII" | |
list | 可以包含多種類型的可改變的有序串行 | [4.0, ‘string‘, True] | |
tuple | 可以包含多種類型的不可改變的有序串行 | (4.0, ‘string‘, True) | |
set, frozenset | 與數學中集合的概念類似。無序的、每個元素唯一。 | {4.0, ‘string‘, True} frozenset([4.0, ‘string‘, True]) | |
dict | 一個可改變的由鍵值對組成的無序串行。 | {‘key1‘: 1.0, 3: False} | |
int | 精度不限的整數 | 42 | |
float | 浮點數。精度與系統相關。 | 3.1415927 | |
complex | 復數 | 3+2.7j | |
bool | 邏輯值。只有兩個值:真、假 | True False |
條件語句
如果我們希望有效的響應用戶的輸入,代碼就需要具有判斷能力。能夠讓程序進行判斷的結構成為條件,條件判斷語句返回的是布爾值真或假,真就執行一條線路,假就執行另外一條線路
- #!/usr/bin/env python
- # -*- coding: encoding -*-
- name = input(‘請輸入用戶名:‘)
- if name == "alex":
- print "超級管理員"
- elif name == "eric":
- print "普通管理員"
- elif name == "tony":
- print "業務主管"
- else:
- print "普通用戶"
While循環
While循環,是一個循環加判斷的組合,滿足判斷條件返回 真(True)開始循環代碼塊,不滿足判斷條件返回 假()不循環
格式:
While 條件:
代碼塊
註意:在While循環裏如果不加終止循環的判斷或者關鍵字,會一直循環(死循環)
如:
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- my_age = 28
- count = 0
- while count < 3:
- user_input = int(input("input your guess num:"))
- if user_input == my_age:
- print("Congratulations, you got it !")
- break
- elif user_input < my_age:
- print("Oops,think bigger!")
- else:
- print("think smaller!")
- count += 1 #每次loop 計數器+1
- else:
- print("猜這麽多次都不對,你個笨蛋.")
for循環
主要用於循環一個字符串列表等
不需要判斷,定義一個循環變量即可
格式:for (循環定義變量) in (被循環的變量) 循環完後自動退出整個循環
打印循環定義變量即可
關鍵字(continue) 跳出本次循環 繼續下次環
關鍵字(break) 跳出整個循環 不在循環
<4>基本數據類型類型 1、數字
2 是一個整數的例子。
長整數 不過是大一些的整數。
3.23和52.3E-4是浮點數的例子。E標記表示10的冪。在這裏,52.3E-4表示52.3 * 10-4。
(-5+4j)和(2.3-4.6j)是復數的例子。
int(整型)
在32位機器上,整數的位數為32位,取值範圍為-2**31~2**31-1,即-2147483648~2147483647在64位系統上,整數的位數為64位,取值範圍為-2**63~2**63-1,即-9223372036854775808~9223372036854775807 long(長整型)
跟C語言不同,Python的長整數沒有指定位寬,即:Python沒有限制長整數數值的大小,但實際上由於機器內存有限,我們使用的長整數數值不可能無限大。
註意,自從Python2.2起,如果整數發生溢出,Python會自動將整數數據轉換為長整數,所以如今在長整數數據後面不加字母L也不會導致嚴重後果了。
float(浮點型)
浮點數用來處理實數,即帶有小數的數字。類似於C語言中的double類型,占8個字節(64位),其中52位表示底,11位表示指數,剩下的一位表示符號。
complex(復數)
復數由實數部分和虛數部分組成,一般形式為x+yj,其中的x是復數的實數部分,y是復數的虛數部分,這裏的x和y都是實數。 註:Python中存在小數字池:-5 ~ 257 2、布爾值 真或假 1 或 0 3、字符串
"hello world"萬惡的字符串拼接: python中的字符串在C語言中體現為是一個字符數組,每次創建字符串時候需要在內存中開辟一塊連續的空,並且一旦需要修改字符串的話,就需要再次開辟空間,萬惡的+號每出現一次就會在內從中重新開辟一塊空間。 字符串格式化
1 2 3 4 |
name = "alex"
print "i am %s " % name
#輸出: i am alex
|
PS: 字符串是 %s;整數 %d;浮點數%f
字符串常用功能:- 移除空白
- 分割
- 長度
- 索引
- 切片
1 2 3 |
name_list = [ ‘alex‘ , ‘seven‘ , ‘eric‘ ]
或
name_list = list ([ ‘alex‘ , ‘seven‘ , ‘eric‘ ])
|
基本操作:
- 索引
- 切片
- 追加
- 刪除
- 長度
- 切片
- 循環
- 包含
1 2 3 |
ages = ( 11 , 22 , 33 , 44 , 55 )
或
ages = tuple (( 11 , 22 , 33 , 44 , 55 ))
|
- 索引
- 切片
- 循環
- 長度
- 包含
1 2 3 |
person = { "name" : "mr.wu" , ‘age‘ : 18 }
或
person = dict ({ "name" : "mr.wu" , ‘age‘ : 18 })
|
常用操作:
- 索引
- 新增
- 刪除
- 鍵、值、鍵值對
- 循環
- 長度
2 是一個整數的例子。
長整數 不過是大一些的整數。
3.23和52.3E-4是浮點數的例子。E標記表示10的冪。在這裏,52.3E-4表示52.3 * 10-4。
(-5+4j)和(2.3-4.6j)是復數的例子。
int(整型)
在32位機器上,整數的位數為32位,取值範圍為-2**31~2**31-1,即-2147483648~2147483647在64位系統上,整數的位數為64位,取值範圍為-2**63~2**63-1,即-9223372036854775808~9223372036854775807 long(長整型)
跟C語言不同,Python的長整數沒有指定位寬,即:Python沒有限制長整數數值的大小,但實際上由於機器內存有限,我們使用的長整數數值不可能無限大。
註意,自從Python2.2起,如果整數發生溢出,Python會自動將整數數據轉換為長整數,所以如今在長整數數據後面不加字母L也不會導致嚴重後果了。
float(浮點型)
浮點數用來處理實數,即帶有小數的數字。類似於C語言中的double類型,占8個字節(64位),其中52位表示底,11位表示指數,剩下的一位表示符號。
complex(復數)
復數由實數部分和虛數部分組成,一般形式為x+yj,其中的x是復數的實數部分,y是復數的虛數部分,這裏的x和y都是實數。 註:Python中存在小數字池:-5 ~ 257 2、布爾值 真或假 1 或 0 3、字符串
"hello world"萬惡的字符串拼接: python中的字符串在C語言中體現為是一個字符數組,每次創建字符串時候需要在內存中開辟一塊連續的空,並且一旦需要修改字符串的話,就需要再次開辟空間,萬惡的+號每出現一次就會在內從中重新開辟一塊空間。 字符串格式化
1 2 3 4 |
name = "alex"
print "i am %s " % name
#輸出: i am alex
|
PS: 字符串是 %s;整數 %d;浮點數%f
字符串常用功能:- 移除空白
- 分割
- 長度
- 索引
- 切片
1 2 3 |
name_list = [ ‘alex‘ , ‘seven‘ , ‘eric‘ ]
或
name_list = list ([ ‘alex‘ , ‘seven‘ , ‘eric‘ ])
|
基本操作:
- 索引
- 切片
- 追加
- 刪除
- 長度
- 切片
- 循環
- 包含
1 2 3 |
ages = ( 11 , 22 , 33 , 44 , 55 )
或
ages = tuple (( 11 , 22 , 33 , 44 , 55 ))
|
- 索引
- 切片
- 循環
- 長度
- 包含
1 2 3 |
person = { "name" : "mr.wu" , ‘age‘ : 18 }
或
person = dict ({ "name" : "mr.wu" , ‘age‘ : 18 })
|
常用操作:
- 索引
- 新增
- 刪除
- 鍵、值、鍵值對
- 循環
- 長度
Python基礎-數據類型歸納.