詳解python變量與數據類型
這篇文章我們學習 Python 變量與數據類型
變量
變量來源于數學,是計算機語言中能儲存計算結果或能表示值抽象概念,變量可以通過變量名訪問。在 Python 中 變量命名規定,必須是大小寫英文,數字和 下劃線(_)的組合,并且不能用數字開頭。
變量命名規則:
變量名只能是字母,數字和下劃線的任意組合 變量名第一個字符不能是數字 變量名區分大小寫,大小寫字母被認為是兩個不同的字符 特殊關鍵字不能命名為變量名聲明變量
Python 中的變量不需要聲明,每個變量在使用前都必須賦值,變量賦值以后該變量才會被創建。在 Python 中,變量就是變量,它沒有類型,我們所說的”類型”是變量所指的內存中對象的類型。
name = 'neo'
上述代碼聲明了一個變量,變量名為:name, 變量 name 的值為”neo”。
變量賦值
在 Python 中,等號 = 是賦值語句,可以把任意數據類型賦值給變量,同一個變量可以反復賦值,而且可以是不同類型的變量。
a = 123 # a 是整數a = ’abc’ # a 是字符串
這種變量本身類型不固定的語言稱之為動態語言,與之對應的就是靜態語言。靜態語言在定義變量時必須指定變量類型,如果賦值的時候類型不匹配,就會報錯。例如 Java 是靜態語言,這樣賦值就會報錯:
多個變量賦值
Python 允許你同時為多個變量賦值。例如:
a = b = c = 1
以上實例,創建一個整型對象,值為 1,從后向前賦值,三個變量被賦予相同的數值。
您也可以為多個對象指定多個變量。例如:
a, b, c = 1, 2, 'neo'
以上實例,兩個整型對象 1 和 2 的分配給變量 a 和 b,字符串對象 “neo” 分配給變量 c。
常量
所謂常量就是不能變的變量,比如常用的數學常數 π 就是一個常量。在 Python 中,通常用全部大寫的變量名表示常量:
BI = 3.14
但事實上 BI 仍然是個變量,Python 根本無法保證 BI 不會被改變,所以,用全部大寫的變量名表示常量只是一個習慣上的用法,如果你一定要改,語法也不會報錯。
數據類型
Python3 中有六個標準的數據類型:Number(數字)、String(字符串)、List(列表)、Tuple(元組)、Sets(集合)、Dictionary(字典)。
Python3 的六個標準數據類型中:
不可變數據(3 個):Number(數字)、String(字符串)、Tuple(元組); 可變數據(3 個):List(列表)、Dictionary(字典)、Set(集合)。下面我們一一介紹這些數據類型的使用。
Number(數字)
Python3 支持 int、float、bool、complex(復數)。
數字類型是顧名思義是用來存儲數值的,需要記住的是,有點和 Java 的字符串味道差不多,如果改變了數字數據類型的值,將重新分配內存空間。
Python 支持三種不同的數值類型:
整型(Int) - 通常被稱為是整型或整數,是正或負整數,不帶小數點。Python3 整型是沒有限制大小的,可以當作 Long 類型使用,所以 Python3 沒有 Python2 的 Long 類型。 浮點型(float) - 浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250) 復數( (complex)) - 復數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 復數的實部a和虛部b都是浮點型。示例:
#!/usr/bin/python3 counter = 100 # 整型變量miles = 1000.0 # 浮點型變量name = 'test' # 字符串 print (counter)print (miles)print (name)
數字類型轉換
int(x) 將x轉換為一個整數。 float(x) 將x轉換到一個浮點數。 complex(x) 將x轉換到一個復數,實數部分為 x,虛數部分為 0。 complex(x, y) 將 x 和 y 轉換到一個復數,實數部分為 x,虛數部分為 y。x 和 y 是數字表達式。 額外說明和別的語言一樣,數字類型支持各種常見的運算,不過 Python 的運算比別的大多數常見語言都更加豐富,此外,還有大量豐富的方法,提供更高效的開發。
數值運算示例:
print (5 + 4) # 加法 輸出 9print (4.3 - 2) # 減法 輸出 2.3print (3 * 7) # 乘法 輸出 21print (2 / 4) # 除法,得到一個浮點數 輸出 0.5print (2 // 4) # 除法,得到一個整數 輸出 0print (17 % 3) # 取余 輸出 2print (2 ** 5) # 乘方 輸出 32
String(字符串)
創建字符串可以使用單引號、雙引號、三單引號和三雙引號,其中三引號可以多行定義字符串,Python 不支持單字符類型,單字符也在Python也是作為一個字符串使用。
我們定義一個 s=’python’語句,它在計算機中的執行順序是先在內存中創建一個字符串 Python ,在程序棧寄存器中創建一個變量 s,最后把 Python 的地址賦給s 。
再來看看字符串的一些常見操作:
s = ’學習Python’# 切片s[0], s[-1], s[3:], s[::-1]# ’優’, ’n’, ’Python’, ’nohtyP的雅優’# 替換,還可以使用正則表達式替換s.replace(’Python’, ’Java’)# ’學習Java’# 查找,find()、index()、rfind()、rindex()s.find(’P’)# 3, 返回第一次出現的子串的下標s.find(’h’, 2)# 6, 設定下標2開始查找s.find(’23333’)# -1, 查找不到返回-1s.index(’y’)# 4, 返回第一次出現的子串的下標s.index(’P’)# 不同與find(), 查找不到會拋出異常# 轉大小寫, upper()、lower()、swapcase()、capitalize()、istitle()、isupper()、islower()s.upper()# ’學習PYTHON’s.swapcase()# ’學習pYTHON’, 大小寫互換s.istitle()# Trues.islower()# False# 去空格,strip()、lstrip()、rstrip()# 格式化s1 = ’%s %s’ % (’Windrivder’, 21)# ’Windrivder 21’ s2 = ’{}, {}’.format(21, ’Windridver’)# 推薦使用format格式化字符串s3 = ’{0}, {1}, {0}’.format(’Windrivder’, 21)s4 = ’{name}: {age}’.format(age=21, name=’Windrivder’)# 連接與分割,使用 + 連接字符串,每次操作會重新計算、開辟、釋放內存,效率很低,所以推薦使用joinl = [’2017’, ’03’, ’29’, ’22:00’]s5 = ’-’.join(l)# ’2017-03-29-22:00’s6 = s5.split(’-’)# [’2017’, ’03’, ’29’, ’22:00’]
以上是一些常見的操作。
另外還有一點需要注意的是字符串編碼,所有的 Python 字符串都是 Unicode 字符串,當需要將文件保存到外設或進行網絡傳輸時,就要進行編碼轉換,將字符轉換為字節,以提高效率。
# encode 將字符轉換為字節str = ’學習Python’ print (str.encode())# 默認編碼是 UTF-8 輸出:b’xe5xadxa6xe4xb9xa0Python’print (str.encode(’gbk’)) # 輸出 b’xd1xa7xcfxb0Python’# decode 將字節轉換為字符print (str.encode().decode(’utf8’)) # 輸出 ’學習Python’print (str.encode(’gbk’).decode(’gbk’)) # 輸出 ’學習Python’
List(列表)
類似 Java List 集合接口
列表是寫在方括號 [] 之間、用逗號分隔開的元素列表,列表可以完成大多數集合類的數據結構實現。列表中元素的類型可以不相同,它支持數字,字符串甚至可以包含列表(所謂嵌套),列表中的元素是可以改變。
示例:
Weekday = [’Monday’,’Tuesday’,’Wednesday’,’Thursday’,’Friday’]print(Weekday[0]) # 輸出 Monday#list 搜索print(Weekday.index('Wednesday'))#list 增加元素Weekday.append('new')print(Weekday)# list 刪除Weekday.remove('Thursday') print(Weekday)
Tuple(元組)
元組(tuple)與列表類似,不同之處在于元組的元素不能修改。元組寫在小括號 () 里,元素之間用逗號隔開,組中的元素類型也可以不相同。
示例:
letters = (’a’,’b’,’c’,’d’,’e’,’f’,’g’)print(letters[0]) # 輸出 ’a’print(letters[0:3]) # 輸出一組 (’a’, ’b’, ’c’)
Sets(集合)
類似 Java Set 集合接口
集合(set)是一個無序不重復元素的序列,使用大括號 {} 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 {} ,因為 {} 是用來創建一個空字典。
集合不能被切片也不能被索引,除了做集合運算之外,集合元素可以被添加還有刪除:
示例:
a_set = {1,2,3,4}# 添加a_set.add(5)print(a_set) # 輸出{1, 2, 3, 4, 5}# 刪除a_set.discard(5)print(a_set) # 輸出{1, 2, 3, 4}
Dictionary(字典)
類似 Java Map 集合接口
字典是一種映射類型,它的元素是鍵值對,字典的關鍵字必須為不可變類型,且不能重復。創建空字典使用 {} 。
示例:
Logo_code = { ’BIDU’:’Baidu’, ’SINA’:’Sina’, ’YOKU’:’Youku’ }print(Logo_code)# 輸出{’BIDU’: ’Baidu’, ’YOKU’: ’Youku’, ’SINA’: ’Sina’}print (Logo_code[’SINA’]) # 輸出鍵為 ’one’ 的值print (Logo_code.keys()) # 輸出所有鍵print (Logo_code.values()) # 輸出所有值print (len(Logo_code)) # 輸出字段長度
總結
本節給大家介紹了 Python 變量 和六種標準的數據類型,給大家演示了變量的使用,以及六個六種標準的數據類型的常用操作。
示例代碼:Python-100-days-day003
以上就是詳解python變量與數據類型的詳細內容,更多關于python變量與數據類型的資料請關注好吧啦網其它相關文章!
相關文章:
1. 將properties文件的配置設置為整個Web應用的全局變量實現方法2. 一文秒懂idea的git插件跟翻譯插件3. docker compose idea CreateProcess error=2 系統找不到指定的文件的問題4. PHP設計模式之迭代器模式Iterator實例分析【對象行為型】5. 在Vue 中獲取下拉框的文本及選項值操作6. JS中的常見數組遍歷案例詳解(forEach, map, filter, sort, reduce, every)7. SpringBoot集成SSM、Dubbo、Redis、JSP的案例小結及思路講解8. python爬蟲利用代理池更換IP的方法步驟9. JS算法題解旋轉數組方法示例10. python中pandas.read_csv()函數的深入講解
