zoukankan      html  css  js  c++  java
  • 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方法。

    如需转载,请注明出处,否则本人会追究法律责任!
  • 相关阅读:
    转:C#操作摄像头
    C# Memcached缓存
    WCF:调用方未由服务器进行身份验证
    SQL Server 存储过程进行分页查询
    SQL Server T-SQL高级查询
    C#设计模式总结(转)
    C#中构造函数和析构函数区别
    C#: static关键字的作用(转)
    C#结构体和类的区别(转)
    .NET多线程编程(转)
  • 原文地址:https://www.cnblogs.com/hacker001/p/10081716.html
Copyright © 2011-2022 走看看