美文网首页Python 3.7入门篇
4.基本运算符的使用以及编码的问题

4.基本运算符的使用以及编码的问题

作者: HassGy | 来源:发表于2019-07-21 23:35 被阅读33次

    基本运算符(赋值/比较/算术/逻辑)


    基本操作符也称数值操作符,其中按种类来分有以下几种:

    • 赋值运算符
    • 比较运算符
    • 算术运算符
    • 逻辑运算符
    • 身份运算符
    • 成员运算符
    • 位运算符

    今天先介绍前四个运算符的使用方法。

    1.算术运算符

    现有变量 a = 3,b = 8。

    实例 使用用法
    + a + b = 11 加- 两个对象相加。
    - a - b = -5 减- 负数或者两者相减。
    * a * b = 24 乘- 两个数相乘或者返回一个重复若干次的字符串。
    ** a ** b =6561 幂- a的b次幂。
    / a / b =0.375 a除以b。
    % a % b = 3 取模- 除法的余数。
    // a // b = 0 取整- 商的整数部分。

    实现代码如下,试一试!

    #test.py
    #----------------------------------------------------
    # -*- coding: utf-8 -*-
    a = 3
    b = 8
    # a,b = 3,8      多变量赋值
    print(a + b)
    print(a - b)
    print(a*b)
    print(a**b)
    print(a/b)
    print(a%b)
    print(a//b)
    
    Microsoft Windows [版本 10.0.17134.885]
    (c) 2018 Microsoft Corporation。保留所有权利。
    
    C:\Users\ASUS>python
    
    Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> a = 3
    >>> b = 8
    >>> print(a + b)
    11
    >>> print(a - b)
    -5
    >>> print(a*b)
    24
    >>> print(a**b)
    6561
    >>> print(a/b)
    0.375
    >>> print(a%b)
    3
    >>> print(a//b)
    0
    >>>
    
    2.比较运算符

    现有变量 a = 3,b = 3。

    运算符 实例 使用用法
    == a==b 返回True 等于- 比较对象是否相等
    != a!=b 返回False 不等于- 比较是否不相等
    <> a<>b 返回False 不等于- 比较同上!=(python3.0 已废弃)
    > a>b 返回False 大于- a是否大于b
    < a<b 返回False 小于- a是否小于b
    >= a>=b 返回True 大于等于- a是否大于等于b
    <= a<=b 返回True 小于等于- a是否小于等于b

    实现代码如下,试一试:

    #test.py
    #----------------------------------------------------
    # -*- coding: utf-8 -*-
    a = 3
    b = 3
    print(a == b)
    print(a != b)
    # print(a <> b)   python3.0版本已废弃
    print(a > b)
    print(a < b)
    print(a >= b)
    print(a <= b)
    
    Microsoft Windows [版本 10.0.17134.885]
    
    (c) 2018 Microsoft Corporation。保留所有权利。
    
    
    
    C:\Users\ASUS>python
    
    Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
    
    Type "help", "copyright", "credits" or "license" for more information.
    >>> a = 3
    >>> b = 3
    >>> print(a == b)
    True
    >>> print(a != b)
    False
    >>> print(a > b)
    False
    >>> print(a < b)
    False
    >>> print(a >= b)
    True
    >>> print(a <= b)
    True
    >>>
    
    3.赋值运算符

    现有变量m = 4, n = 5。

    运算符 实例 使用用法
    = s=m+n 简单赋值运算符
    += s+=m等效于s=s+m 加法赋值运算符
    -= s-=m等效于s=s-m 减法赋值运算符
    *= s*=m等效于s=s*m 乘法赋值运算符
    /= s/=m等效于s=s/m 除法赋值运算符
    %= s%=m等效于s=s%m 取模赋值运算符
    **= s**=m等效于s=s**m 幂赋值运算符
    //= s//=m等效于s=s//m 取整除赋值运算符

    代码如下,试一下:

    #test.py
    #----------------------------------------------------
    # -*- coding: utf-8 -*-
    m = 4
    n = 5
    
    # 简单赋值
    s = m + n
    print(s)
    # 加法赋值
    s+=m
    print(s)
    # 减法赋值
    s-=m
    print(s)
    # 乘法赋值
    s*=m
    print(s)
    # 除法赋值
    s/=m
    print(s)
    # 取模赋值
    s%=m
    print(s)
    # 幂赋值
    s**=m
    print(s)
    # 取整
    s//=m
    print(s)
    
    Microsoft Windows [版本 10.0.17134.885]
    (c) 2018 Microsoft Corporation。保留所有权利。
    
    C:\Users\ASUS>python
    
    Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> # -*- coding: utf-8 -*-
    ...
    >>> m = 4
    >>> n = 5
    >>> # 简单赋值
    ... s = m + n
    >>> print(s)
    9
    >>> # 加法赋值
    ... s+=m
    >>> print(s)
    13
    >>> # 减法赋值
    ... s-=m
    >>> print(s)
    9
    >>> # 乘法赋值
    ... s*=m
    >>> print(s)
    36
    >>> # 除法赋值
    ... s/=m
    >>> print(s)
    9.0
    >>> # 取模赋值
    ... s%=m
    >>> print(s)
    1.0
    >>> # 幂赋值
    ... s**=m
    >>> print(s)
    1.0
    >>> # 取整
    ... s//=m
    >>> print(s)
    0.0
    >>>
    
    4.逻辑运算符

    现有变量 x = 1, y = 0。

    运算符 实例 使用用法
    and x and y, 返回False bool"与", 它返回y的计算值。
    or x or y,返回True bool"或",有True一定返回True
    not not(x and y),返回True bool"非",它返回的是相反的结果。

    看一下代码,试一下:

    #test.py
    #----------------------------------------------------
    # -*- coding: utf-8 -*-
    x = 1
    y = 0
    
    #与
    print(x and y)
    #或
    print(x or y)
    #非
    print(not (x and y))
    

    要注意一点的是,他们之间的运算优先级问题。
    优先级:or < and < not < (),括号优先级最高!!!

    编码问题


    Python2.x解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill);
    而Python3.x对内容进行编码的默认为utf8,现在都已经Python3.8了。

    ASCII(American Standard Code for Information Interchange)

    早期. 计算机是美国发明的. 普及率不高, ⼀般只是在美国使用. 所以最早的编码结构就是按照美国⼈的习惯来编码的。

    对应数字+字母+特殊字符⼀共也没多少,所以就形成了最早的编码ASCII码. 直到今天ASCII依然深深的影响着我们。

    ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的⼀套电脑编码系统,主要⽤于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(⼀个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

    GBK(国标码)

    随着计算机的发展. 以及普及率的提高. 流行到欧洲和亚洲. 这时ASCII码就不合适了. 比如: 中文汉字有几万个, 而ASCII最多也就256个位置. 所以ASCII不行了。

    怎么办呢? 这时, 不同的国家就提出了不同的编码用来适用于各自的语言环境.比如, 中国的GBK, GB2312, BIG5, ISO-8859-1等等. 这时各个国家都可以使用计算机了.

    GBK, 国标码占用2个字节. 对应ASCII码 GBK直接兼容. 因为计算机底层是用英文写的. 你不支持英⽂肯定不行. 而英文已经使用了ASCII码. 所以GBK要兼容ASCII.

    这里GBK国标码. 前面的ASCII码部分. 由于使用两个字节. 所以对于ASCII码而言. 前9位都是0

    字⺟A:0100 0001 # ASCII
    字⺟A:0000 0000 0100 0001 # 国标码
    
    Unicode(万国码)

    国标码的弊端: 只能中国在使用, 日本就垮了. 所以国标码不满足我们的使用·. 这时提出了⼀个万国码Unicode.
    unicode⼀开始设计是每个字符两个字节. 设计完了. 发现我大中国汉字依然无法进行编码. 只能进行扩充. 扩充成32位也就是4个字节. 这回终于够了。

    UTF-8,UTF-16

    但是, 问题来了?中国字9万多,而unicode可以表示40多亿.,根本用不了, 太浪费了!于是, 就提出了新的UTF编码-可变长度编码。

    UTF-8: 每个字符最少占8位. 每个字符占用的字节数不定.根据⽂字内容进⾏具体编码. 比如,英文. 就一个字节就够了. 汉字占3个字节. 这时即满足了中文. 也满足了节约. 也是目前使用频率最高的⼀种编码。

    UTF-16: 每个字符最少占16位.
    GBK: 每个字符占2个字节, 16位


    单位转换:

    8bit = 1byte
    1024byte = 1KB
    1024KB = 1MB
    1024MB = 1GB
    1024GB = 1TB
    1024TB = 1PB
    1024TB = 1EB
    1024EB = 1ZB
    1024ZB = 1YB
    1024YB = 1NB
    1024NB = 1DB

    常用到TB就够了!!!

    先熟练一下本文章所写知识,其中还有一些补充后续会慢慢撰写提及。

    相关文章

      网友评论

        本文标题:4.基本运算符的使用以及编码的问题

        本文链接:https://www.haomeiwen.com/subject/wbcmlctx.html