zoukankan      html  css  js  c++  java
  • python的基本数据类型:Number、String的学习笔记

    一、变量

    1、Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。(和java不同)

    2、在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。

    3、等号(=)用来给变量赋值。

    4、多个变量赋值:

    #方法一
    a = b = c = 1 
    
    #方法二
    a, b, c = 1, 2, "runoob"

    二、标准的6种数据类型

    三、Number

    Python3 支持 int、float、bool、complex(复数)

    在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。

    3.1、 type() 函数

    查询变量所指的对象类型

    a,b,c,d = 1,2.2,True,1+3j 
    print('''type(a),type(b),type(c),type(d)''') 
    
    #输出结果 
    <class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

     

    3.2、isinstance(变量,数据类型)

    判断是否是对应的数据类型

    numberType = 1
    print(isinstance(numberType,int))
    numberType2 = 2.2
    print(isinstance(numberType2,float))
    numberType3 = True
    print(isinstance(numberType3,bool))
    numberType4 = 1+1j
    print(isinstance(numberType4,complex))
    print(isinstance(numberType4,int))#不是对应的数据类型
    
    #输出结果
    True
    True
    True
    True
    False#不是对应的数据类型判断结果是False

     

    3.3、isinstance() 和 type() 的区别

    • type()不会认为子类是一种父类类型。
    • isinstance()会认为子类是一种父类类型。
    #如果B继承了A
    class A:
        pass
      
    class B(A):
        pass
    
    isinstance(A(), A)
    True
    
    type(A()) == A
    True
    
    isinstance(B(), A)
    True                  #isinstance 认为子类是一种父类类型
    
    type(B()) == A
    False                 #type 不认为子类是一种父类类型

     

    3.4、issubclass(B,A)

    判断B是否是A的子类。

    Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True,但可以通过 is 来判断类型。

    Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。

     

    3.5、del语句

    当你指定一个值时,Number 对象就会被创建:

    var_a=1
    var_b=2.2

    不需要这些对象时,可以用del语句删除一些对象引用

    语法:del var_a,var_b...

     

    3.6、数值运算

    >>> 5 + 4  # 加法
    9
    >>> 4.3 - 2 # 减法
    2.3
    >>> 3 * 7  # 乘法
    21
    >>> 2 / 4  # 除法,得到一个浮点数
    0.5
    >>> 2 // 4 # 除法,得到一个整数
    0
    >>> 17 % 3 # 取余
    2
    >>> 2 ** 5 # 乘方
    32

     

    四、String

    1、字符编码

    字符串也是一种数据类型,但是,字符串比较特殊的是有一个编码问题。

    在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

    (因为我经常混乱所以提醒一下自己:内存和硬盘不是同一个东西)

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

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

     

    2、String的特点

    • Python 中单引号 ' 和双引号 " 使用完全相同。
    • 使用三引号(''' 或 """)可以指定一个多行字符串。
    • 转义符 \。反斜杠\还可以作为续行符
    • 反斜杠可以用来转义,使用 r 可以让反斜杠不发生转义。 如 r"this is a line with \n" 则 \n 会显示,并不是换行。
    • 按字面意义级联字符串,如 "this " "is " "string" 会被自动转换为 this is string
    • 字符串可以用 + 运算符连接在一起,用 * 运算符重复,与*结合的数字为复制的次数。
    • Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
    • Python 中的字符串不能改变。如果向一个索引位置赋值,比如word[0] = 'm'会导致错误。
    • Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
    • 字符串的截取的语法格式如下:变量[头下标:尾下标:步长]

     

    3、访问字符串中的值

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

    Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的语法格式如下:变量[头下标:尾下标]

    索引值以 0 为开始值,-1 为从末尾的开始位置。

     

    我对上图的理解:

    3.1、索引

    #方式一:从前往后[0]开始递增
    >>>str[1]
    'R'
    
    #方式二:从后往前[-1]开始递减
    >>>str[-2]
    'b'

    3.2、截取

    #方式一:从前往后[0:]递增的方式截取
    >>>str[1:]
    'unoob'
    >>>str[1:4]
    'uno'
    
    #方式二:从后往前[:-1]递减
    >>>str[:-2]
    'Runo'
    >>>str[:4]
    'Runo'
    
    #注意截取规则:左闭右开,例:str[:4]不包含第4个字符

     

    4、python字符串运算符

     

    5、python转义字符

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

     

    6、python字符串格式化(3种方法)

    6.1、格式化字符串方法1:%运算符

    基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

    在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。

    如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串

    #例1
    print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
    #输出结果
    我叫 小明 今年 10 岁!
    
    #例2
    'Hi, %s, you have $%d.' % ('Michael', 1000000)
    #输出结果
    'Hi, Michael, you have $1000000.'
    
    #例3
    #格式化整数和浮点数还可以指定是否补0和整数与小数的位数:
    print('%2d-%02d' % (3, 1))
    print('%.2f' % 3.1415926)
    #输出结果
     3-01
    3.14
    
    #例4
    #如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串:
    'Age: %s. Gender: %s' % (25, True)
    #输出结果
    'Age: 25. Gender: True'
    
    #例5
    #字符串里面的%是一个普通字符,这个时候就需要转义,用%%来表示一个%:
    'growth rate: %d %%' % 7
    #输出结果
    'growth rate: 7 %'
    • python格式化字符串的占位符:

    • 格式化操作符辅助指令:

     

     

    6.2、格式化字符串方法2:format()

    字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}{1}……,不过这种方式写起来比%要麻烦得多:

    >>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
    'Hello, 小明, 成绩提升了 17.1%'

     

    6.3、格式化字符串方法3:f-string

    f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去

    用了这种方式明显更简单了,不用再去判断使用 %s,还是 %d。

    #
    >>> r = 2.5
    >>> s = 3.14 * r ** 2
    >>> print(f'The area of a circle with radius {r} is {s:.2f}')
    The area of a circle with radius 2.5 is 19.62
    #上述代码中,{r}被变量r的值替换,{s:.2f}被变量s的值替换,并且:后面的.2f指定了格式化参数(即保留两位小数),因此,{s:.2f}的替换结果是19.62。
    
    #
    #在 Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果:
    >>> x = 1
    >>> print(f'{x+1}')   # Python 3.6
    2
    
    >>> x = 1
    >>> print(f'{x+1=}')   # Python 3.8
    x+1=2  # 打印出来的是表达式和结果

    7、python字符串三引号

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

    para_str = """这是一个多行字符串的实例
    多行字符串可以使用制表符
    TAB ( \t )。
    也可以使用换行符 [ \n ]。
    """
    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)
    ''')

     

    9、python字符串的内建函数

    总结

    1、python有6种标准数据类型

    2、number、string

     

  • 相关阅读:
    Leetcode Palindrome Linked List
    Leetcode Delete Node in a Linked List
    Leetcode Ugly Number
    Python 列表解析
    Python 生成器以及应用
    Python 迭代器协议以及可迭代对象、迭代器对象
    Python 装饰器
    Python 函数的嵌套
    Python 闭包函数
    Python 名称空间与作用域
  • 原文地址:https://www.cnblogs.com/zhanym/p/15744351.html
Copyright © 2011-2022 走看看