zoukankan      html  css  js  c++  java
  • py2 基本数据类型 基本语法

    目录

    上一篇:py1 

    基本语法

    运算符

    1. 算数运算:
    2. 比较运算:
    3. 赋值运算:
    4. 逻辑运算:
    5. 成员运算:
    6. 身份运算:
    7. 位运算:
    8. 三元运算:

    基本数据类型

    1.  Number(数字)
    2.  布尔值

    基本语法

    标识符

    • 第一个字符必须是字母或下划线 
    • 标识符的其他的部分由字母、数字和下划线组成
    • 标识符对大小写敏感

    在 Python 3 中,非 ASCII 标识符也是允许的了(甚至是支持汉字了)。

    python保留字

    保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:

    >>> import keyword
    >>> keyword.kwlist
    ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
    
    

    注释

    Python中单行注释以 # 开头,实例如下:

    #!/usr/bin/python3 
    # 第一个注释 
    print ("Hello, Python!") 
    # 第二个注释

    输出结果为:Hello, Python!

    多行注释可以用多个 # 号,还有 ''' 和 """:(多行注释在python还能当做字符串来使用)

    #!/usr/bin/python3 
    # 第一个注释 
    # 第二个注释 
    ''' 
    第三注释 第四注释
    ''' 
    """ 
    第五注释 第六注释 
    """ 
    print ("Hello, Python!")

    执行以上代码,输出结果为:Hello, Python!

    行与缩进

    python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。

    缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。实例如下:

    if True:
        print ("True")
    else:
        print ("False")

    以下代码最后一行语句缩进数的空格数不一致,会导致运行错误:

    if True:
        print ("Answer")
        print ("True")
    else:
        print ("Answer")
      print ("False")    # 缩进不一致,会导致运行错误

    以上程序由于缩进不一致,执行后会出现类似以下错误:

     File "test.py", line 6
        print ("False")    # 缩进不一致,会导致运行错误
                                          ^
    IndentationError: unindent does not match any outer indentation leve

    多行语句

    Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠()来实现多行语句,例如:

    total = item_one + 
            item_two + 
            item_three

    在 [], {}, 或 () 中的多行语句,不需要使用反斜杠(),例如:

    total = ['item_one', 'item_two', 'item_three',
            'item_four', 'item_five']

    Print输出

    print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""

    x="a"
    y="b"
    # 换行输出
    print( x )
    print( y )
     
    print('---------')
    # 不换行输出
    print( x, end=" " )
    print( y, end=" " )
    print()

    # 每个输出后面加个字符
    print('alex','jim','jack',sep='中文')
    # alex中文jim中文jack

    打印进度条

    import time, sys
    for i in range(50):
        print('#', end='')
        # sys.stdout.write('#')
        sys.stdout.flush()
        time.sleep(0.1)

    用户输入

    #!/usr/bin/env python 
    #_*_coding:utf-8_*_
     
    #name = raw_input("What is your name?") #only on python 2.x
    name = input("What is your name?")
    print("Hello " + name )

    输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:(在cmd中不可见,在python中可见)

    import getpass
    # 将用户输入的内容赋值给 name 变量
    pwd = getpass.getpass("请输入密码:")
    # 打印输入的内容
    print(pwd)

    pyc是什么鬼

    Python是一门解释型语言?

    我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在。如果是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写才对啊!

    为了防止其他学习Python的人也被这句话误解,那么我们就在文中来澄清下这个问题,并且把一些基础概念给理清。

    简述Python的运行过程

    在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件。

    我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。

    当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。

    当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。

    所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。

     

    运算符

    1、算数运算:

    2、比较运算:

    3、赋值运算:

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

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

    多个变量赋值

    Python允许你同时为多个变量赋值。例如:

    a = b = c = 1

    a, b, c = 1, 2, "runoob"

    4、逻辑运算:

    5、成员运算:

    6、身份运算:

    注: id() 函数用于获取对象内存地址。

    a = 10
    b = a
    a = 123
    print(id(a))
    print(id(b))
    print(a is b)
    c = [1,2,3]
    d = c
    c[1] = 4
    print(id(c))
    print(id(d))
    print(d is c)
    
    '''
    140733173719904
    140733173716288
    False
    2292888461896
    2292888461896
    True
    '''
    View Code

    is 与 == 区别:

    is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。

    >>>a = [1, 2, 3]
    >>> b = a
    >>> b is a 
    True
    >>> b == a
    True
    >>> b = a[:]
    >>> b is a
    False
    >>> b == a
    True
    View Code

    7、位运算:

    a = 0011 1100             b = 0000 1101

     *按位取反运算规则(按位取反再加1)   详解http://blog.csdn.net/wenxinwukui234/article/details/42119265

    a = 0011 1100
    
    b = 0000 1101
    
    -----------------
    
    a&b = 0000 1100
    
    a|b = 0011 1101
    
    a^b = 0011 0001
    
    ~a  = 1100 0011
    View Code

    8、三元运算符

    result = 值1  if 条件 else 值2

    如果条件为真,result为值1,否则为值2。

    运算符优先级:

     更多内容详见http://www.runoob.com/python3/python3-basic-operators.html

    基本数据类型

    Python3 中有六个标准的数据类型:

    • Number(数字)
    • String(字符串)
    • List(列表)
    • Tuple(元组)
    • Set(集合)
    • Dictionary(字典)

    Python3 的六个标准数据类型中:

    • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
    • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。 

    1.Number(数字)

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

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

    浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。

    float类型默认保留小数点后16位

    >>> a, b, c, d = 20, 5.5, True, 4+3j
    >>> print(type(a), type(b), type(c), type(d))
    <class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

    此外还可以用 isinstance 来判断:

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

    isinstance 和 type 的区别在于:

    • type()不会认为子类是一种父类类型。
    • isinstance()会认为子类是一种父类类型。

    注意:在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。

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

    var1 = 1

    var2 = 10

    您也可以使用del语句删除一些对象引用:

    del语句的语法是:

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

    您可以通过使用del语句删除单个或多个对象。例如:

    del var

    del var_a, var_b

    数值运算:

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

    注意:

    • 1、Python可以同时为多个变量赋值,如a, b = 1, 2。
    • 2、一个变量可以通过赋值指向不同类型的对象。
    • 3、数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
    • 4、在混合计算时,Python会把整型转换成为浮点数。

    数值类型实例

    intfloatcomplex
    10 0.0 3.14j
    100 15.20 45.j
    -786 -21.9 9.322e-36j
    080 32.3e+18 .876j
    -0490 -90. -.6545+0J
    -0x260 -32.54e100 3e+26J
    0x69 70.2E-12 4.53e-7j

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

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

    >>> number = 0xA0F # 十六进制
    >>> number
    2575
    
    >>> number=0o37 # 八进制
    >>> number
    31

    Python 数字类型转换

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

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

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

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

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

    • bin(x) 将十进制转换为二进制

    • oct(x) 将十进制转换为二进制

    • hex(x) 将十进制转换为十六进制

    • str(x ) 将对象 x 转换为字符串    

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

    >>> a = 1.6  # 舍去小数部分
    >>> int(a)
    1

    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
    >>> 13.648/3.548
    3.8466741826381057
    >>> 13.497%5.1356
    3.2257999999999996 >>> 5 * 3 + 2 17

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

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

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

    >>> width = 20
    >>> height = 5*9
    >>> width * height
    900

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

    >>> 5 ** 2  # 5 的平方
    25
    >>> 2 ** 7  # 2的7次方
    128

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

    >>> n   # 尝试访问一个未定义的变量
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    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

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

     2.布尔值

      True or False
      1 或 0
      “”空字符串为False
      只要字符串不是空就是True “ ”
    Python中,False,0,'',[],{},()都可以视为假
    >>> a = True
    >>> type(a)
    <class 'bool'>
    >>> a = 0
    >>> type(a)
    <class 'int'>
    >>> a = False
    >>> type(a)
    <class 'bool'>
    a = 1
    if a:
    print(a)
    else:
    print(a+10)
    # 输出为 1

     3.扩展数据类型

    • namedtuple():生成可以用名字访问元素内容的tuple子类
    • deque:双端队列
    • Counter:计数器,用来计数
    • OrderedDict:有序字典
    • defaultdict:带有默认值的字典
  • 相关阅读:
    C#微信开发
    3-4:字符串方法
    2-4-1 元组
    2-3-3 列表方法
    2-2-3:序列(字符串)乘法(p32)
    3-3字符串格式化(p47)
    2-2:分片
    2-1:Print date(p28)
    old.2.三次登录机会
    old.2.sum(1-2+3-4+...+99)
  • 原文地址:https://www.cnblogs.com/wlx97e6/p/9307809.html
Copyright © 2011-2022 走看看