您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Python數(shù)據(jù)類型入門實例代碼分析”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“Python數(shù)據(jù)類型入門實例代碼分析”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
變量存儲值。在 python 中,這些是變量命名約定:
變量應以字母(最好是小寫)或下劃線開頭,后面可以跟數(shù)字或下劃線
Snake case是變量的常規(guī)寫法如user_name
,單詞間用下劃線隔開(Javascript推薦駝峰命名,比如:userName
)
它們區(qū)分大小寫
不能直接命名關(guān)鍵詞變量(查看官方文檔《Python 關(guān)鍵字》)
那么如果,真的犯了這個錯,會怎么樣呢?舉個例子:
>>> if = 1 SyntaxError: invalid syntax >>> print(and) SyntaxError: invalid syntax >>> def = "hi" SyntaxError: invalid syntax
看到?jīng)]有?直接提示語法錯誤。
除了不能使用關(guān)鍵字作為標識符,前面我們也強調(diào)過了,也不能使用內(nèi)置函數(shù)同名的標識符。Python有很多內(nèi)置函數(shù),以sum為例,這是一個求和的函數(shù),我們看一下錯誤的命名導致的后果:
>>> sum([1,2,3,4]) 10 >>> sum = "錯誤標識符名" >>> sum([1,2,3,4]) Traceback (most recent call last): File "<pyshell#19>", line 1, in <module> sum([1,2,3,4]) TypeError: 'str' object is not callable
先不管sum([1,2,3,4])的意義,它的作用是把1/2/3/4加在一起得到10,然后錯誤的給一個變量也取了個sum的標識符名稱,再后面又調(diào)用sum([1,2,3,4])的時候,程序拋出異常,錯誤原因是str不是可調(diào)用的類型。歸根到底就是sum這個名字重名了的原因。
簡單來說,數(shù)據(jù)類型是一種表示值的方式。在我們的現(xiàn)實世界中,我們將字母、數(shù)字、符號作為不同類型的常用值。同樣,Python 包含以下基本數(shù)據(jù)類型:
int(整數(shù))
float(浮點數(shù))
str(字符串)
bool(布爾值)
list(列表)
tuple(元祖)
set(集合)
dict(字典)
complex(復數(shù))
None(空值)
這些是 Python 中可用的標準數(shù)據(jù)類型。要創(chuàng)建我們自己的自定義類型,需要使用類。也可以通過導入外部庫或模塊來使用專門的數(shù)據(jù)類型。
相反,在 JavaScript 中,有以下可用的原始類型:
number (數(shù)字:整數(shù)和小數(shù))
string(字符串)
boolean(布爾值)
symbol(符號:唯一、不可變)
bigInt(大整數(shù))
null(空值)
undefined(對象也是非原始類型)
今天我只是花時間整理 Python 的數(shù)字和字符串類型。
有 3 種數(shù)字數(shù)據(jù)類型:
int(存儲無限大小的整數(shù))
float(存儲浮點實數(shù)值)
complex(我現(xiàn)在只是跳過它,因為我了解到它不常用,類似于 JavaScript 中的 bigInt)。
相比之下,JavaScript 有兩種數(shù)值數(shù)據(jù)類型,Number和BigInt。type
函數(shù)用于確定值或表達式的類型。(類似于 JavaScript中的typeof
運算符)
num = 100 # variable assignement print(type(num)) # <class 'int'> num2 = 99.99 print(type(num2)) # <class 'float> expression1 = num * 10 print(type(expression1)) # <class 'int'> expression2 = num + num2 print(type(expression2)) # <class 'float'>
在 Python 中,變量賦值是通過編寫名稱并使用
=
運算符賦值來實現(xiàn)的。
在 JavaScript 中,變量名需要以var
,const
或let
關(guān)鍵字開頭。
對于數(shù)學計算,除了前面提到過的簡單的加減乘除等等,更多的科學計算需要導入math
這個庫,它包含了絕大多數(shù)我們可能需要的科學計算函數(shù),如下表。有一些內(nèi)置的數(shù)學函數(shù)可以讓我們輕松計算各種數(shù)學運算。
函數(shù) | 返回值 ( 描述 ) |
abs(x) | 返回數(shù)字的絕對值,如abs(-10) 返回 10 |
ceil(x) | 返回數(shù)字的上入整數(shù),如math.ceil(4.1) 返回 5 |
exp(x) | 返回e的x次冪(ex),如math.exp(1) 返回2.718281828459045 |
fabs(x) | 返回數(shù)字的絕對值,如math.fabs(-10) 返回10.0 |
floor(x) | 返回數(shù)字的下舍整數(shù),如math.floor(4.9)返回 4 |
log(x) | 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
log10(x) | 返回以10為基數(shù)的x的對數(shù),如math.log10(100)返回 2.0 |
max(x1, x2,...) | 返回給定參數(shù)的最大值,參數(shù)可以為序列。 |
min(x1, x2,...) | 返回給定參數(shù)的最小值,參數(shù)可以為序列。 |
modf(x) | 返回x的整數(shù)部分與小數(shù)部分,兩部分的數(shù)值符號與x相同,整數(shù)部分以浮點型表示。 |
pow(x, y) | x**y 運算后的值。 |
round(x [,n]) | 返回浮點數(shù)x的四舍五入值,如給出n值,則代表舍入到小數(shù)點后的位數(shù)。 |
sqrt(x) | 返回數(shù)字x的平方根 |
acos(x) | 返回x的反余弦弧度值。 |
asin(x) | 返回x的反正弦弧度值。 |
atan(x) | 返回x的反正切弧度值。 |
atan2(y, x) | 返回給定的 X 及 Y 坐標值的反正切值。 |
cos(x) | 返回x的弧度的余弦值。 |
hypot(x, y) | 返回歐幾里德范數(shù) sqrt(xx + yy) |
sin(x) | 返回的x弧度的正弦值。 |
tan(x) | 返回x弧度的正切值。 |
degrees(x) | 將弧度轉(zhuǎn)換為角度,如degrees(math.pi/2) , 返回90.0 |
radians(x) | 將角度轉(zhuǎn)換為弧度 |
print(round(2.1)) # 2 print(round(5.9)) # 6 print(abs(-34)) # 34
以及兩個數(shù)學常量:
常量 | 描述 |
pi | 數(shù)學常量 pi(圓周率,一般以π來表示) |
e | 數(shù)學常量 e,e即自然常數(shù)(自然常數(shù))。 |
下面是一些應用展示,注意最后的角度調(diào)用方式:
>>> math.log(2) 0.6931471805599453 >>> math.cos(30) 0.15425144988758405 >>> math.cos(60) -0.9524129804151563 >>> math.sin(30) -0.9880316240928618 >>> math.sin(math.degrees(30)) -0.4097717985741408 >>> math.sin(math.radians(30)) 0.49999999999999994
字符串是Python中最常用的數(shù)據(jù)類型之一,使用單引號或雙引號來創(chuàng)建字符串,使用三引號創(chuàng)建多行字符串。字符串要么使用兩個單引號,要么兩個雙引號,不能一單一雙!Python不支持單字符類型,單字符在Python中也是作為一個字符串使用。
字符串是不可變的序列數(shù)據(jù)類型,不能直接修改字符串本身,和數(shù)字類型一樣!Python3全面支持Unicode編碼,所有的字符串都是Unicode字符串,所以傳統(tǒng)Python2存在的編碼問題不再困擾我們,可以放心大膽的使用中文。
name = 'Python' # string assignment within single quotes name2 = "Python" # string assingment within double quotes name3 = '''This is a a very long string and supports multiline statements as well''' # string assingment within 3 single quotes name4 = 'Hello! \"Rockstar Programmer\"' # string with escaped character sequence print(type(name)) # <class 'str'> print(type(name2)) # <class 'str'> print(type(name3)) # <class 'str'> print(type(name4)) # <class 'str'>
>>> var1 = 'Hello World!' >>> var2 = "Jack" >>> var3 = "" # 空字符串 >>> var4 = "it's apple" # 雙引號中可以嵌套單引號 >>> var5 = 'This is "PLANE"!' # 單引號中可以嵌套雙引號 >>> var6 = 'what is 'your'name' SyntaxError: invalid syntax
但是單引號嵌套單引號或者雙引號嵌套雙引號就會出現(xiàn)歧義。
>>> a = "haha" >>> b = a >>> a = "xixi" >>> a is b False >>> a[1] = "z" Traceback (most recent call last): File "<pyshell#70>", line 1, in <module> a[1] = "z" TypeError: 'str' object does not support item assignment
雖然字符串本身不可變,但可以像列表序列一樣,通過方括號加下標的方式,訪問或者獲取它的子串,當然也包括切片操作。這一切都不會修改字符串本身,當然也符合字符串不可變的原則。
>>> s = "hello world!" >>> s[4] 'o' >>> s[2:6] 'llo ' >>> s 'hello world!'
與 Javascript 類似,可以使用+
運算符連接字符串。它只是連接或“連接”字符串。
first_name = 'Mike' last_name = 'Tyson' print(first_name + ' ' + last_name) # Mike Tyson
與存在隱式類型轉(zhuǎn)換(又名強制類型轉(zhuǎn)換)的 Javascript 不同,如果使用不同類型執(zhí)行操作,Python 將拋出錯誤:
user_name = 'John' age = 40 print(user_name + age) # TypeError: can only concatenate str (not "int") to str # This would work in Javscript where it would convert the result to string type
在 Python 中,需要顯式轉(zhuǎn)換類型才能執(zhí)行不同類型的操作:
user_name = 'John' age = 40 print(user_name + str(age)) # John40 print(type str(age)) # <class 'str'>
同樣,字符串也可以轉(zhuǎn)換為數(shù)字:
lucky_number = 7 lucky_number_stringified = str(7) lucky_number_extracted = int(lucky_number_stringified) print(lucky_number_extracted) # 7
讀到這里,這篇“Python數(shù)據(jù)類型入門實例代碼分析”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。