zoukankan      html  css  js  c++  java
  • PYTHON 100days学习笔记007-1:python数据类型补充(1)

    day007:python数据类型补充(1)

    [TOC]

    看了python 100天学习的数据类型,感觉挺糊涂的,今天专门又找资料好好看看,做下补充,算是很详细了,方便以后查询

    参考文件:

    Python3 数字(Number)

    Python3 字符串

    Python3 列表

    1、数字Number

    Python 数字数据类型用于存储数值。

    数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。

    以下实例在变量赋值时 Number 对象将被创建:

    var1 = 1
    var2 = 10
    
    

    也可以使用del语句删除一些数字对象的引用。

    del语句的语法是:

    
    del var1[,var2[,var3[....,varN]]]]`
    
    

    以通过使用del语句删除单个或多个对象的引用,例如

    var1 = 1
    var2 = 3
    var3 = 10
    
    print(var1, var2, var3)
    del var2, var3
    print(var2)
    print(var3)
    
    1 3 10
    
    
    
    ---------------------------------------------------------------------------
    
    NameError                                 Traceback (most recent call last)
    
    <ipython-input-3-962ea90d73f7> in <module>()
          5 print(var1, var2, var3)
          6 del var2, var3
    ----> 7 print(var2)
          8 print(var3)
    
    
    NameError: name 'var2' is not defined
    

    Python 支持三种不同的数值类型:

    • 整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。

    • 浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)

    • 复数( (complex)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

    我们可以使用十六进制和八进制来代表整数

    num1 = 0xA0F # 十六进制
    print(num1)
    
    num2 = 0O37 # 八进制
    print(num2)
    
    2575
    31
    
    int float complex
    10 0.0 3.14j
    100 15.20 45.j
    -786 -21.9 9.322e-36j
    080 32.3+e18 .876j
    -0490 -90. -.6545+0J
    -0x260 -32.54e100 3e+26J
    0x69 70.2-E12 4.53e-7j
    • Python支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

    1.1 Python 数字类型转换

    有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。

    • int(x) 将x转换为一个整数。

    • float(x) 将x转换到一个浮点数。

    • complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。

    • complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。

    以下实例将浮点数变量 a 转换为整数:

    a = 1.0
    
    x = int(a)
    
    print(a)
    print(x)
    
    1.0
    1
    

    1.2 Python 数字运算

    Python 解释器可以作为一个简单的计算器,您可以在解释器里输入一个表达式,它将输出表达式的值。

    表达式的语法很直白:+, -, */, 和其它语言(如Pascal或C)里一样。例如:

    
    2 + 2
    4
    50 - 5*6
    20
    (50 - 5*6) / 4
    5.0
    8 / 5  # 总是返回一个浮点数
    1.6
    
    

    注意:在不同的机器上浮点运算的结果可能会不一样。

    在整数除法中,除法 / 总是返回一个浮点数,如果只想得到整数的结果,丢弃可能的分数部分,可以使用运算符 // :

    >>> 17 / 3  # 整数除法返回浮点型
    5.666666666666667
    >>>
    >>> 17 // 3  # 整数除法返回向下取整后的结果
    5
    >>> 17 % 3  # %操作符返回除法的余数
    2
    >>> 5 * 3 + 2 
    17
    
    

    注意:// 得到的并不一定是整数类型的数,它与分母分子的数据类型有关系。

    
    >>> 7//2
    3
    >>> 7.0//2
    3.0
    >>> 7//2.0
    3.0
    >>>
    
    

    等号=用于给变量赋值。赋值之后,除了下一个提示符,解释器不会显示任何结果。

    width = 20
    height = 5 * 9
    x = width * height
    print(x)
    
    900
    

    Python 可以使用 ** 操作来进行幂运算:

    x = 5 ** 2 # 5的平方
    y = 2 ** 7 # 2的7次方
    
    print(x)
    
    print(y)
    
    25
    128
    

    变量在使用前必须先"定义"(即赋予变量一个值),否则会出现错误

    print(n)
    
    ---------------------------------------------------------------------------
    
    NameError                                 Traceback (most recent call last)
    
    <ipython-input-3-f9824853b7fc> in <module>()
    ----> 1 n
          2 print(n)
    
    
    NameError: name 'n' is not defined
    

    不同类型的数混合运算时会将整数转换为浮点数:

    >>> 3 * 3.75 / 1.5
    7.5
    >>> 7.0 / 2
    3.5
    
    

    在交互模式中,最后被输出的表达式结果被赋值给变量 _ 。例如:

    >>> tax = 12.5 / 100
    >>> price = 100.50
    >>> price * tax
    12.5625
    >>> price + _
    113.0625
    >>> round(_, 2)
    113.06
    
    

    此处, _ 变量应被用户视为只读变量。

    1.3 数学函数

    函数 返回值 ( 描述 )
    abs(x) 返回数字的绝对值,如abs(-10) 返回 10
    ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5
    cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。
    Python 3 已废弃,使用 (x>y)-(x<y) 替换。
    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的平方根。

    1.4 随机数函数

    随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。

    Python包含以下常用随机数函数:

    函数 描述
    choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数.
    randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1
    random() 随机生成下一个实数,它在[0,1)范围内。
    seed([x]) 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
    shuffle(lst) 将序列的所有元素随机排序
    uniform(x, y) 随机生成下一个实数,它在[x,y]范围内。

    1.5 三角函数

    Python包括以下三角函数:

    函数 描述
    acos(x) 返回x的反余弦弧度值。
    asin(x) 返回x的反正弦弧度值。
    atan(x) 返回x的反正切弧度值。
    atan2(y, x) 返回给定的 X 及 Y 坐标值的反正切值。
    cos(x) 返回x的弧度的余弦值。
    hypot(x, y) 返回欧几里德范数 sqrt(x*x + y*y)。
    sin(x) 返回的x弧度的正弦值。
    tan(x) 返回x弧度的正切值。
    degrees(x) 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
    radians(x) 将角度转换为弧度

    1.6 数学常量

    常量 描述
    pi 数学常量 pi(圆周率,一般以π来表示)
    e 数学常量 e,e即自然常数(自然常数)。

    2、字符串

    字符串是 Python 中最常用的数据类型。我们可以使用引号( ' 或 " )来创建字符串。

    创建字符串很简单,只要为变量分配一个值即可。例如:

    var1 = 'Hello World!'
    var2 = "Runoob"
    
    

    2.1 Python 访问字符串中的值

    Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。

    Python 访问子字符串,可以使用方括号来截取字符串,如下实例:

    var1 = 'Hello World!'
    var2 = 'noob'
    
    print("var1[0]:", var1[0])
    print("var2[1-4]:", var2[1:4])
    
    var1[0]: H
    var2[1-4]: oob
    

    2.2 Python 字符串更新

    你可以截取字符串的一部分并与其他字段拼接,如下实例:

    var1 = 'Hello World!'
    
    print("已更新字符串:", var1[:6] + 'noob!')
    
    已更新字符串: Hello noob!
    

    2.3 python转义字符

    在需要在字符中使用特殊字符时,python用反斜杠()转义字符。如下表:

    转义字符 描述
    (在行尾时) 续行符
    反斜杠符号
    ' 单引号
    " 双引号
    a 响铃
     退格(Backspace)
    00
    换行
    v 纵向制表符
    横向制表符
    回车
    f 换页
    oyy 八进制数,yy代表的字符,例如:o12代表换行
    xyy 十六进制数,yy代表的字符,例如:x0a代表换行
    other 其它的字符以普通格式输出

    2.4 Python字符串运算符

    下表实例变量a值为字符串 "Hello",b变量值为 "Python":

    操作符 描述 实例
    + 字符串连接 a + b 输出结果: HelloPython
    * 重复输出字符串 a*2 输出结果:HelloHello
    [] 通过索引获取字符串中字符 a[1] 输出结果 e
    [ : ] 截取字符串中的一部分,遵循左闭右开原则,str[0,2] 是不包含第 3 个字符的。 a[1:4] 输出结果 ell
    in 成员运算符 - 如果字符串中包含给定的字符返回 True 'H' in a 输出结果 True
    not in 成员运算符 - 如果字符串中不包含给定的字符返回 True 'M' not in a 输出结果 True
    r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。
    原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
    print( r' ' )
    print( R' ' )
    % 格式字符串 请看下一节内容.
    a = "Hello"
    b = "Python"
     
    print("a + b 输出结果:", a + b)
    print("a * 2 输出结果:", a * 2)
    print("a[1] 输出结果:", a[1])
    print("a[1:4] 输出结果:", a[1:4])
     
    if( "H" in a) :
        print("H 在变量 a 中")
    else :
        print("H 不在变量 a 中")
     
    if( "M" not in a) :
        print("M 不在变量 a 中")
    else :
        print("M 在变量 a 中")
     
    print (r'
    ')
    print (R'
    ')
    
    a + b 输出结果: HelloPython
    a * 2 输出结果: HelloHello
    a[1] 输出结果: e
    a[1:4] 输出结果: ell
    H 在变量 a 中
    M 不在变量 a 中
    
    
    
    
    

    2.5 python字符串格式化

    Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

    在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。

    
    print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
    
    

    python字符串格式化符号:

    符 号 描 述
    %c 格式化字符及其ASCII码
    %s 格式化字符串
    %d 格式化整数
    %u 格式化无符号整型
    %o 格式化无符号八进制数
    %x 格式化无符号十六进制数
    %X 格式化无符号十六进制数(大写)
    %f 格式化浮点数字,可指定小数点后的精度
    %e 用科学计数法格式化浮点数
    %E 作用同%e,用科学计数法格式化浮点数
    %g %f和%e的简写
    %G %f 和 %E 的简写
    %p 用十六进制数格式化变量的地址

    格式化操作符辅助指令:

    符号 功能
    * 定义宽度或者小数点精度
    - 用做左对齐
    + 在正数前面显示加号( + )
    <sp> 在正数前面显示空格
    # 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
    0 显示的数字前面填充'0'而不是默认的空格
    % '%%'输出一个单一的'%'
    (var) 映射变量(字典参数)
    m.n. m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

    Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

    2.6 python三引号

    python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。实例如下

    para_str = """这是一个多行字符串的实例
    多行字符串可以使用制表符
    TAB ( 	 )。
    也可以使用换行符 [ 
     ]。
    """
    print (para_str)
    
    这是一个多行字符串的实例
    多行字符串可以使用制表符
    TAB ( 	 )。
    也可以使用换行符 [ 
     ]。
    

    三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。

    一个典型的用例是,当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会非常的繁琐。

    errHTML = '''
    <HTML><HEAD><TITLE>
    Friends CGI Demo</TITLE></HEAD>
    <BODY><H3>ERROR</H3>
    <B>%s</B><P>
    <FORM><INPUT TYPE=button VALUE=Back
    ONCLICK="window.history.back()"></FORM>
    </BODY></HTML>
    '''
    cursor.execute('''
    CREATE TABLE users (  
    login VARCHAR(8), 
    uid INTEGER,
    prid INTEGER)
    ''')
    
    

    2.7 Unicode 字符串

    在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀 u。

    在Python3中,所有的字符串都是Unicode字符串。

    3、列表

    序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

    Python有6个序列的内置类型,但最常见的是列表和元组。

    序列都可以进行的操作包括索引,切片,加,乘,检查成员。

    此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。

    列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。

    列表的数据项不需要具有相同的类型

    创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

    list1 = ['Google', 'Runoob', 1997, 2000];
    list2 = [1, 2, 3, 4, 5, 6, 7];
    list3 = ["a", "b", "c", "d", ""]
    
    

    与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。

    3.1 访问列表中的值

    使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:

    list1 = ['Google', 'Runoob', 1997, 2000];
    list2 = [1, 2, 3, 4, 5, 6, 7 ];
    
    print("list1[0]:", list1[0])
    print("list2[1:5]", list2[1:5])
    
    list1[0]: Google
    list2[1:5] [2, 3, 4, 5]
    

    3.2 更新列表

    你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示:

    list = ['Google', 'Runoob', 1997, 2000]
    
    print("第二个元素为:", list[1])
    
    list[1] = 2001
    
    print("第二个元素为:", list[1])
    
    第二个元素为: Runoob
    第二个元素为: 2001
    

    注意:我们会在接下来的章节讨论append()方法的使用

    3.3 删除列表元素

    可以使用 del 语句来删除列表的的元素,如下实例

    list = ['Google', 'Runoob', 1997, 2000]
    
    print("原始列表:", list)
    del list[2]
    print("删除第三个元素", list)
    
    原始列表: ['Google', 'Runoob', 1997, 2000]
    删除第三个元素 ['Google', 'Runoob', 2000]
    

    注意:我们会在接下来的章节讨论 remove() 方法的使用

    3.4 Python列表脚本操作符

    列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

    如下所示:

    Python 表达式 结果 描述
    len([1, 2, 3]) 3 长度
    [1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
    ['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复
    3 in [1, 2, 3] True 元素是否存在于列表中
    for x in [1, 2, 3]: print(x, end=" ") 1 2 3 迭代

    3.5 Python列表截取与拼接

    Python的列表截取与字符串操作类型,如下所示

    L=['Google', 'Runoob', 'Taobao']

    操作:

    Python 表达式 结果描述
    L[2] 'Taobao' 读取第三个元素
    L[-2] 'Runoob' 从右侧开始读取倒数第二个元素: count from the right
    L[1:] ['Runoob', 'Taobao'] 输出从第二个元素开始后的所有元素
    L=['Google', 'Runoob', 'Taobao']
    
    print(L[2])
    print(L[-2])
    print(L[1:])
    
    Taobao
    Runoob
    ['Runoob', 'Taobao']
    

    列表还支持拼接操作:

    >>>squares = [1, 4, 9, 16, 25]
    >>> squares += [36, 49, 64, 81, 100]
    >>> squares
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    >>>
    
    

    3.6 嵌套列表

    使用嵌套列表即在列表里创建其它列表,例如:

    a = ['a', 'b', 'c']
    n = [1, 2, 3]
    x = [a, n]
    print(x)
    print(x[0])
    print(x[0][1])
    
    
    [['a', 'b', 'c'], [1, 2, 3]]
    ['a', 'b', 'c']
    b
    

    3.7 Python列表函数&方法

    python包含以下函数:

    序号 函数 说明
    1 len(list) 列表元素个数
    2 max(list) 返回列表元素最大值
    3 min(list) 返回列表元素最小值
    4 list(seq) 将元组转换为列表

    Python包含以下方法:

    序号 方法 说明
    1 list.append(obj) 在列表末尾添加新的对象
    2 list.count(obj) 统计某个元素在列表中出现的次数
    3 list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
    4 list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
    5 list.insert(index, obj) 将对象插入列表
    6 list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
    7 list.remove(obj) 移除列表中某个值的第一个匹配项
    8 list.reverse() 反向列表中元素
    9 list.sort( key=None, reverse=False) 对原列表进行排序
    10 list.clear() 清空列表
    11 list.copy() 复制列表

    END
    2019-5-22 9:01:22
  • 相关阅读:
    数据库中表的主键的定义
    软件的三大类型
    常用逻辑公式
    软件开发中常用英文含义
    2017.11.27T19_8zuoye
    2017.11.29T19_B1_9zuoye chihuolianmeng
    2017.12.1T19_B2_1zuoye
    2017.12.6T19_B2_3.4
    2017.12.1T19_B2_2zuoye
    2017.12.6T19_B2_3.2 zuoye
  • 原文地址:https://www.cnblogs.com/yj411511/p/10903809.html
Copyright © 2011-2022 走看看