Python学习打卡【Task1】变量,运算符及数据类型和位运算

一、学习知识点概要

1、单行注释和多行注释,#    ''' '''   """ """

2、各种运算符,常用的有算术运算符,逻辑运算符,比较运算符

3、变量的赋值

4、转换类型

5、最基本的print()函数

二、学习内容

我就挑难点的和易忘的和常用的讲

1、运算符

1)算术运算符

使用 / 得到的数字一般为浮点数(带有小数点的数,因为小数点可移动),即使能够整除得到的结果也为浮点数

而两个整数 // 得到的即为int()类型的整数,但是一个整数和一个浮点数 // 得到的结果为浮点数

使用//得到的都是比真正的商要小的数,会舍去商的小数部分

总结算术运算符:/ 就是大家熟知的除法,% 是求余数,// 是求商

2)位运算符

这会涉及到二进制和原码,补码和反码的知识

https://www.cnblogs.com/zhangziqiu/archive/2011/03/30/computercode.html感兴趣的可以点开链接了解原码,补码和反码的知识

print(bin(4))  # 0b100
print(bin(5))  # 0b101
print(bin(~4), ~4)  # -0b101 -5 (~则将补码中的0变为1,1变为0,最后转换为原码)(反码将原码的0变为1,1变为0;补码则是反码+1)但简单来说就是x = -(x+1)
print(bin(4 & 5), 4 & 5)  # 0b100 4(1为真,0为假,两真则为真)
print(bin(4 | 5), 4 | 5)  # 0b101 5 (有真则为真)
print(bin(4 ^ 5), 4 ^ 5)  # 0b1 1 (两个相反为真,两个相同为假)
print(bin(4 << 2), 4 << 2)  # 0b10000 16 (向左移两位)
print(bin(4 >> 2), 4 >> 2)  # 0b1 1 (向右移两位)

3)其他

一元运算符只有一个操作对象

二元运算符则有两个操作对象

三元运算符则有三个操作对象

if 判断条件:
    执行语句1

else:
    执行语句2
    

2、数据类型和转换

在Python中1和有元素代表Ture,0和无元素代表Flase  (bool)

数字字符串可用int()转换为整数

数字也可以被str()转换为字符串

type(object) 获取类型信息

sinstance(object, classinfo)`判断一个对象是否是一个已知的类型。

 

3、print函数

\n的意思是换行

end=''  可以解决print函数自动换行的问题

sep参数是用来设定print()中的多个对象之间的连接符号是什么,原本print()默认是空格

三、学习问题与解答

decimal模块是什么意思,可以用来干嘛?

当浮点数进行运算时会出现丢失精度,导致结果不对的问题

print(0.1 + 0.2) #0.30000000000000004

因此要使用decimal模块 

#浮点数进行运算会丢失精度,导致结果不正确,原因在计算机的二进制运算
#decimal模块能将二进制转换为十进制,使结果正确

import decimal
a = 0.1
b = 0.3
print(decimal.Decimal(str(b)) - decimal.Decimal(str(a))) # 0.2
print(decimal.Decimal(b) - decimal.Decimal(a)) #0.1999999999999999833466546306

#如果要不丢失精度Decimal类中必须要接收的是 str类型,如果还是传入 float类型,那么精度还是会丢失

如何让一个数字四舍五入,如何让计算更精确?

四、学习总结与思考

1.我认识到了提高计算机计算精度很重要,为此我们需要运用各种方法来保证计算机的精度,例如decimal

2.我们可以使用type来查看对象的类型避免出错

3.学习过程中要学会自己上网查阅各种资料

练习题

1.怎样对python中的代码进行注释?

单行使用#,多行使用"""  """

2.python有哪些运算符,这些运算符的优先级是怎样的?

有算术运算符,比较运算符,逻辑运算符,位运算符,三元运算符,其他运算符

优先级:1.一元运算符高于二元运算符

                2.先算术运算符(+-/*),再移位运算符(>><<),后位运算符(~|&),最后逻辑运算符(and or not)

                3.比较运算符高于逻辑运算符,有括号括号先

3.python 中 `is`, `is not` 与 `==`, `!=` 的区别是什么?

is, is not 对比的是两个变量的内存地址

==,!= 对比的是两个变量的值

当两个变量指向的是内存地址不变的类型时两者是等同的,但当两个变量指向的是地址可变的类型(list,dict,tuple等),则两者是有区别的。

4.python 中包含哪些数据类型?这些数据类型之间如何转换

共有int()整型,float()浮点型和bool()布尔型三种

int(x),可将数字转为整形

float(x),可将数值转换为浮点数

str() 可转换为字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值