Python编程基础05:运算符与表达式

Python编程基础05:运算符与表达式运算符就是专门用于告诉程序执行特定运算或逻辑操作的符号。表达式是指由常量、变量和运算符组成的一个算式。

大家好,欢迎来到IT知识分享网。

运算符就是专门用于告诉程序执行特定运算或逻辑操作的符号。表达式是指由常量、变量和运算符组成的一个算式。编写程序对数据进行处理,其实处理就是对数据实施各种各样的运算,搞懂运算符与表达式是我们编写程序的基础性工作,本次讲课笔记通过案例讲解各种运算符的用法以及正确书写Python表达式的注意事项。

一、算术运算符(Arithmetic Operator)

  • Python中的算术运算符就是用来处理四则运算的符号,也是最简单和最常用的运算符号。

1、列表说明

Python编程基础05:运算符与表达式

Python编程基础05:运算符与表达式

2、注意事项

  • 实除“/”,无论被除数和除数是否是整数,结果都是浮点数。

Python编程基础05:运算符与表达式

  • 整除“//”,如果被除数与除数都是整数,结果就是一个整数,但是只要其中一个是浮点数,那么结果就是浮点数。

Python编程基础05:运算符与表达式

  • 在进行取模(%)运算时,运算结果的正负取决于模数(%右边的数)的符号,与被模数(%左边的数)的符号无关。

Python编程基础05:运算符与表达式

  • 注意运算优先级,∗ ∗ → − ( 负 ) → ∗ , / , / / , % → + , − **\rightarrow -(负) \rightarrow*,/,//, \% \rightarrow+,-∗∗→−(负)→∗,/,//,%→+,−。 如果要改变运算次序,那么需要加括号。

Python编程基础05:运算符与表达式

3、案例演示

任务1、成绩处理

输入三科STB、SQL、Python的成绩,计算SQL与Python的成绩差以及三科的平均分。

  • Python语言是动态类型语言,无须像静态类型语言如Java一样需要先声明后使用。因此一个Python程序包含三个部分:输入部分、处理部分和输出部分,其中,处理部分是一个程序的核心,涉及解决问题的方法和步骤,即算法,在处理部分就会用到运算符、表达式与控制结构。
  • 编写程序 – 成绩处理.py

Python编程基础05:运算符与表达式

# -*- coding: utf-8 -*-

“””

功能:成绩处理

“””

#输入部分

stb = float(input(‘输入STB成绩:’))

sql = float(input(‘输入SQL成绩:’))

python = float(input(‘输入Python成绩:’))

# 处理部分

difference = python – sql

average = (stb + sql + python) / 3

# 输出部分

print(‘======================’)

print(‘STB’, ‘SQL’, ‘Python’, sep=’\t’)

print(stb, sql, python, sep=’\t’)

print(‘======================’)

print(‘Python与SQL成绩差:{}’.format(difference))

print(‘三门课程的平均成绩:{}’.format(average))

  • 输出三门功课成绩,使用sep参数指定制表符“\t”作为分隔符
  • 运行程序,查看结果

Python编程基础05:运算符与表达式

  • 大家可以看到,平均成绩的小数位数也实在太多了,如何设置平均分的小数位数?比如保留到小数点后面两位。利用Python内置函数round()就可以搞定。

Python编程基础05:运算符与表达式

课堂练习:带余除法

  • 使用整除(//)与取模运算(%)

Python编程基础05:运算符与表达式

任务2、打印购物小票

指定折扣,输入购买商品单价与数量,输入顾客交费,结算时打印购物小票,计算此次购物总金额,顾客交费,商店找补,以及购物积分。

  • 编写程序 – 打印购物小票.py

# -*- coding: utf-8 -*-

“””

功能:打印购物小票

“””

# 输入部分

discount = 0.8 # 8折优惠

price1 = float(input(“输入运动衫单价:”))

amount1 = float(input(‘输入运动衫购买数量:’))

price2 = float(input(“输入网球鞋单价:”))

amount2 = float(input(‘输入网球鞋购买数量:’))

price3 = float(input(“输入网球拍单价:”))

amount3 = float(input(‘输入网球拍购买数量:’))

payment = float(input(‘顾客实际交费:’))

# 处理部分

money = (price1 * amount1 + price2 * amount2 + price3 * amount3) * discount # 计算购物金额

change = payment – money; # 计算找钱

points = int(money // 33); # 计算购物积分

# 输出部分

print(‘***************消费单**************’)

print(‘%-8s%-6s%-6s%-6s’ %(‘购买物品’, ‘单价’, ‘数量’, ‘金额’))

print(‘%-8s%-8.2f%-8d%-8.2f’ %(‘运动衫’, price1, amount1, price1 * amount1))

print(‘%-8s%-8.2f%-8d%-8.2f’ %(‘网球鞋’, price2, amount2, price2 * amount2))

print(‘%-8s%-8.2f%-8d%-8.2f’ %(‘网球拍’, price3, amount3, price3 * amount3))

print(‘***********************************’)

print(‘折扣:{}折’.format(discount * 10))

print(‘消费总金额:¥{}’.format(round(money, 2)))

print(‘实际交费:¥{}’.format(payment))

print(‘找钱:¥{}’.format(round(change, 2)))

print(‘本次购物所获得的积分:{}’.format(points))

  • 运行程序,查看结果

Python编程基础05:运算符与表达式

任务3、计算利息

假设你在银行存了1元钱,且银行存款利率达到了100%。问:如果银行每天都给你发利息,并且你把每天获得的利息做复利,经过一年后,你会多富有?

  • 先算一下一年发一次利息的情况
    ( 1 + 1 1 ) 1 = 2 \displaystyle(1+\frac{1}{1})^1=2(1+11)1=2元,即一年后你有2元钱。
  • 再来算一下一年发两次利息并采用复利的情况
    ( 1 + 1 2 ) 2 = 2.25 \displaystyle(1+\frac{1}{2})^2=2.25(1+21​)2=2.25元
  • 最后算银行每天都发利息并采用复利的情况
  • ( 1 + 1 365 ) 365 = 2. \displaystyle(1+\frac{1}{365})^{365}=2.(1+3651​)365=2.元
  • 如果银行每分每秒都在付利息,我们也每分每秒复利,1年之后,我们的财富实际上是接近于e的,即2.。
  • 编写程序 – 计算利息.py

Python编程基础05:运算符与表达式

  • 运行程序,查看结果

Python编程基础05:运算符与表达式

Python编程基础05:运算符与表达式

  • n的值越大,fv的值就越趋近于e

任务4、由卡号计算幸运数

输入会员卡号(假定4位数)、分解出各位数字,再把各位数字相加,得到幸运数字,然后利用幸运数字去抽奖。编写程序,如何由卡号得到幸运数字。

难点:如何把一个四位数拆分?
解决问题的思路:例如n = 3462
3426 = 3 * 1000 + 4 * 100 + 6 * 10 + 2

除了个位数2之外,其余的各位数都能被10整除,那就意味着2是3462除以10的余数,怎么表示?3462 % 10 = 2

个位数得到之后,我们希望去掉个位数,把四位数变成三位数,然后就可以采用类似的方法得到三位数的末尾数,其实就是四位数的十位数;那么怎么才能得到这样的三位数呢?3462 // 10 = 346

346 = 3 * 100 + 4 * 10 + 6 怎么得到末尾数呢? 346 % 10 = 6
然后又把346变成34,怎么做?346 // 10 = 34

34 = 3 * 10 + 4,怎么得到末尾数呢?34 % 10 = 4
然后又34变成3,怎么做?34 // 10 = 3

Python编程基础05:运算符与表达式

  • 编写程序 – 由卡号计算幸运数.py

# -*- coding: utf-8 -*-

“””

功能:由卡号计算幸运数

“””

# 输入部分

id = int(input(“输入会员卡号(四位数):”))

# 处理部分

x1 = id % 10 # 取个位数

x2 = id // 10 % 10 # 取十位数

x3 = id // 100 % 10; # 取百位数

x4 = id // 1000 # 取千位数

lucky_number = x1 + x2 + x3 + x4 # 计算幸运数

# 输出部分

print(‘你的幸运数:{}’.format(lucky_number))

  • 运行程序,查看结果

Python编程基础05:运算符与表达式

  • 俗话说:条条道路通罗马。要获取四位整数的各位数字,还有其它方法,读者可以尝试不同的解决方法。下面给出另外一种处理方法。

Python编程基础05:运算符与表达式

  • 基于幸运数的计算,我们可以编写幸运抽奖小程序
  • 编写程序 – 幸运抽奖资格.py

# -*- coding: utf-8 -*-

“””

功能:幸运抽奖资格

“””

import random

id = int(input(“输入会员卡号(四位数):”))

x1 = id % 10 # 取个位数

x2 = id // 10 % 10 # 取十位数

x3 = id // 100 % 10; # 取百位数

x4 = id // 1000 # 取千位数

lucky_number = x1 + x2 + x3 + x4 # 计算幸运数

print(‘你的幸运数:{}’.format(lucky_number))

target = random.randint(1, 36)

print(‘目标幸运数:{}’.format(target))

if lucky_number == target:

print(‘恭喜你获得幸运抽奖资格!’)

else:

print(‘谢谢惠顾,希望下次有幸!’)

Python编程基础05:运算符与表达式

思考题: 改善程序

  • 如果输入的卡号不是四位数,程序会出现什么异常情况?
  • 应该如何改善这个程序,让它只处理输入四位数的情况?
  • 我们这个拆分四位整数的方法能否推广到任意多位数呢?

任务5、计算机存储单位

  • 计算机存储单位一般用bit、B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB、CB、XB……来表示。其中,位 bit (比特)(Binary Digits) 存放一位二进制数,即 0 或 1,最小的存储单位。
  • 不同存储单位的换算关系

1 Byte (B) = 8 bit

1 Kilo Byte (KB) = 1024 B

1 Mega Byte (MB) = 1024 KB

1 Giga Byte (GB)= 1024 MB

1 Tera Byte (TB)= 1024 GB

1 Peta Byte (PB) = 1024 TB

1 Exa Byte (EB) = 1024 PB

1 Zetta Byte (ZB) = 1024 EB

1 Yotta Byte (YB) = 1024 ZB

1 Bronto Byte (BB) = 1024 YB

1 Nona Byte (NB) =1024 BB

1 Dogga Byte (DB) =1024 NB

1 Corydon Byte (CB) = 1024 DB

1 Xero Byte (XB) = 1024 CB

  • 编写程序 – 计算机存储单位.py

Python编程基础05:运算符与表达式

  • 运行程序,查看结果

Python编程基础05:运算符与表达式

过去十年堪称是数据爆炸的十年。回顾2010年的行业报告时你会发现,2010年全球数据量刚刚突破1ZB,而2020年全球数据量预计将超过40ZB。面对数据量的指数级增长,存储市场可谓首当其冲。尤其在云计算、大数据、人工智能、5G、物联网、边缘计算大行其道的今天,数据如何存储的问题只是其一,数据价值如何深入挖掘更为突出。对于数据从存储到价值释放的转变,浪潮存储产品线总经理李辉认为,新数据时代已经到来。

二、赋值运算符(Assignment Operator)

赋值运算符的作用就是将常量、变量或表达式的值赋给某一个变量。它将运算符右边的值赋给左边的变量。

1、列表说明

Python编程基础05:运算符与表达式

2、注意事项

  • 在Python中可以通过一条赋值语句对多个变量进行赋值。
  • 在赋值运算符中,除了“=”,其它的都是特殊的赋值运算符,以“+=”为例,x += 3就相当于x = x + 3,首先会进行加法运算x + 3,再将运算结果赋值给变量x。其余的-=、*=、/=、%=赋值运算符都可依此类推。

3、案例演示

任务1、一次对多个变量赋值

Python编程基础05:运算符与表达式

  • 多个变量赋相同的值
  • 多个变量赋不同的值

任务2、使用复合赋值运算符

  • 编写程序 – 演示复合赋值运算.py

Python编程基础05:运算符与表达式

  • 运行程序,查看结果

Python编程基础05:运算符与表达式

三、关系运算符(Relational Operator)

比较运算符用来对两个数值或变量进行比较,其结果是布尔类型的True或False。

1、列表说明

Python编程基础05:运算符与表达式

Python编程基础05:运算符与表达式

2、注意事项

  • 布尔型常量转换成整数:True -> 1;False -> 0

Python编程基础05:运算符与表达式

  • 整数转换成布尔型常量:非零整数 -> True;零 -> False

Python编程基础05:运算符与表达式

  • 空列表、空字典、空元素、空字符串转换成布尔型的False

Python编程基础05:运算符与表达式

  • 任何表达式都可以作为判断条件,对于数值型而言,零表示False,非零表示True;对于字符串而言,空字符串表示False,非空字符串表示True

Python编程基础05:运算符与表达式

Python编程基础05:运算符与表达式

3、案例演示

  • 利用关系运算符构建关系表达式,可以表示条件,用于选择结构和循环结构

任务1、年龄关卡

  • 年满18周岁,欢迎访问;未满18周岁,旁边凉快!
  • 编写程序 – 年龄关卡.py

Python编程基础05:运算符与表达式

# -*- coding: utf-8 -*-

“””

功能:年龄关卡

“””

age = int(input(‘输入你的年龄:’))

if age >= 18:

print(‘年满18周岁,欢迎访问!’)

else:

print(‘未满18周岁,旁边凉快!’)

  • 运行程序,查看结果

Python编程基础05:运算符与表达式

任务2、求解一元二次方程

Python编程基础05:运算符与表达式

  • 下面,我们只计算实数解,不去计算复数解,但要提示用户此方程没有实数解。
  • 编写程序 – 求解一元二次方程.py

# -*- coding: utf-8 -*-

“””

功能:求解一元二次方程

“””

from math import sqrt

a = float(input(‘a = ‘))

b = float(input(‘b = ‘))

c = float(input(‘c = ‘))

delta = b**2 – 4 * a * c

if delta >= 0:

x1 = (-b + sqrt(delta)) / (2 * a)

x2 = (-b – sqrt(delta)) / (2 * a)

print(‘x1 = {}\nx2 = {}’.format(x1, x2))

else:

print(‘此方程没有实数解!’)

  • 运行程序,查看结果

Python编程基础05:运算符与表达式

利用关系表达式可以表示一个简单条件,比如查找班上的男生,条件就是:性别 == “男”;查找成绩在90分以上的,条件就是:成绩 >= 90。但是,大家思考一个问题,如何要查找成绩在90分以上的男生,那么该如何将查询条件写成Python表达式呢?这就会用到Python的逻辑运算,包括非(not)、与(and)、或(or)。

四、逻辑运算符(Logical Operator)

逻辑运算符是用于对布尔类型的值或表达式进行操逻辑判断的符号,其返回值类型是布尔类型。

1、列表说明

Python编程基础05:运算符与表达式

  • 与运算真值表

Python编程基础05:运算符与表达式

  • 或运算真值表

Python编程基础05:运算符与表达式

  • 非运算真值表

Python编程基础05:运算符与表达式

2、注意事项

  • 三种逻辑运算的优先级别:not –> and –> or

3、案例演示

任务1、闰年判断

  • 输入一个年份,判断它是闰年还是平年。
  • 闰年能被4整除且不能被100整除,或者能被400整除
  • 编写程序 – 闰年判断.py

# -*- coding: utf-8 -*-

“””

功能:闰年判断

“””

year = int(input(‘year = ‘))

if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:

print(‘{}是闰年。’.format(year))

else:

print(‘{}是平年。’.format(year))

  • 可以修改一下闰年判断条件的逻辑表达式,用到三种逻辑运算符
  • year % 100 != 0 等价于 not year % 100 == 0

Python编程基础05:运算符与表达式

  • 运行程序,查看结果

Python编程基础05:运算符与表达式

最后,小编想说:我是一名python开发工程师,
整理了一套最新的python系统学习教程,
想要这些资料的可以关注私信小编“01”即可(免费分享哦)希望能对你有所帮助

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/52614.html

(0)
上一篇 2024-08-10 17:00
下一篇 2024-08-10 20:15

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信