zoukankan      html  css  js  c++  java
  • Python基础系列----语法、数据类型、变量、编码

    1.基本语法                                                                                       

      Python的语法比较简单,采用缩进的方式。

    # print absolute value of an integer:
    a = 100
    if a >= 0:
        print(a)
    else:
        print(-a)
    View Code

      在上面代码中,以‘# ’是注释的标识符,可以记录当前代码所代表的意义,解释器会自动忽略这部分内容。

      当语句以‘:’结尾时,缩进语句视为代码块。

      在Python中,通常我们以4个空格的缩进来进行区分。由于个人习惯原因,可以在每句结束之后加一个‘;’号。通常在Python中,默认以换行为新的一行,若想在一行输入多句语句,一定要加‘;’,否则报错。由于Python采用缩进的语法,在你复制,粘贴语句时,一定要注意,重新检查当前代码的缩进格式。IDE很难格式化代码。

      注意:在Python中,对大小写十分敏感,如果大小写错误,会报错。

    2.数据类型                                                                                        

      数据类型:一个值的集合以及定义在这个值集上的一组操作

      Python提供的基本数据类型主要有:布尔类型、整型、浮点型、字符串、空值、列表、元组、集合、字典等等。在这里主要介绍布尔类型、整型、浮点型、字符串、空值,其他的后续介绍。

      2.1布尔类型                                                                                                               

        在Python中,None、任何数值中的0、空字符串、空元组、空列表、空字典都被当做false,还要自定义的 方法返回0或者false,则其实例当做False,其他对象均为Ture。

    >>>True
     True
    >>>False
     False
    >>>1>0
     True
    >>>1>2
     False
    View Code

         布尔类型只有两个值,不是true,就是false。布尔值可以进行运算,主要包括and,or,not

          a.and  与运算,只有所有都为true,返回结果为true

          b.or    或运算,只要其中有一个为true,返回结果为true

          c.not  是非运算,它是一个但亩运算符,把true变为false,false变为true

    >>>True and True
        True
    >>>True and False
        False
    >>>False and False
        False
    
    >>>True or False or True
        True
    
    >>>not True
        False
    >>>not False
        True
    View Code

      2.2整形                                                                                                                     

        在Python内部对整数的处理分为普通整数和长整数,普通整数长度为机器位长,通常都是32位,超过这个范围的整数就自动当长整数处理,而长整数的范围几乎完全没限制。例如:1,2,-1,1000000

      2.3浮点型                                                                                                                  

        Python的浮点数就是数学中的小数,类似C#语言中的double。在运算中,整数与浮点数运算的结果是浮点数,浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是相等的。整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。

      2.4字符串                                                                                                                  

       Python字符串即可以用单引号也可以用双引号括起来,甚至还可以用三引号括起来。例如:‘abc’,"abc",'''I'm OK'''等。''或""本身只是一种表示方式,不是字符串的一部分。

        如果字符串内部既包含'又包含",可以使用转义符来标识。转义字符可以转义很多字符,比如 表示换行, 表示制表符,字符本身也要转义,所以\表示的字符就是。

        如果字符串里面有很多字符都需要转义,就需要加很多,为了简化,Python还允许用r''表示''内部的字符串默认不转义.如果字符串内部有很多换行,用 写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容

      2.5空值                                                                                                                     

      空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

    3.变量                                                                                       

    变量名必须是大小写英文、数字和_的组合,且不能用数字开头.变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错

    a = 'ABC' 
    b = a 
    a = 'XYZ'
    print(b)

      执行a = 'ABC',解释器创建了字符串'ABC'和变量a,并把a指向'ABC':

      执行b = a,解释器创建了变量b,并把b指向a指向的字符串'ABC':

      执行a = 'XYZ',解释器创建了字符串'XYZ',并把a的指向改为'XYZ',但b并没有更改:

     

      最后打印变量b,输出值为‘ABC’。

    4.编码                                                                                             

      在创建Python文件时,有些IDE会在文件最上方有这样一段代码  

    #-*- coding: UTF-8 -*-

      这段代码表示,当前文件以utf-8的格式编码。有时,在浏览网页,或者打开文件时,发现全部是一堆看不懂的字符串,这就是乱码,也是由文件编码导致的。由于每个国家的语言不同,各国有各国的标准,如果多种语言的文本混合其中,这时就会导致乱码。因此为了将所有语言统一到一套编码规范中,产生了Unicode,这样就不会再存在乱码的情况了。 Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。在Python中,我们通常都需要指定当前文件具体的一种编码格式,避免后期产品乱码的情况。

      4.1ASCII编码和Unicode编码的区别:                                                                        

        ASCII编码是1个字节,而Unicode编码通常是2个字节。
        字母A用ASCII编码是十进制的65,二进制的01000001;
        字符0用ASCII编码是十进制的48,二进制的00110000,注意字符'0'和整数0是不同的;
        汉字中已经超出了ASCII编码的范围,用Unicode编码是十进制的20013,二进制的01001110 00101101。

      如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。 所以,本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间

        

    字符 ASCIIUnicodeUTF-8
    A 01000001 00000000 01000001 01000001
    x 01001110 00101101 11100100 10111000 10101101

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

      在Python中, ord()函数获取字符的整数表示; chr()函数把编码转换为对应的字符。

    >>> ord('A')
    65
    >>> ord('')
    20013
    >>> chr(66)
    'B'
    >>> chr(25991)
    ''

      由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。对bytes类型的数据用带b前缀的单引号或双引号表示:x = b'ABC'。要注意区分'ABC'和b'ABC',前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节

      以Unicode表示的str通过encode()方法可以编码为指定的bytes。要把bytes变为str,就需要用decode()方法

    >>> 'ABC'.encode('ascii')
    b'ABC'
    >>> '中文'.encode('utf-8')
    b'xe4xb8xadxe6x96x87'
    View Code

      Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行。#!/usr/bin/env python3# -*- coding: utf-8 -*-。第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

      4.2格式化                                                                                                                   

        采用的格式化方式和C语言是一致的,用%实现。

    >>> 'Hello, %s' % 'world''Hello, world'
    >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000) 'Hi, Michael, you have $1000000.'

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

         常见占位符:%d(整数),%f(浮点数),%s(字符串),%x(十六进制整数)

         格式化整数和浮点数还可以指定是否补0和整数与小数的位数

    >>> '%2d-%02d' % (3, 1)
    ' 3-01'>>> '%.2f' % 3.1415926'3.14'

          有些时候,字符串里面的%是一个普通字符,这个时候就需要转义,用%%来表示一个%

    >>> 'growth rate: %d %%' % 7'growth rate: 7 %'

    5.写在最后                                                                                       

      以上就是Python的一些基本语法、数据类型、编码知识,有存在错误或不足的地方,及时沟通改正。下篇的时间可能要稍微朝后推迟了,周末需要去做个身体检查,也希望大家的身体棒棒的! 

  • 相关阅读:
    指令周期与机器周期
    MFC使用Access数据库
    函数指针的用途
    大端模式和小端模式
    Matlab信号展开
    EL表达式的11个内置对象
    JSP 4个域对象、7个动作指令、9个内置对象
    阿里巴巴java代码规范
    HDDATA基本注意事项
    SVN相关
  • 原文地址:https://www.cnblogs.com/zcy-xy/p/5614394.html
Copyright © 2011-2022 走看看