Python 基础知识 之 数值类型、各类运算符及运算符优先级

Python 基础知识之数值类型与运算符

1. 数值类型

1.1 整数类型:int

  • 定义:表示没有小数部分的数值,包括正整数、负整数和 0。
  • 示例
    num1 = 10
    num2 = -20
    num3 = 0
    print(type(num1))  # <class 'int'>
    print(type(num2))  # <class 'int'>
    print(type(num3))  # <class 'int'>
    

1.2 浮点类型:float

  • 定义:表示小数。

  • round() 函数:用于四舍五入,可以指定保留的小数位数。

    • round(number):将数字四舍五入到最接近的整数。

    • round(number, ndigits):将数字四舍五入到小数点后 ndigits 位。

    • round()函数在处理中间值(如0.5)时的行为可能会因Python版本而异。在Python 3中,round()函数采用银行家舍入法(也称为四舍六入五成双),即当需要舍入的数字正好是中间值时,会舍入到最近的偶数。

    • 示例

      print(round(3.14159))  # 3
      print(round(3.14159, 2))  # 3.14
      print(round(2.5))  # 2(银行家舍入法)
      print(round(3.5))  # 4(银行家舍入法)
      
  • 浮点数运算

    a = 3.12 + 6
    print(a)  # 9.120000000000001
    print(round(a, 2))  # 9.12
    

1.3 布尔类型:bool

  • 定义:用于表示逻辑值,只有两个值:TrueFalse

  • 注意事项

    • TrueFalse 必须严格区分大小写。

    • 布尔值可以当作整数对待:True 相当于 1,False 相当于 0。

    • 非 0 的整数和非空字符串的布尔值都是 True

    • 示例

      x = True
      print(x)  # True
      print(type(x))  # <class 'bool'>
      print(x + 10)  # 11
      print(False + 10)  # 10
      print(bool(18))  # True
      print(bool(0))  # False
      print(bool('Hello'))  # True
      print(bool(''))  # False
      

1.4 复数类型:complex

  • 定义:表示复数,形式为 a + bj,其中 a 是实部,b 是虚部,j 是虚数单位。
  • 示例
    ma = 1 + 2j
    ma2 = 2 + 3j
    print(ma + ma2)  # (3+5j)
    print(type(ma))  # <class 'complex'>
    

1.5 字符串类型:str

  • 定义:字符串是不可变的字符序列,可以使用单引号、双引号或三引号定义。
  • 示例
    str1 = 'Hello'
    str2 = "World"
    str3 = """Python"""
    print(type(str1))  # <class 'str'>
    print(type(str2))  # <class 'str'>
    print(type(str3))  # <class 'str'>
    
  • 具体操作见:https://www.cnblogs.com/kyle-7Qc/p/18538243

1.6 数值类型之间的转换

  • int():将浮点数或字符串转换为整数。

    print(int(3.14))  # 3
    print(int('100'))  # 100
    
  • float():将整数或字符串转换为浮点数。

    print(float(10))  # 10.0
    print(float('3.14'))  # 3.14
    
  • str():将任何类型转换为字符串。

    print(str(10))  # '10'
    print(str(3.14))  # '3.14'
    
  • 将字符串转成int或float时报错情况

      # print(int('18a'))  #ValueError: invalid literal for int() with base 10: '18a'    18a不是十进制数
      # print(int('3.14'))  #ValueError: invalid literal for int() with base 10: '3.14'  3.14不是整数
      # print(float('45a,987')) # ValueError: could not convert string to float: '45a,987'  a没办法转
    

2. 运算符

2.1 算术运算符

  • 运算符及其描述
    运算符 描述
    + 加法
    - 减法
    * 乘法
    / 除法(结果为浮点数)
    // 整除(向下取整)
    % 取余
    ** 幂运算
  • 示例
    print(1 + 2)  # 3 
    print(3 / 2)  # 1.5 #注意:使用算术运算符/,商一定是浮点数,且除数不能为0
    print(3 // 2)  # 1
    print(3 % 2)  # 1
    print(2 ** 3)  # 8
    
    #使用算术运算符,有浮点数的话,结果也用浮点数表示
    
    '幂运算'
    print(-5 ** 2)  -25
    print(5 ** -2)  0.04
    # 幂运算符比左侧的一元操作符优先级高,比右侧的一元操作符优先级低
    

练习

  • 1.键盘输入一个四位整数,分别输出它的个位,十位,百位,千位上的数
<一>、int型
a=eval(input('请输入一个四位整数:'))
print(a,type(a))
print('个位数字是:',a%10)
print('十位数字是:',a%100//10)
print('百位数字是:',a//100%10)
print('千位数字是:',a//1000)

结果:
	请输入一个四位整数:1234
	1234 <class 'int'>
	个位数字是: 4
	十位数字是: 3
	百位数字是: 2
	千位数字是: 1
---------------------------------------------
<二>、字符串索引
a=input('请输入一个四位整数:')
print(a,type(a))
print('个位数字是:',a[3])
print('十位数字是:',a[2])
print('百位数字是:',a[1])
print('千位数字是:',a[0])

结果:
	请输入一个四位整数:1234
	1234 <class 'str'>
	个位数字是: 4
	十位数字是: 3
	百位数字是: 2
	千位数字是: 1
    1. 数值类型转换
<一>、eval函数
f=eval(input('父亲身高:'))
m=eval(input('母亲身高:'))
s = (f+m) * 0.54

print(s)
-----------------------------------
<二>、类型转换
f=input('父亲身高:')
m=input('母亲身高:')
s = (float(f) + float(m)) * 0.54

print(s)

结果:
父亲身高:183.5
母亲身高:165.5
188.46

2.2 赋值运算符

  • 运算符及其描述

    运算符 描述
    = 简单赋值
    += 加法赋值
    -= 减法赋值
    *= 乘法赋值
    /= 除法赋值
    %= 取余赋值
    **= 幂赋值
    //= 整除赋值
  • 示例

    # python支持链式赋值
    a=b=c=d=100
    print(a,b,c,d)
    结果:100 100 100 100
    # python支持系列解包赋值
    a,b=10,20
    print(a,b)
    结果:10 20
    # 通过解包赋值交换两个变量的值
    a,b=10,20
    print(a,b)
    print('---------------')
    a,b=b,a
    print(a,b)
    结果:
    10 20
    ---------------
    20 10
    --------------------------
    a=20
    b=30
    c=40
    a,b,c=b,c,a
    print(a,b,c)
    结果:30 40 20
    
  • 赋值运算符必须连着写,否则会报错

  • print(10+=3) #报语法错误,纯数字不符合,赋值运算符是针对已存在的变量的

2.3 比较运算符

  • 运算符及其描述
    运算符 描述
    == 等于
    != 不等于
    > 大于
    < 小于
    >= 大于等于
    <= 小于等于
  • 示例
    print(1 == 1)  # True
    print(1 != 2)  # True
    print(1 > 2)   # False
    a='Hello'
    b='Hello'
    print(a==b)
    
    a='World'
    print(a>b) 
    # 比较字符串的大小,即逐一比较字符Unicode编码的大小,如果两个字符串的第1个字符不能比较出大小,则比较两个字符串的第2个字符,直到比较有了结果才结束比较
    	a=[]
    	b=[2,1]
    	print(a>b)
    # 比较列表大小,即逐一比较其中元素的大小,如果两个列表中的第1个元素不能比较出大小,则比较两个列表中的第2个元素,直到比较有了结果才结束比较。注意,在两个列表中元素类型要兼容
    	a=['2']
    	print(a>b) #TypeError: '>' not supported between instances of 'str' and 'int'  TypeError:在“str”和“int”的实例之间不支持“>”
    结果:
    	True
    	True
    	False
    

2.4 逻辑运算符

  • 运算符及其描述
    运算符 描述
    and 逻辑与
    or 逻辑或
    not 逻辑非
  • 示例
    print(True and True)  # True
    print(True or False)  # True
    print(not True)       # False
    
    a=1
    b=0
    def f1():    #定义一个函数f1(),
    	print('--进入函数f1--') 
    	return  True 
    print(a>b or f1())   #表达式(a>b)为True,结果确定为True,f1()函数不会被调用
    print(a<b or f1())   #表达式(a<b)为False,结果不确定,f1()函数会被调用
    print(a<b and f1())  #表达式(a<b)为False,结果确定为False,f1()函数不会被调用
    print(a>b and f1())  #表达式(a>b)为True,结果不确定f1()函数会被调用
    
    结果:
    	True
    	--进入函数f1--
    	True
    	False
    	--进入函数f1--
    	True
    

2.5 位运算符

  • 运算符及其描述
    运算符 描述
    & 按位与
    | 按位或
    ^ 按位异或
    ~ 按位取反
    << 左移
    >> 右移
  • 示例
    print(5 & 3)  # 1
    print(5 | 3)  # 7
    print(5 ^ 3)  # 6
    

image

2.6 运算符优先级

  • 运算符优先级从高到低:
    1. 括号 ()

    2. 指数 **

    3. 乘法、除法、取模、整除 * / % //

    4. 加法、减法 + -

    5. 比较运算符 == != > < >= <=

    6. 逻辑运算符 not and or

    7. 赋值运算符 = += -= *= /= %= //= **=


posted @ 2024-12-28 18:33  kyle_7Qc  阅读(124)  评论(0)    收藏  举报