首頁  >  文章  >  後端開發  >  Python資料型別入門實例程式碼解析

Python資料型別入門實例程式碼解析

王林
王林轉載
2023-05-07 23:40:06866瀏覽

變數

變數儲存值。在python 中,這些是變數命名約定:

  • 變數應以字母(最好是小寫)或底線開頭,後面可以跟數字或底線

  • #Snake case是變數的常規寫法如user_name,單字間用底線隔開(Javascript推薦駝峰命名,例如:userName

  • #它們區分大小寫

  • 不能直接命名關鍵字變數(查看官方文件《Python 關鍵字》)

Python資料型別入門實例程式碼解析

那如果,真的犯了這個錯,會怎麼樣呢?舉個例子:

>>> if = 1
SyntaxError: invalid syntax
>>> print(and)
SyntaxError: invalid syntax
>>> def = "hi"
SyntaxError: invalid syntax

看到沒有?直接提示語法錯誤。

除了不能使用關鍵字作為標識符,前面我們也強調過了,也不能使用內建函數同名的標識符。 Python有許多內建函數,以sum為例,這是一個求和的函數,我們看一下錯誤的命名所導致的後果:

>>> sum([1,2,3,4])
10
>>> sum = "错误标识符名"
>>> sum([1,2,3,4])
Traceback (most recent call last):
  File "<pyshell>", line 1, in <module>
    sum([1,2,3,4])
TypeError: 'str' object is not callable</module></pyshell>

先不管sum([1,2,3,4])的意義,它的作用是把1/2/3/4加在一起得到10,然後錯誤的給一個變數也取了個sum的標識符名稱,再後面又調用sum([1,2,3, 4])的時候,程式拋出異常,錯誤原因是str不是可呼叫的型別。歸根到底就是sum這個名字重名了的原因。

資料型別

簡單來說,資料型別是一種表示值的方式。在我們的現實世界中,我們將字母、數字、符號作為不同類型的常用值。同樣,Python 包含以下基本資料型態:

  • int(整數)

  • ##float(浮點數)

  • ##str(字串)
  • bool(布林值)
  • #list(清單)
  • #tuple(元祖)
  • set(集合)

dict(字典)

  • complex(複數)

  • None(空值)

  • 這些是Python 中可用的標準資料類型。要建立我們自己的自訂類型,需要使用類別。也可以透過匯入外部庫或模組來使用專門的資料類型。

  • 相反,在JavaScript 中,有以下可用的原始型別:
  • number (數字:整數和小數)
  • string(字串)
  • boolean(布林值)
  • #symbol(符號:唯一、不可變)

bigInt(大整數)

null(空值)

  • undefined(

    物件
  • 也是非原始類型)
  • 今天我只是花時間整理Python 的數字和字串類型。
  • 數字

  • 有3 種數字資料型別:

int(儲存無限大小的整數)
#float(儲存浮點實數值)

complex(我現在只是跳過它,因為我了解到它不常用,類似於JavaScript 中的bigInt)。

相較之下,JavaScript 有兩種數值資料型,
NumberBigInttype函數用於確定值或表達式的類型。 (類似於 JavaScript中的

typeof
運算子)

num = 100 # variable assignement
    print(type(num)) # <class>

    num2 = 99.99
    print(type(num2)) # <class>

    expression1 = num * 10
    print(type(expression1)) # <class>

    expression2 = num + num2
    print(type(expression2)) # <class></class></class></class></class>

#在Python 中,變數賦值是透過編寫名稱並使用=運算子賦值來實現的。

在 JavaScript 中,變數名稱需要以var,const或let關鍵字開頭。

數學計算

###對於數學計算,除了前面提到過的簡單的加減乘除等等,更多的科學計算需要導入###math###這個庫,它包含了絕大多數我們可能需要的科學計算函數,如下表。有一些內建的數學函數可以讓我們輕鬆計算各種數學運算。 ##############################函數###

傳回值( 描述)

#abs(x)

傳回數字的絕對值,如abs(-10) 傳回10

#ceil(x)

##回傳數字的上入整數,如math.ceil(4.1) 傳回5

#exp(x)

回傳e的x次方(ex),如math.exp(1) 回傳2.718281828459045

fabs(x)

返回數字的絕對值,如math.fabs(-10) 傳回10.0

floor(x)

返回數字的下舍整數,如math.floor(4.9)傳回4

#log(x)

如math.log(math.e)回傳1.0,math.log(100,10)回傳2.0

log10(x)

傳回以10為基數的x的對數,如math.log10(100)回傳2.0

max(x1, x2,. ..)

傳回給定參數的最大值,參數可以為序列。

min(x1, x2,...)

#傳回給定參數的最小值,參數可以為序列。

modf(x)

#傳回x的整數部分與小數部分,兩部分的數值符號與x相同,整數部分以浮點型表示。

pow(x, y)

#x**y 運算後的值。

round(x [,n])

#傳回浮點數x的四捨五入值,如給n值,則代表舍入到小數點後的位數。

sqrt(x)

#傳回數字x的平方根

acos(x)

#傳回x的反餘弦弧度值。

asin(x)

#傳回x的反正弦弧度值。

atan(x)

#傳回x的反正切弧度值。

atan2(y, x)

#傳回給定的 X 及 Y 座標值的反正切值。

cos(x)

#傳回x的弧度的餘弦值。

hypot(x, y)

#傳回歐幾里德範數sqrt(xx yy)

sin(x)

#傳回的x弧度的正弦值。

tan(x)

#傳回x弧度的正切值。

degrees(x)

#將弧度轉換為角度,如degrees(math.pi/2) ,回傳90.0

radians(x)

將角度轉換為弧度

print(round(2.1)) # 2
    print(round(5.9)) # 6
    print(abs(-34)) # 34

以及两个数学常量:

常量

描述

pi

数学常量 pi(圆周率,一般以π来表示)

e

数学常量 e,e即自然常数(自然常数)。

下面是一些应用展示,注意最后的角度调用方式:

>>> 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中最常用的数据类型之一,使用单引号或双引号来创建字符串,使用三引号创建多行字符串。字符串要么使用两个单引号,要么两个双引号,不能一单一双!Python不支持单字符类型,单字符在Python中也是作为一个字符串使用。

字符串是不可变的序列数据类型,不能直接修改字符串本身,和数字类型一样!Python3全面支持Unicode编码,所有的字符串都是Unicode字符串,所以传统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>
    print(type(name2)) # <class>
    print(type(name3)) # <class>
    print(type(name4)) # <class></class></class></class></class>
>>> var1 = 'Hello World!'
>>> var2 = "Jack"
>>> var3 = ""                   # 空字符串
>>> var4 = "it's apple"         # 双引号中可以嵌套单引号
>>> var5 = 'This is "PLANE"!'   # 单引号中可以嵌套双引号
>>> var6 = 'what is 'your'name'
SyntaxError: invalid syntax

但是单引号嵌套单引号或者双引号嵌套双引号就会出现歧义。

>>> a = "haha"
>>> b = a
>>> a = "xixi"
>>> a is b
False
>>> a[1] = "z"
Traceback (most recent call last):
  File "<pyshell>", line 1, in <module>
    a[1] = "z"
TypeError: 'str' object does not support item assignment</module></pyshell>

虽然字符串本身不可变,但可以像列表序列一样,通过方括号加下标的方式,访问或者获取它的子串,当然也包括切片操作。这一切都不会修改字符串本身,当然也符合字符串不可变的原则。

>>> 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

类型转换

与存在隐式类型转换(又名强制类型转换)的 Javascript 不同,如果使用不同类型执行操作,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 中,需要显式转换类型才能执行不同类型的操作:

user_name = 'John'
    age = 40
    print(user_name + str(age)) # John40
    print(type str(age)) # <class></class>

同样,字符串也可以转换为数字:

lucky_number = 7
    lucky_number_stringified = str(7)
    lucky_number_extracted = int(lucky_number_stringified)
    print(lucky_number_extracted) # 7

以上是Python資料型別入門實例程式碼解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除