zoukankan      html  css  js  c++  java
  • 第4天 | 12天搞定Python,基础语法(下)

    为了方便你的学习,减轻负重,我特意将基础语法分成上下两部分。希望你喜欢这种方式,如果不喜欢,你可以跟我说,反正我是不会改的,哈哈~~。

    如果上部分,你还没看的话,先去看《第4天 | 12天搞定Python,基础语法(上)》。

    python在处理数据时,不可避免的要进行数据类型之间的转换,诸如整型和字符串之间的转换。

    4.5 类型转换

    转换有隐式和显式转换,隐式也称自动转换,不用做处理。显示转换,也称为数据类型的强制类型转换,通过内置函数实现。

    1. 转为整型

    通过内置函数int(x [,base]),可把x值转为整数。其中base是进制,默认是10进制。

    # 浮点数转为整型,截断小数点
    f = 99.5
    to = int(f)
    print(to)
    # 布尔转为整型
    b = True
    to = int(b)
    print(to)
    # 字符串转为整型
    s = "520"
    to = int(s)
    print(to)
    # 转为16进制
    print(int(s, base=16))

    输出结果

    99
    1
    520
    1312

    转换是不是都会成功?--不一定,像字符串内容,比如“酷”,就没办法转成整数。有时候扮酷,是需要付出代价的。

    # 非数字内容
    s = "酷"
    # 转换为整数,报错
    to = int(s)
    print(to)

    输出结果

      to = int(s)
    ValueError: invalid literal for int() with base 10: '酷'

    既然有异常,那得处理。可在转换前,通过isdigit()函数判断字符串内容是否全是数字,是才转换,不是的话,做其他处理。这里提前剧透条件语句。

    # 非数字内容
    s = "酷"
    if s.isdigit():
        to = int(s)
        print(to)
    else:
        print("做其他处理。")

    输出结果

    做其他处理。

    2. 转为浮点型

    通过float(x),把x值转为浮点型。

    # 整型转为浮点数
    i = 99
    to = float(i)
    print(to)
    # 字符串转为浮点数
    s = "520.00"
    to = float(s)
    print(to)

    输出结果

    99.0
    520.0

    字符串转为浮点数的过程中,也存在不成功的情况。可惜Python没有直接的函数,可以判断是否为浮点数。最简单直接的判断方法,就是用捕捉异常的方法进行处理。

    # 字符串内容
    s = "13.10d"
    try:
        f = float(s)
        print("真的是浮点型")
    except ValueError:
        print("不是浮点型")

    输出结果

    不是浮点型

    3. 转为布尔型

    在Python里,整型、浮点型、字符串都可以转为布尔类型。除了0为False,其他的全为True。其中字符串记得用eval()取得表达式,否则"0"返回的是True。因为“0”不是0。

    # 整型转为布尔
    i = 0
    to = bool(i)
    print(to)
    # 浮点数转为布尔
    f = 99.2
    to = bool(f)
    print(to)
    # 字符串转为布尔
    s = "0"
    to = bool(eval(s))
    print(to)

    输出结果

    False
    True
    False

    4. 转为字符串

    通过str(x)函数把x内容,转为字符串,x是指定对象,包括整型、浮点数、数组等等。

    # 整型转为字符串
    i = 102
    to = str(i)
    print(to)
    # 浮点数转为字符串
    f = 36.6
    to = str(f)
    print(to)
    # 布尔转为字符串
    b = 0
    to = str(b)
    print(to)
    # 数组转为字符串
    array = ["101", "102", "103", "106"]
    to = str(array)
    print(to)

    好的,类型转换到这就告一个段落了,下面,我们进入运算符。

    4.6 运算符

    一进入小学,咱们就与算术结下了不解之缘,从手算、心算到口算,越算越聪明,越聪明越算,沉迷在算术的世界。可是自从了计算机以后,连写字都懒了,更别提算术了。

    谁叫计算机除了可以进行加减乘除算术运算外,还可以进行左边值与右边值的比较运算,再者还可以通过and、or、not运算符进行的逻辑运算呢。

    1. 算术运算

    算术运算,就是通过+、-、*、%、//符号进行加减乘除、取余和取模的运算,其中被除数不能为0。

    (1) 整数和整数相加减、相乘,结果是整数。除的时候,若出现小数,自动转为浮点数。

    a = 12  # 整数
    b = 20  # 浮点数
    # 加法运算
    c = a + b
    print(c)
    # 减法运算
    c = a - b
    print(c)
    # 乘法运算
    c = a * b
    print(c)
    # 除法运算,结果有小数
    c = a / b
    print(c)

    输出结果

    32
    -8
    240
    0.6

    (2) 整数和浮点数运算,整数会自动升为浮点数,这就是隐式转换,而用转换函数那些的称作显式转换。

    a = 20      # 整数
    b = 20.25  # 浮点数
    # 加法运算
    c = a + b
    print(c)
    # 减法运算
    c = a - b
    print(c)
    # 乘法运算
    print(c)
    # 除法运算
    c = a / b
    print(c)

    输出结果

    40.25
    -0.25
    -0.25
    0.9876543209876543

    (3) 浮点数和浮点数进行运算时,结果会出现偏差。像20.65-16.25正确答案应为:4.4,结果却是:4.399999999999999 。

    a = 20.65  # 浮点数
    b = 16.25  # 浮点数
    # 加法运算
    c = a + b
    print(c)
    # 减法运算
    c = a - b
    print(c)
    # 乘法运算
    print(c)
    # 除法运算
    c = a / b
    print(c)

    输出结果

    36.9
    4.399999999999999
    4.399999999999999
    1.2707692307692307

    (4) 浮点数偏差问题,可以通过Decimal函数进行解决。

    from decimal import Decimal
    
    a = 20.65  # 浮点数
    b = 16.25  # 浮点数
    # 减法运算
    c = Decimal(str(a)) - Decimal(str(b))
    print(float(c))

    输出结果

    4.4

    (5) 取模取余

    通过%进行取余运算,结果返回除法的余数。通过//进行取模运算,结果返回商的整数部分。

    a = 20
    b = 16
    # 取余运算
    c = a % b
    print(c)
    # 取模运算
    c = a // b
    print(c)

    输出结果

    4
    1

    (6) 幂运算

    通过**进行幂运算,结果返回x的y次幂,跟内置函数pow()相同作用。

    x = 2
    y = 5
    # 冥运算
    z = x ** y
    print(z)
    # 冥函数
    z = pow(x, y)
    print(z)

    输出结果

    32
    32

    (7) 复合赋值

    复合运算符是算术运算符和赋值运算符合在一起的一种运算符,主要作用方便改变变量的值,有+=、-= 、*=、/=、%=、//=、**= 这7种。a += b ,表示a = a + b。其他的也类似。

    a = 10
    b = 20
    # 加法赋值运算
    a += b
    print(a)
    # 乘法赋值运算
    c = 2
    d = 50
    d *= c
    print(d)

    输出结果

    30
    100

    2. 比较运算

    比较运算,就是通过比较运算符(<、<=、> 、>=、==、!=),对左右两边的对象进行比较,结果返回布尔值:True或False。

    a = 10
    b = 20
    c = 10
    # 小于 < 比较
    print(a < b)
    # 小于等于 <= 比较
    print(a <= c)
    # 大于 > 比较
    print(a > b)
    # 大于等于 >= 比较
    print(a >= c)
    # 等于 == 比较
    print(a == b)
    # 不等于 != 比较
    print(a != b)

    输出结果

    True
    True
    False
    True
    False
    True

    3. 比较函数

    Python3.7内置了比较函数 operator.lt(a, b) 、operator.le(a, b) 、operator.eq(a, b) 、operator.ne(a, b) 、operator.ge(a, b) 、operator.gt(a, b),对应比较运算符,如operator.lt(a, b)对应小于<。 比较运算符一般跟条件语句搭配使用,而用operator.lt(a, b)这种函数,可以直接得到结果布尔True或False)结果。

    import operator
    a = 10
    b = 20
    print(operator.lt(a, b))

    输出结果

    True

    还有另一种表达形式:operator.__lt__(a, b) 、operator.__le__(a, b) 、operator.__eq__(a, b) 、operator.__ne__(a, b) 、operator.__ge__(a, b) ,含义是一样的。

    import operator
    a = 10
    b = 20
    print(operator.__lt__(a, b))

    输出结果

    True

    4. 逻辑运算

    逻辑运算,就是通过与(and)、或(or)、非(not)运算符进行的运算。and表示它的前后条件都成立时,返回True,否则返回False。or表示它的前后条件有一个为True,便返回True,否则返回False。 Not的意思是取相反值,True的not是False,False的not是True。

    a = 10
    b = 20
    c = 30
    d = True
    # and组合比较
    result = a > b and a > c
    print(result)
    # or组合比较
    result = a < b or a > c
    print(result)
    # not
    result = not d
    print(result)

    输出结果

    False
    True
    False

    好了,基础语法到这就全部介绍完了。能学到这的朋友,为自己鼓鼓掌,对着显示器,说一句:瞧你那个傻样,呵呵~~

    一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,可关注今日头条:老陈说编程。我将分享Python,前端(小程序)和App方面的编程知识。关注我,没错的。

  • 相关阅读:
    redis的两种安装方法
    http头部信息
    软件测试技术知识
    github使用
    3 python之基础概要
    2 Python之编程语言介绍及变量
    1 Python入门及计算机硬件知识
    Linux常用命令
    CMDB小练习
    CMDB和运维自动化
  • 原文地址:https://www.cnblogs.com/halfcode/p/13825664.html
Copyright © 2011-2022 走看看