python小白之路:运算符和进制

python运算符

算术运算符
比较(关系)
赋值运算符
逻辑运算符
位运算符
成员运算符
身份运算符

数字系统

定义了如何用独特的符号来表示一个数字
位置化数字系统:十进制、二进制、十六进制、八进制

  • 十进制(decimal):

    1. 底为10,用10个符号表示一个数,S = {0,1,2,3,4,5,6,7,8,9}
    2. 552.23 = +(552.23)10(10为下角标格式)
    3. 整数: 224 = + 2 * 10 ** 2 + 2 * 10 ** 1 + 4 * 10 ** 0
    4. 实数: 24.13 = + 2 * 10 ** 1 + 4 * 10 ** 0 + 1 * 10 ** -1 + 3 * 10 ** -2
  • 二进制(binary):

    1. 底为2,用2个符号表示一个数,S = {0,1}
    2. 同理十进制

二进制过长,十进制不便直接显示存储,二者之间没有显然关系,转换不快捷,因此,发明了十六进制和八进制。

  • 十六进制(hexadecimal):

    1. 底为16,用16个符号表示一个数,S = {0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)}
    2. 表示数字方法类似上述方法
  • 八进制(octal):

    1. 底为8,用8个符号表示一个数,S = {0,1,2,3,4,5,6,7}
    2. 表示数字方法类似上述方法
      ##转换:

bin()可以把int转换为二进制字符串,int可以把二进制数字类型转换为十进制

  • 其他进制转十进制:
    数码乘对应位置量再相加即可,代码:\
	f1 = int(0b11100000)
	print(f1)
	    
   >_224_
  • 十进制转其他进制:
    1. 整数部分:连除,代码:
	f = 35 
	f1 = f % 2  # 余数 1
	f2 = f // 2 #商 17
	print(f1,f2)
	f3 = f2 % 2 # 余数 1
	f4 = f2 // 2 #商 8
	print(f3,f4)
	f5 = f4 % 2 # 余数 0
	f6 = f4 // 2 #商 4
	print(f5,f6)
	f7 = f6 % 2 # 余数 0
	f8 = f6 // 2 #商 2
	print(f7,f8)
	f9 = f8 % 2 # 余数 0
	f10 = f8 // 2 #商 1
	print(f9,f10)
	f11 = f10 % 2 # 余数 1
	f12 = f10 // 2 #商 0
	print(f11,f12)
   >_1 17
     1 8
     0 4
     0 2
     0 1
     1 0_

       结果:0b100011
  1. 小数部分:连乘,当小数部分为0或者达到足够的位数时结束。代码:\
    f = 0.625
    f1 = f * 2  # 源 0.25 #目标 1
    print(f1)
    f = 0.25
    f1 = f * 2  # 源 0.5 #目标 0
    print(f1)
    f = 0.5
    f1 = f * 2  # 源 0 #目标 1
    print(f1)
    >_1.25\
      0.5\
      1.0_

       结果:.101

关于数码的数量:k=logbN向上取整。b为进制底数,N为十进制数

  • 二进制-十六进制、八进制:
    二进制中的4位恰好是十六进制中的1位
    二进制中的3位恰好是八进制中的1位。直接换算即可。

  • 八进制-十六进制:
    先将八进制转为二进制,然后转十六进制

算术运算符

+、-、*、/、%(取模-返回除法的余数)、**(幂-返回x的y次幂)、//(取整除-向下取接近除数的整数)
##字符串运算

  • 字符串与数字不能直接参与运算
  • 字符串和字符串使用“+”结果是字符串的拼接;字符串和字符串使用“*”结果是重复前面的字符串。
    代码:
    l = 'love'
    s = 'i' + l + 'you'
    f = f'i { l } you'
    f1 = 'i { l } you'.format(l=l)
    f2 = '1'*5
    print(s,f,f1,f2)
    iloveyou iloveyou iloveyou 11111

赋值运算符

=、+=、-=、*=、/=、%=、**=、//=
c+=a 就是 c=c+a , 其他同理

比较运算符

== 、!= :不相等 、> :大于 、< :小于 、>= :大于等于 、<= :小于等于

逻辑运算符

  • and : 布尔“与”, 一个为假就假,都真返回后面那个值
  x = 10
  y = 20
  print(x and y)
  y = 0
  print(x and y)
       20
       0
  • or : 布尔“或”, 一个为真就真,全真返回前面的值,否则返回真的那个值
	  x = 10
	  y = 20
	  print(x or y)
	  y = 0
	  print(x or y)
	  x = 0
	  print(x or y)
       10
       10
       0
  • not : “非”, 取反

##位运算符

  • “&” 与
	  a = 0b111100
	  b = 0b001101
	  print(bin(a&b))
       0b1100
  • “|” 或
	  a = 0b111100
	  b = 0b001101
	  print(bin(a|b))
       0b111101
  • “^” 异或
	  a = 0b111100
	  b = 0b001101
	  print(bin(a^b))
       0b110001
  • “~” 按位取反
	  a = 0b111100
	  b = 0b001101
	  print(bin(~a))
       -0b111101
  • “<<” 左移
	  a = 0b111100
	  b = 0b001101
	  print(bin(a<<2))
       0b1111
  • “>>” 右移
	  a = 0b111100
	  b = 0b001101
	  print(bin(a>>2))
       0b11110000

##其他运算符

  • 成员运算符:in 是否在指定序列中
	    f1 = 'i love you'
	    print('love' in f1)
	    print('love' not in f1)
	    f1 = {'name':2,'love':'i'}
	    print(2 in f1,'love' in f1)
       True
       False
       False True
  • 身份运算符:is 判断两个标识符是不是引用自一个对象
	    a = 10
	    b = 10
	    print(id(a),id(b))
	    print(a is b )
       140722335937072 140722335937072
       True

##优先级

由高到低:
** 、~ +@ -@ 、* / % // 、+ - 、>> << 、& 、^ | 、<= < > >= 、== != 、= %= /= -= += *= **= 、is isnot 、in not in 、not 、and 、or
有小括号的优先运算小括号里的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值