美文网首页
Python入门——基本运算符和基本类型

Python入门——基本运算符和基本类型

作者: 黑白咖 | 来源:发表于2017-03-11 17:20 被阅读43次

    基本运算

    在了解了怎么安装Python3,,安装IDE之后,接下来我们学习一下Python上面的常用运算符,直接运行解释器后(在Cmd上运行Python),直接在上面进行一些计算,会直接输出答案,要是我们在文件中运行计算题,必须要使用print方法才会有输出,比如

    >>> 1+2
    3
    >>> 1-2
    -1
    >>>1*2
    2
    

    除法/在Python上是有区别的,一般在java中,两个整数相除,结果是整数。但是在Python里面,两个整数相除总是会得到一个浮点型数值(float),比如

    >>> 1/2
    0.5
    >>>1/3
    0.3333333333333333
    >>> 10/6
    1.6666666666666667
    

    所以python上的除法分成两种,一种是使用/相除后总是会获得浮点型数值的,另一种则是使用//运算符,这种做法会获得一个整数数值,丢弃小数部分,比如

    >>> 1//2
    0
    >>>1//3
    0
    >>>10//6
    1
    

    通过**运算符可以计算幂乘方,比如

    >>> 2 ** 3
    8
    >>> 1.4 ** 2
    1.959999999999997
    

    可以看到,普通情况下使用的幂次方是没有问题的,但是对于浮点型的数值使用**运算符就可能会出现一些意想不到的问题。
    使用=给变量赋值,变量在使用之前,必须进行赋值,否则会报错

    >>> var
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'var' is not defined
    

    _下划线,python把最近一个表达式的值赋值给变量它,这样我们就可以通过_来获取上一步的计算结果了,但是只能够在>>>模式下使用

    >>> 1+4
    5
    >>> _
    5
    

    注意给_赋值,否则只会创建一个局部变量,那么我们使用_访问到的都是这个局部变量。

    基本类型

    Python支持多种数据类型,像常用的int和float,不常用的用Decimal,Fraction,Date等,所以我们只需要了解常用的数据类型就好了,对于不常用的类型,不适宜入门,要懂得放弃。
    下面说一下另一种常用的数据类型,字符串类型。
    像很多脚本语言一样,对于字符串,我们使用'xxx'单引号,或者"xxx"表示,使用\反斜杠转义引号,如果:

    >>> ' "asdd" '  #用单引号包含双引号,不需要转义,反之亦然
    ' "asdd" '
    >>> '\''
    "'"
    

    >>>模式下我们会看到输出的字符串会带有引号,使用print()函数输出字符串就会隐藏掉最外层的引号了。

    >>> print(' "aasd" ')
     "aasd" 
    >>>print('\'')
    '
    

    python有一种非常强大的使用原始字符串的语法,在字符串前面加上r,那么就会保留整一个字符串,不需要转义\

    >>>print('\\\\AAA')
    \\AA
    >>>print(r'\\\\AAA')
    \\\\AAA
    

    python还有一种强大的文本编辑能力,使用'''xxx''',或者"""xxx""",在段落末尾使用\反斜杠可以连接末尾和下一段的开头,比如

    >>>print('''
    ...今天是个好天气,早上\
    ...下雨了
    ...''')
    今天是一个好天气,早上下雨了
    >>>print('''
    ...今天是个好天气,早上
    ...下雨了
    ...''')
    今天是个好天气,早上
    下雨了
    

    我们也可以使用一些数学操作符对字符串进行处理

    #加法运算
    >>>print( 'www.'+'baidu.com')
    www.baidu.com
    #乘法运算
    >>>print(3*'w'+'.baidu.com')
    www.baidu.com
    #python还会把两个字符串自动连接起来
    >>>print( 'www' '.baidu.com')
    www.baidu.com
    

    对于自动连接这种情况,我测试过会必须是两个'xx''xx'两个单引号是临近的,这样才会合并成'xxxx',而且这些合并的优先级还挺高的,当然非常不建议使用任何不适合阅读语法书写代码,虽然python主张尽可能少的代码,但是不好阅读的语法还是不要用的好,不然看起来眼都花了...
    像java语法一样,我们也可以把字符串看做是一个字符数组,然后使用下标来访问对应的字符

    >>> str = 'Hello'
    >>> str[0]
    'H'
    >>>str[-1]
    'o'
    

    这也是python比较逆天的地方,不但能够正向访问下标,还可以逆向的,对于长期接触,我们的数组下标依然是从0开始,所以-1代表的是末尾第一位
    另一个非常逆天的语法是切片,习惯了java的语法,其实我是很不习惯python这样很逆天的语法的,所谓切片,顾名思义,就是获取一个指定的片段,切片语法使用[x:x]

    >>> str = 'Hello'
    >>>str[2:1]
    ''#空字符串
    

    所幸找到了一种很好的快速学习切片语法的方式

     +---+---+---+---+---+
     | h | e | l | l | o |
     +---+---+---+---+---+
     0   1   2   3   4   5 
    -5  -4  -3  -2  -1
    

    可以看到两个|之间形成的字符串组合就是我们要得到的切片,如果我们没有定义切片头或者切片尾,像[:3]或者[3:]这样的,默认会填充字符串的头或者尾,对于一切超出切片范围的数值,不会报错,当字符串的头或尾来处理,比如

    >>>str = 'hello'
    >>>str[0:10]
    'hello'
    >>>str[-10:5]
    'hello'
    

    必须满足切片的左边位置大于右边位置,注意,不是数值上大于,比如上面的例子,[-10:5]是满足的,但是[-3:1]就不满足了,因为-3的位置在1的后面。
    字符串一旦赋值,是无法被更改的。比如下面的例子就会报错

    >>> str[0] = 'e'
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'str' object does not support item assignment
    >>>
    

    如果我们需要修改当前字符串的一个字符,只能将字符串分成两个切片,插入待插入的字符串后,返回一个新的字符串
    要查询字符串的长度,使用len(str)函数获取字符串长度

    >>> len('hello')
    5
    

    相关文章

      网友评论

          本文标题:Python入门——基本运算符和基本类型

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