我的Python学习笔记【3】

类型转换函数、eval,算法运算符,赋值运算符,比较运算符,逻辑运算符、位运算和运算符的优先级

类型转换函数

(1)数据类型之间的转换

类型转换分为两种:隐式转换、显示转换
在这里插入图片描述

// 数据类型之间的转换
x = 10
y = 3
z = x/y   //在执行除法运算时,将运算结果赋值给z
print(z,type(z))   //隐式转换,通过运算隐式的转了结果的类型
//输出结果为【3.333333333333 <class'float'>】

//float类型转int类型,只保留整数部分
print('float类型转成int类型:',int(3.14))    //3
print('float类型转成int类型:',int(3.9))    //3
print('float类型转成int类型:',int(-3.14))    //-3
print('float类型转成int类型:',int(-3.9))    //-3

//将int类型转成float类型
print('int类型转成float类型:',float(10))      //10.0
//将str类型转为int类型
print(int('100')+int('200'))      //300
//将字符串转为int类型或float类型报错的情况
print(int('18a'))    //valueError,因为18a不是一个十进制的数
print(int('3.14'))      //因为3.14不是一个整数
print(float('45a.987'))     // a是没有办法转的

//chr(),ord()一对,这两个的值一一对应
print(ord('杨'))        //杨在Unicode表中的整数值
print(chr(26472))       //26472整数在Unicode表中对应的字符是什么

//进制之间的转换操作,十进制与其他进制之间的转换,转换之后的结果为字符串类型
print('十进制转成十六进制:',hex(26472))     //0x6768
print('十进制转成八进制:',oct(26472))       //0o63550
print('十进制转成二进制:',bin(26472))       //0b110011101101000

(2)eval函数

Python中的内置函数
用于去掉字符串最外侧的引号,并按照Python语句方式执行去掉引号后的字符串
eval()函数经常和input()函数一起使用

eval的语法格式
变量 = eval(字符串)

// eval函数的使用
s = '3.14+3'
print(s,type(s))     //3.14+3 <class'str'>
x = eval(s)      //使用eval函数去掉s这个字符串中左右的引号,执行加法运算
print(x,type(x))      //6.14000000000000001 <class'float'>

//eval()函数经常和input()函数一起使用,用来获取用户输入的数值
age = eval(input('请输入你的年龄:'))    //input的结果是一个字符串类型,这个语句就是将字符串类型转换为了int类型,相当于int(age)
print(age,type(age))    // 18 <class'int'>

height = eval(input('请输入你的身高:'))
print = (height,type(height))      //187.6 <class'float'>

hello = '北京欢迎你'
print(hello)            //北京欢迎你
print(eval('hello'))      //北京欢迎你
//因为eval去掉了左右的引号,变成了一个没引号的hello,没有引号的hello,是这段代码中的一个变量,这个变量的值是‘北京欢迎你’
print(eval'北京欢迎你')    //报错,说“北京欢迎你”没有定义,没有引号的“北京欢迎你”应该为一个变量,这个变量在代码中没有定义,所以会报错

(3)算术运算符

用于处理四则运算的符号
在这里插入图片描述

// 算术运算符的使用*
print('加法',1+1)
print('减法',1-1)
print('乘法',2*3)
print('除法',10/2)
print('整除',10//3)
print('取余数',10%3)
print('幂运算',2**4)
print(10/0)  //0是不能整除的,会报错

算术运算符的优先级由高到低是:
第一级:**
第二级:*、/、%、//
第三级:+、-

(4)赋值运算符

在这里插入图片描述

// 赋值运算符的使用
x = 20       //直接赋值,直接将20赋值给左侧的变量x
y = 10
x = x+y      //将x+y的和赋值给x,x的值为30
print(x)     //x的值为30
x += y        //相当于x=x+y
print(x)         //40
x -= y        //相当于x=x-y
print(x)         //30
x *= y        //相当于x=x*y
print(x)         //300
x /= y        //相当于x=x/y
print(x)         //30.0     发生了类型转换 x的数据类型为float类型
print(type(x))    //<class'float'>
x %= 2        //相当于x=x%2
print(x)         //0.0
z = 3
y //= z
print(y)        //3
y **= 2
print(y)        //9

//Python支持链式赋值
a=b=c=100    //相当于执行a=100 b=100 c=100
print(a,b,c)      //100  100  100

//Python支持系列解包赋值
a,b = 10,20     //相当于执行了a=10 b=20
print(a,b)      //10  20

//如何交换两个变量的值呢?
a,b = b,a     //将b的值赋给a,将a的值赋给b
print(a,b)      //20  10

(5)比较运算符

在这里插入图片描述

// 比较运算符的使用
print('98大于90吗?',98>90)    //True
print('98小于90吗?',98<90)    //False
print('98等于90吗?',98==90)    //False
print('98不等于90吗?',98!=90)    //True
print('98大于等于90吗?',98>=90)    //True
print('98小于等于90吗?',98<=90)    //True 

(6)逻辑运算符

在这里插入图片描述
在这里插入图片描述

//逻辑运算符的使用
print(8>7 and 6>5)       //True
print(8>7 and 6<5)       //False
print(8<7 and 10/0)       //False, 10/0并没有运算,当第一个表达式的结果为False,直接得结果,不会计算and右侧的表达式了

print(8>7 or 10/0)       //True 左侧的表达式结果为True时,or的右侧表达式就根本不执行运算符

print(not 8>7)       //8>7结果为True,取反后为False

(7)位运算符

位运算符,把数字看作二进制数来进行计算的。
在这里插入图片描述
在这里插入图片描述

// 位运算
print('按位与运算:',12&8)       //8
print('按位或运算:',4|8)       //12
print('按位异或运算:',31^22)    //9
print('按位取反:',~123)       //-124

左右移位
“左移位”运算(<<)是将一个二进制数向左移动指定的位数,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充。
在这里插入图片描述

“右移位”运算 (>>) 是将一个二进制数向右移动指定的位数,右边(低位端)溢出的位被丢弃,左边(高位端)的空位端,如果最高位是0(正数)左侧空位填0,如果最高位是1(负数),左侧空位填1。
在这里插入图片描述

// 位运算    左乘右除
print('左移位:',2<<2)       //8     表示的是2向左移动两位,  2* 2*2
print('左移位:',2<<3)       //16   相当于2* 2*2*2

print('右移位:',8>>2)       //2       向右移动两位相当于 8//2  4//2
print('右移位:',-8>>2)       //-2

在这里插入图片描述

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值