
今天我分享Python运算符的一些技术点,因为在python语言中运算符和变量有这密切的关系。
Python的运算符分类

①算术运算符。
用的比价广泛,加减乘除之类的。
②赋值运算符。
可以理解为把某一个值赋给另外一个值。
③比较运算符。
判断时常用。
④逻辑运算符。
两个布尔类型是何种结果?
⑤位运算符。
二进制的运算符
⑥判断成员运算符。
主要用来判断某个变量是否是另外一个变量的成员。
⑦身份运算符。
判断多个变量是否为同一个变量。
⑧三元运算符。
特殊一个运算符。

总结完Python运算符分类后,先来讲解下算术运算符。
算术运算符
在Python中算数运算符具体如下:

演示1 :算数运算符加减乘除
print(100 + 200)
print(100 - 10)
print(50 * 2)
print(40 / 2)
演示结果:

值得注意的是,在Python中,除法得到的结果是保留16位有效的小数。
例如:
print(40/ 3)
演示结果如下:
若想不保留小数,可用//表示
演示2:算数运算符除法不保留除不尽的小数,取整数!
print(40// 3) #除之后取整数
演示结果:

演示3:除法求余数
print(20 % 6) #除之后取余数
演示结果:

演示4:算数运算符:乘法运算符** 等价于2的8次方
print(2**8) #等价于2*2*2*2*2*2*2*2
演示结果:

通过算术运算符呈现一个小代码案列
"""
输入一个三位数,然后输出每个位置的数字
例如:
890 显示如下:
百位数字:8 十位数字:9 个位数字:0
"""
这样的需求,我刚开始的思路是这样的,先利用算术运算符直接显示结果,然后再利用input输入,最后利用format格式化输出
print(890 //100)
print(890 // 98)
print(890 * 0)
演示1:这个代码是有问题的(仅限于890,如果是别的三位数字就会报错)
num = int(input("请输入一个三位数:"))
bai = num // 100
shi = num //98
ge = num * 0
print("三位数{0}的百位数字:{1} 十位数字:{2} 个位数字:{3}".format(num,bai,shi,ge))
演示结果:

演示问题1:输入其他的三位数字,结果显示不对:

优化演示:改变思路,对任意的三位数字取值算法进行重新计算,代码如下:利用除法算数符的取余取整。
"""
输入一个三位数,然后输出每个位置的数字
例如:
890 显示如下:
百位数字:8 十位数字:9 个位数字:0
"""
print(890 //100)
print(890 % 100 //10)
print(890 % 10)
实验结果:任意输入三位数得出来的结果都是很准确的:

演示2:利用字符串的字节顺序使input输出来满足需求。
注意要利用input来输入,不用做任何运算!
#方法2:
num = input("请输入一个三位数:")
print("三位数{0}的百位数字:{1} 十位数字:{2} 个位数字:{3}".format(num,num[0],num[1],num[2]))
这样写的好处是比较灵活,利用字符串顺序,编号是从0开始的!不是利用算法,核心就是利用下标索引!
演示结果:

当然,以上代码还是有很大的优化空间,如果输入字符串或者小数就会报错的!在以后的项目中会大量使用算术运算符,以后会分享出来。

赋值运算符
核心就是一个=号,在各类开发语言中这个=号不是传统意义的等号,是指把等号右边的值给某个变量,专业术语就做赋值。
在Python官方中对赋值是这样描述的:
其基本形式是在等号左边写赋值语句的目标,而要赋值的对象位于右侧。
左侧的目标可以是变量名,而右侧的对象可以使任何会计算得到的对象的表达式。

我先用一个项目案列来演示一下
用代码完成一个需求:543836秒是多少天?多少小时?多少分钟?多少秒?
首先我来说明下我的计算思路:
543836秒等于多少天?
理解这个问题的时候,首先要计算出一天等于多少秒?
一天24个小时,我们用24小时乘以60分得出多少分钟后,在乘以60秒得出一天总共是86400秒
演示1:将总计的秒数转换成一天,并打印出一天的时间!
其中total = 543836就是一个典型的赋值语句。多少天我用day这个变量来表示!
toltal = 543836 #利用变量定义秒数,典型的赋值运算符,把右边的值赋给左边的变量。
day = toltal// (24 * 60 * 60) # 注意运算符的优先级。
print(day)
演示结果:我们得出543836秒是6天!

我们再从网上去查询相应的转换结果,也可以利用及计算器去查询相应的结果:


剩余的秒数等于多少小时?
首先,我们要知道,在543836换算完天数之后是必有余数的,所以我利用取模的运算符来得到总计的秒数换算完一天所剩的余值(天数,扣除天的时间),再将剩余的天数整除一个一天所用的分钟!
演示2:转换剩余天数所占用的小时。
我定一个变量hour,目标对象的计算表达式我可以写成秒数的总数整除一天的秒数的余数在整除每天占用的结果:
toltal = 543836 #利用变量定义秒数,典型的赋值运算符,把右边的值赋给左边的变量。
day = toltal // (24 * 60 * 60) # 注意运算符的优先级,这里我用括号扩起来。
hour = (toltal % (24 * 60 * 60)) // (60 * 60) #注意我们用取模(余数),取出一天之后得出的小时时间。
543836秒等于多少分?
演示3:我们只需求余。
用秒的总数取天的余数在整数小时的单位!
oltal = 543836 #利用变量定义秒数,典型的赋值运算符,把右边的值赋给左边的变量。
day = toltal // (24 * 60 * 60) # 注意运算符的优先级,这里我用括号扩起来。
hour = (toltal % (24 * 60 * 60)) // (60 * 60) #注意我们用取模(余数),取出一天之后得出的小时时间。
min = (toltal % (60 * 60)) // 60
543836秒等于多少秒?
演示4:秒数就很简单了:
toltal = 543836 #利用变量定义秒数,典型的赋值运算符,把右边的值赋给左边的变量。
day = toltal // (24 * 60 * 60) # 注意运算符的优先级,这里我用括号扩起来。
hour = (toltal % (24 * 60 * 60)) // (60 * 60) #注意我们用取模(余数),取出一天之后得出的小时时间。
min = (toltal % (60 * 60)) // 60
sec = toltal % 60
最终用编程来实现:543836秒是多少天?多少小时?多少分钟?多少秒的?赋值运算方式完成后,用基本格式化输出,正确代码如下
#编程实现543836秒是几天几小时几分钟几秒?
toltal = 543836 #利用变量定义秒数,典型的赋值运算符,把右边的值赋给左边的变量。
day = toltal // (24 * 60 * 60) # 注意运算符的优先级,这里我用括号扩起来。
hour = (toltal % (24 * 60 * 60)) // (60 * 60) #注意我们用取模(余数),取出一天之后得出的小时时间。
min = (toltal % (60 * 60)) // 60
sec = toltal % 60
#打印,都是涉及到整数,因此我们用基本格式化输出即可。
print("%d秒为 %d天 %d小时 %d分 %d秒" % (toltal,day,hour,min,sec))
演示结果:

我们可以验证下这个结果,打开计算器分别计算时间单位为秒,最后求和!
6天=6*24*60*60= 518400秒

7小时=7*60*60=25200秒

3分=3*60=180秒

最后,我们将这几个数值相加:最后验证计算正确!
518400秒+25200秒+180秒+56秒=543836秒

需求:当用户输入语文、数学、英语分数之后,输出总分和平均分!
涉及到分数,肯定有小数,因为初学阶段,这里我不分享浮点数的类型,平均分的结果我可以做保留两位小数的结果!
演示1:代码如下:注意这里大量的应用了运算符,并且运算优先级是要注意的!
#需求:当用户输入语文、数学、英语分数之后,输出总分和平均分!\
chinese = int(input("请输入语文分数: "))
maths = int(input("请输入数学分数: "))
english = int(input("请输入英语分数: "))
print("本次考试的总分%.2f, 平均分: %.2f" %(chinese + maths +english,(chinese + maths + english)/3))






