当前位置:   article > 正文

Day2.不就是运算符吗!

minedata 使用((108.911909 34.240348,108.96877 34.204386,108.93839 34.275067)


我们还是用一个问题来引出今天的学习内容,同样是计算成绩。

Q:给定学生三门成绩

(1)计算该学生的平均成绩并打印平均成绩保留两位小数点

(2)计算该学生语文成绩占总成绩的百分之多少?并打印,百分比也保留两位小数

A:

  1.  # ID 生成唯一UUID
  2.  
  3.  Chinese = 92
  4.  Math = 98.5
  5.  English = 93
  6.  
  7.  # 总成绩
  8.  SumScore = Chinese + Math + English
  9.  # 平均成绩
  10.  AvgScore = SumScore / 3
  11.  # 百分比
  12.  ChinesePercent = ( Chinese / SumScore ) * 100
  13.  print("%s的平均成绩为%.2f" %(ID,AvgScore))
  14.  
  15.  #输出
  16.  9fde9178-ec75-11ea-9d07-a0510bfd82f6
  17.  9fde9178-ec75-11ea-9d07-a0510bfd82f6的平均成绩为94.50
  18.  

学前引导:

变量&运算符(本文重点):

  • 变量

  • 转义字符

  • 运算符

  • 初识判断语句

关于变量

变量的创建过程

首先,当我们定义了一个变量name = 'Data'的时候,在内存中其实是做了这样一件事。

程序开辟了一块内存空间,将'Data'存储进去,再让变量名name指向'Data'所在的内存地址。如下所示:

  1.  #通过下列方法可以查看这个变量在内存中的地址
  2.  name = 'Data'
  3.  print(id(name))
  4.  2720846969904
  5.  

变量的修改

一般我们认为修改一个变量就是用新值把就旧值覆盖掉 实际的原理是什么样的呢?

程序先申请了一块内存空间来存储'Data',让name变量名指向这块内存空间,往下执行name = 'Science'之后,又申请了另一块内存空间来存储'Science',并让原本指向'Data'内存的链接断开,让name再指向'Science'。

  1.  #案例演示
  2.  
  3.  name = 'Data'
  4.  print(id(name))
  5.  name = 'Science'
  6.  print(id(name))
  7.  2720846969904
  8.  2718733174640
  9.  

变量的指向关系

当执行name2 = name1时,事实上时让name2指向了'Data'所在的内存地址。

修改name1的值,相当于断开了name1到'Data'的链接,重新建立name1和'Science'之间的链接。

在这个过程中,始终没有影响到name2和'Data'之间的关系,因此name2还是'Data',而name1变成了'Science'

  1.  #案例演示
  2.  name1 = 'Data'
  3.  name2 = name1
  4.  print(name1, name2)
  5.  name1 = 'Science'
  6.  print(name1, name2)
  7.  Data Data
  8.  Science Data
变量小测试:

1、以下可以作为python标识符是___

  • A.2morrow

  • B.your-name

  • C._study

  • D.abc*123

2、如下示例:字符串str1的值赋值给str2时,str2的变量地址是否改变?如果是字典赋值呢?

  1.  
  2.  str1= 'python'
  3.  str2= 'pandas'
  4.  str2= str1
  5.  

运算符

  • 算术运算符

    • 运算优先级

  • 赋值运算符

  • 复合赋值运算符

算术运算符

即基本的算术运算:加+、 减- 、乘* 、除/ 、取余% 、幂** 、取整除//

下面以a=10 ,b=20为例进行计算

运算符描述实例
+两个对象相加 a + b 输出结果 30
-得到负数或是一个数减去另一个数 a - b 输出结果 -10
*两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/x除以y b / a 输出结果 2
%取余返回除法的余数 b % a 输出结果 0
**返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000
//取整除返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
  1.  # 更多案例
  2.  a=21
  3.  b=3
  4.  c=4
  5.  print(a+b)
  6.  print(a-b)
  7.  print(a/b)
  8.  print(a*b)
  9.  print(c**3)
  10.  print(a%c)
  11.  print(a//c)
  12.  print(45-a)
  13.  24
  14.  18
  15.  7.0
  16.  63
  17.  64
  18.  1
  19.  5
  20.  24

赋值运算符

运算符描述实例
=赋值运算符把=号右边的结果给左边的变量 num=1+2*3 结果num的值为7
  • 直接赋值=

  • 加法赋值运算符 +=

  • 减法赋值运算符 -=

  • 乘法赋值运算符 *=

  • 除法赋值运算符 /=

  • 取余赋值运算符 %=

  • 幂赋值运算符**=

  • 取整除赋值运算符//=

其中比较常见的运算符有+=(自加)和-=(自减)

  1.  a=3
  2.  b=2
  3.  c=10
  4.  # c+=a
  5.  c/=b
  6.  print(c)
  7.  a+=4
  8.  print(a)
  9.  5.0
  10.  7

复合赋值运算符

运算符描述实例
+=加法赋值运算符c += a 等效于 c = c + a
-=减法赋值运算符c -= a 等效于 c = c - a
*=乘法赋值运算符c *= a 等效于 c = c * a
/=除法赋值运算符c /= a 等效于 c = c / a
%=取模赋值运算符c %= a 等效于 c = c % a
**=幂赋值运算符c ** = a 等效于 c = c ** a
//=取整除赋值运算符c //= a 等效于 c = c // a

比较运算符

比较运算符通常在条件判断中经常使用到

  • 相等==

  • 不相等!=

  • 大于>

  • 小于<

  • 大于等于>=

  • 小于等于<=

如下表

运算符描述示例
==检查两个操作数的值是否相等,如果是则条件变为真。如a=3,b=3则(a == b) 为 true.
!=检查两个操作数的值是否相等,如果值不相等,则条件变为真。如a=1,b=3则(a != b) 为 true.
<>检查两个操作数的值是否相等,如果值不相等,则条件变为真。如a=1,b=3则(a <> b) 为 true。这个类似于 != 运算符
>检查左操作数的值是否大于右操作数的值,如果是,则条件成立。如a=7,b=3则(a > b) 为 true.
<检查左操作数的值是否小于右操作数的值,如果是,则条件成立。如a=7,b=3则(a < b) 为 false.
>=检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。如a=3,b=3则(a >= b) 为 true.
<=检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。如a=3,b=3则(a <= b) 为 true.
  1.  a=5
  2.  b=10
  3.  c=1
  4.  print(a>b)
  5.  
  6.  if a>b:
  7.      print('a大于b')
  8.  else:
  9.      print('a小于b')
  10.  
  11.  False
  12.  a小于b

逻辑运算符

逻辑运算符为结果真假的与或非分别用and or not来表示,我们这里可以通过简单的赋值来体会这个逻辑关系。

运算符逻辑表达式描述实例
andx and y布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。(a and b) 返回 20。
orx or y布尔"或" - 如果 x 是 True,它返回 True,否则它返回 y 的计算值。(a or b) 返回 10。
notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。not(a and b) 返回 False
  1.  a = 10
  2.  b = 20
  3.  
  4.  if  a and b :    #判断a和b是否都为真
  5.      print("a,b均为真")
  6.  else:
  7.      print("a,b中有一个不为真")
  8.  **********************************
  9.  
  10.  if  a or b :
  11.      print("a,b中至少有一个为真")
  12.  else:
  13.      print("a,b都不为真")
  14.      
  15.  ***********************************  
  16.  #修改变量 a 的值
  17.  a = 0
  18.  if  a and b :
  19.      print ("a,b都为真")
  20.  else:
  21.      print("a,b中有一个不为真")
  22.  
  23.  ***********************************
  24.  if  a or b :
  25.      print("a,b中至少有一个为真")
  26.  else:
  27.      print("a,b都不为真")
  28.  
  29.  ************************************
  30.  if not( a and b ):
  31.      print("a,b中至少有一个为假")
  32.  else:
  33.      print("a,b都为真")
  34.  a,b均为真
  35.  a,b中至少有一个为真
  36.  a,b中有一个不为真
  37.  a,b中至少有一个为真
  38.  a,b中至少有一个为假

位运算符

按位运算符是把数字看作二进制来进行计算的。

  • ‘&’表示为按位与

  • ‘|’表示按位异或

  • ‘^’表示按位异或

  • ‘~’表示按位取反

  • ‘<<’表示按位左移

  • ‘>>’表示按位右移

  1.  a = 60            # 60 = 0011 1100
  2.  b = 13            # 13 = 0000 1101
  3.  c = 0
  4.  
  5.  c = a & b;        # 12 = 0000 1100
  6.  print(" c 的值为:", c)
  7.  
  8.  c = a | b;        # 61 = 0011 1101
  9.  print("c 的值为:", c)
  10.  
  11.  c = a ^ b;        # 49 = 0011 0001
  12.  print ("c 的值为:", c)
  13.  
  14.  c = ~a;           # -61 = 1100 0011
  15.  print("c 的值为:", c)
  16.  
  17.  c = a << 2;       # 240 = 1111 0000
  18.  print("c 的值为:", c)
  19.  
  20.  c = a >> 2;       # 15 = 0000 1111
  21.  print("c 的值为:", c)
  22.  c的值为: 12
  23.  c 的值为: 61
  24.  c 的值为: 49
  25.  c 的值为: -61
  26.  c 的值为: 240
  27.  c 的值为: 15

条件(三元)运算符

语法:

语句1 if  条件表达式 else 语句2

执行流程: 

  • 条件运算符在执行时,会先对条件表达式进行求值判断  

  • 如果判断结果为True,则执行语句1,并返回执行结果    

  • 如果判断结果为False,则执行语句2,并返回执行结果

例子:

  1.  a=10
  2.  b=5
  3.  
  4.  if a>15:
  5.      c=a
  6.  else:
  7.      c=b
  8.  print(c)
  9.  5

上面的运算可以用三元运算来表示,即:

  1.  c=a if a>15 else b
  2.  print(c)
  3.  5

今日小作业

1、控制台输入半径,计算圆的面积,圆周率取3.14。

  • 输入格式:

    • 系统提示the radius is,输入一个整数

  • 输出格式(以半径2为例):

    • area=12.56

2、判断字符串"alpha"和"Beta"的大小:

  • A."alpha" < "Beta"

    -B."alpha" > "Beta"

3、如下代码的运算结果是:

 1 == 1 and not ("apple" == 1 or 1 == 0)
  • A. True

  • B. False

  • C. 1

  • D. 0

4、如下代码的运算结果是:

 not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
  • A. True

  • B. False

  • C. 无法输出

5、控制台输入两个整数,输出两数之和,要求不得使用 “+”、“-”、“*”、“/” 四则运算符号。

6、输入三个整数,用三目运算符输出其中的最大值

往期优秀作业案例

( 学员- callmeestelle )

点击解锁即可扫码加入学习

好文章,我 在看❤

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/914555
推荐阅读
相关标签
  

闽ICP备14008679号