python的數據類型及格式化輸出


dd = float("inf") # dd表示正無窮 ff = float('-inf') # ff表示負無窮

一、數據類型

python3中,有六個標准的數據類型:

  • number 數字
  • string 字符串
  • list 列表
  • tuple 元組
  • sets 集合
  • dictionary 字典

    此外還有 布爾值類型、時間類型。

關系測試: 關鍵字 in 判斷某個字符是否在字符串中;也可以判斷某個元素(或key)是否在列表、元組、集合、字典等中。

1、 數字number

Python3 支持 int、float、bool、complex(復數)。

在Python 3里,整數類型只有 int,即 不區分長整型和整型;

可以用type來查看類型,或者用isinstance來判斷數字類型:

  • >>>a=111
    >>>isinstance(a,int)
    True
    

數字類型轉換:

  • int(x [,base])  將x轉換為一個整數 
    float(x )       將x轉換到一個浮點數 
    complex(real [,imag]) 創建一個復數 
    str(x)          將對象x轉換為字符串 
    repr(x)         將對象x轉換為表達式字符串 
    eval(str)       用來計算在字符串中的有效Python表達式,並返回一個對象 
    tuple(s)        將序列s轉換為一個元組 
    list(s)         將序列s轉換為一個列表 
    chr(x)          將一個整數轉換為一個字符(ASCII碼的十進制數字轉換為字符) 
    unichr(x)       將一個整數轉換為Unicode字符 
    ord(x)          將一個字符轉換為它的整數值(字符轉換為ASCII的十進制數字)
    hex(x)          將一個整數轉換為一個十六進制字符串 
    oct(x)          將一個整數轉換為一個八進制字符串 
    

數學函數:

  • 下面的math是math模塊;
    abs(x)     返回數字的絕對值,如abs(-10) 返回 10
    ceil(x)    返回數字的上入整數,如math.ceil(4.1) 返回 5
    cmp(x, y)  如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
    exp(x)     返回e的x次冪(ex),如math.exp(1) 返回2.718281828459045。e是一個常數為2.71828
    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的平方根,數字可以為負數,返回類型為實數,如math.sqrt(4)返回 2+0j
    

2、 字符串 string

Python中的字符串用單引號(')或雙引號(")或三引號(''')括起來,同時使用反斜杠()轉義特殊字符。

字符串的截取的語法格式如下:

    變量[頭下標:尾下標]      要頭不要尾

如:

a="wjzwz"  
print(a[2:4])      #結果為 zw
print(a[2:])       #從第三個到最后
print(a[0])        #打印第一個
print(a[2:-1])     #打印第三個到倒數第二個字符
print(a[2::-1])    # 從第三個開始,-1表示從右往左取值,一個一個取。如果是-2表示從右往左,每隔一個取一個
print(a + "wjk")   # 拼接字符串,以后拼接字符串更多的用字符串的join方法

注意:字符串的編碼問題。見python的編碼問題章節;

3、 列表list

List(列表) 是 Python 中使用最頻繁的數據類型。

  列表可以完成大多數集合類的數據結構實現。列表中元素的類型可以不相同,它支持數字,字符串甚至可以包含列表(所謂嵌套)。列表是寫在方括號([])之間、用逗號分隔開的元素列表。和字符串一樣,列表同樣可以被索引和截取,列表被截取后返回一個包含所需元素的新列表。

列表截取的語法格式如下:

    變量[頭下標:尾下標]    索引值以 0 為開始值,-1 為從末尾的開始位置。

加號(+)是列表連接運算符,星號(*)是重復操作。

  此外,List內置了有很多方法: 見列表的內置函數章節。

4、 元組tuple

元組(tuple)與列表類似,不同之處在於元組的元素不能修改。元組寫在小括號()里,元素之間用逗號隔開。元組中元素類型可以不相同。

元組可以看做是不可修改的列表(list)。元組也可以進行切片和索引。雖然元組不可變,但是它可以包含可變的對象,如列表。

string、list和tuple都屬於sequence(序列)。當元組中只有一個元素時,也要有逗號,如: tuple=(20,)

數學函數:

cmp(tuple1, tuple2)   #比較兩個元組元素。這個函數是python2的函數。python3中沒有
len(tuple)      #計算元組元素個數。
max(tuple)      #返回元組中元素最大值。
min(tuple)      #返回元組中元素最小值。
tuple(seq)      #將列表轉換為元組。

注:這里元組也可以是列表。

5、 集合set

集合(set)是一個無序不重復元素的序列。基本功能是進行成員關系測試和刪除重復元素。

可以使用大括號 { } 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 { },因為 { } 是用來創建一個空字典。

創建格式:

  •    parame = {value01,value02,...}   或者   set(value)  
    

舉例:

  • #!/usr/bin/env python3
    student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
    
    print(student)   # 輸出集合,重復的元素被自動去掉
    
    # 成員測試
    if('Rose' in student) :
        print('Rose 在集合中')
    else :
        print('Rose 不在集合中')
    
    # set可以進行集合運算
    a = set('abracadabra')
    b = set('alacazam')
    
    print(a)            # 打印 set(['a', 'r', 'b', 'c', 'd'])
    print(a - b)        # a和b的差集,打印 set(['r', 'b', 'd'])
    print(a | b)        # a和b的並集,打印 set(['a', 'c', 'b', 'd', 'm', 'l', 'r', 'z'])
    print(a & b)        # a和b的交集,打印 set(['a', 'c'])
    print(a ^ b)        # a和b中不同時存在的元素,打印 set(['b', 'd', 'm', 'l', 'r', 'z'])
    

6、 字典dictionary

字典(dictionary)是Python中另一個非常有用的內置數據類型。

列表是有序的對象結合,字典是無序的對象集合。兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。

字典是一種映射類型,字典用"{ }"標識,它是一個無序的鍵(key) : 值(value)對集合。

鍵(key)必須使用不可變類型。在同一個字典中,鍵(key)必須是唯一的。

另外,字典類型也有一些內置的函數,例如clear()、keys()、values()等。

注意:

1、字典是一種映射類型,它的元素是鍵值對。
2、字典的關鍵字必須為不可變類型,且不能重復。
3、創建空字典使用 { }。

字典的增刪改查:

dict = {'name': 'Zara', 'age': 7, 'class': 'First'};
dict["age"]=27;                 #修改已有鍵的值
dict["school"]="wutong";        #增加新的鍵/值對

del dict['name'];                 # 刪除鍵是'name'的條目
dict.clear();                     # 清空詞典所有條目
del dict ;                        # 刪除詞典,del也可以刪除任何變量,如列表、元組、字符串等等對象;

函數對字典的操作:

len(dict)           計算字典元素個數,即鍵的總數。
str(dict)           輸出字典可打印的字符串表示。
type(dict)      返回輸入的變量類型,如果變量是字典就返回字典類型。

字典的內置函數(python3):見字典內置函數章節。 補充一個python2的內置方法:

radiansdict.has_key(key)    如果鍵在字典dict里返回true,否則返回false

字典可以嵌套,即字典中key對應的value可以是一個字典等任意對象。

7、布爾值

  • 任何非零數字或非空對象都為真;

  • 數字零、空對象以及特殊對象None都被認作是假;

  • 比較和相等測試會遞歸地應用在數據結構中;

  • 比較和相等測試會返回True或False(1和0的特殊版本);

  • 布爾and和or運算符會返回真或假的操作對象;

邏輯運算遵循短路原則,見運算符章節的邏輯運算部分。

二、格式化輸出

在python中,字符串的格式化輸出,一般都是使用占位符實現。

如下:

name = input("input your name:")
age = input("input your age:")

if age.isdigit():
    age = int(age)
else:
    print("must input digit")
    exit()                      #這兩句可以合並為 exit("must input digit")

msg='''------------ info of %s ---------
Name: %s
age:  %s
''' %(name,name,age)        # 這里的%s為占位符
print(msg)

格式化占位符:

%s      打印字符串                            print ("His name is %s"%("wj"))

%d      打印整數                              print ("He is %d years old"%(25))

%f      打印浮點數,默認精度為保留6位小數       print ("His height is %f m"%(1.71))

%.2f    打印浮點數(指定保留小數點位數)          print ("His height is %.2f m"%(1.71))

%8d     指定占位符寬度,前面加空格補充          print ("Name:%10s Age:%8d Height:%8.2f"%("wj",25,1.71))

%-10s	指定占位符寬度(左對齊)                 print ("Name:%-10s Age:%-8d Height:%-8.2f"%("wj",25,1.71))

%08d    指定占位符(用0當占位符補充;8前面的0,如果沒有,默認是空格)    print ("Name:%-10s Age:%08d Height:%08.2f"%("wj",25,1.71))

另外,格式化輸出,可以使用字符串的內置方法format方法。見字符串內置方法章節format方法。


免責聲明!

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



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