分类
Python1

运算符与表达式

学习目标
1、掌握常见的算术运算符和赋值运算符
2、掌握变量与运算符结合的表达式运算
3、熟悉取余运算

1、运算符简介
本章节主要说明Python的运算符。举个简单的例子 2 +3 = 5 。 例子中,2 和 3 被称为操作数,”+” 称为运算符。
(一)算术运算符 以下假设变量a为10,变量b为21:

a = 21  #将变量a的赋值为21
b = 10
c = 0
c = a + b
print ("加法,c 的值为:", c)  #加法,c 的值为: 31
c = a - b
print ("减法,c 的值为:", c)
c = a * b
print ("乘法,c 的值为:", c)
c = a / b    #除法,结果为小数
print ("除法,c 的值为:", c)
c = a % b    #模运算,也就是取余数的运算
print ("取余,c 的值为:", c)  

# 修改变量 a 、b 、c
a = 2
b = 3
c = a**b  #幂运算,表示a的b次幂
print (" 幂,c 的值为:", c)
# 再次修改变量 a 、b 、c
a = 10
b = 5
c = a//b   #a整除b,结果为整数
print ("整除,c 的值为:", c)

加法,c 的值为: 31
减法,c 的值为: 11
乘法,c 的值为: 210
除法,c 的值为: 2.1
取余,c 的值为: 1
幂,c 的值为: 8
整除,c 的值为: 2

(二)算术运算符的优先级
当你在一个表达式中使用多个数学运算符时,计算机遵循”操作顺序”以确保每次计算结果都是相同的。它的运算顺序和你在数学课上学过的一样,先计算括号,再计算乘除,最后算加减。
例如,在下面的代码中,首先计算括号中的两个表达式,即先计算x + 10和x / 2,然后将这两个结果相乘,最后将结果与100相加。即可以化简为20 * 5.0 + 100,最后的结果是 200.0。要注意这里的除法得到的是一个”浮点数”。
就像在数学表达式中一样,如果你希望表达式的计算结果不同于根据操作顺序计算的结果,那么只需要添加小括号。

x = 10
a = (x + 10) * (x / 2) + 100
print(a)    # a等于20 * 5.0 + 100,输出结果是200.0

(三)赋值运算符 以下假设变量a为10,变量b为20:

a = 21
b = 10
c = 0
 
c += a
print ("加法赋值运算,c 的值为:", c)
 
c *= a
print ("乘法赋值运算,c 的值为:", c)
 
c /= a 
print ("除法赋值运算,c 的值为:", c)
 
c = 2
c %= a
print ("取余赋值运算,c 的值为:", c)
 
c **= a
print (" 幂赋值运算,c 的值为:", c)
 
c //= a
print ("整除赋值运算,c 的值为:", c)

加法赋值运算,c 的值为: 21
乘法赋值运算,c 的值为: 441
除法赋值运算,c 的值为: 21.0
取余赋值运算,c 的值为: 2
幂赋值运算,c 的值为: 2097152
整除赋值运算,c 的值为: 99864

2、变量表达式调整形状大小
我们可以重新调整大眼怪脸部的大小,用facesize、eyesize、eyeballsize 控制脸的大小、眼睛的大小和眼球的大小。我们把facesize调小或调大,眼球和眼睛会成比例变化。但是因为眼睛的尺寸是固定的,变量x的值是50,变量y的值是120。x,y控制着眼睛的位置,两只眼睛的距离永远是100,所以即使眼睛的大小会随着脸的大小而改变,但它的位置是总是不会变的。所以需要修改变量x,y。同时,也要修改眼球的坐标。最终代码如下:

import turtle
turtle.shape('turtle')
turtle.colormode(255)  #设置colormode,使用RGB前必须设置
turtle.pencolor(41,253,41)  #绿色的 R G B值

turtle.showturtle()  #显示小海龟
facesize = 100   #设置脸的大小变量,修改这个变量值,则改变大眼怪的大小
eyesize = facesize/2     #关联脸的大小
eyeballsize = facesize/5  #关联脸的大小
r = 1001   
g = 2001
b = 2221
r = r%101  #控制r的变量值范围为0~100
g = g%201  #控制g的变量值范围为0~200
b = b%256  #控制b的变量值范围为0~255

# 设置填充颜色:脸部
turtle.fillcolor(r,g,b)  #颜色用r,g,b变量控制
# 开始填充
turtle.begin_fill()
turtle.circle(facesize) #半径100的圆形
# 结束填充
turtle.end_fill()

# 设置填充颜色:大嘴巴
turtle.fillcolor('white')  #black黑色  blue蓝色 ...
# 开始填充
turtle.begin_fill()
turtle.penup()     #抬笔
turtle.goto(0,30)  #移动到指定坐标(0,30)
turtle.pendown()   #落笔
turtle.circle(40)  #半径40的圆形,大嘴巴
# 结束填充
turtle.end_fill()

# 设置填充颜色:右眼
turtle.fillcolor('white')  #black黑色  blue蓝色 ...
# 开始填充
turtle.begin_fill()
turtle.penup()     #抬笔
turtle.goto(50,120)  #移动到指定坐标
turtle.pendown()   #落笔
turtle.circle(eyesize)  #右眼睛
# 结束填充
turtle.end_fill()

# 设置填充颜色:左眼
turtle.fillcolor('white')  #black黑色  blue蓝色 ...
# 开始填充
turtle.begin_fill()
turtle.penup()     #抬笔
turtle.goto(-50,120)  #移动到指定坐标
turtle.pendown()   #落笔
turtle.circle(eyesize)  #左眼睛
# 结束填充
turtle.end_fill()

# 设置填充颜色:右眼珠
turtle.fillcolor('pink')  #颜色用r,g,b变量控制
turtle.penup()     #抬笔
turtle.goto(20,160)  #移动到指定坐标
turtle.pendown()   #落笔
turtle.dot(20)  #右眼珠

# 设置填充颜色
turtle.fillcolor('black')  #black黑色  blue蓝色 ...
turtle.penup()     #抬笔
turtle.goto(-20,160)  #移动到指定坐标
turtle.pendown()   #落笔
turtle.dot(20)  #左眼珠

turtle.penup()     #抬笔
turtle.goto(0,-60)  #移动到指定坐标,准备写字
turtle.pendown()   #落笔
turtle.write('粉色大眼怪',align='center',font=('楷体',45))


name='小栗'  #定义变量name,并赋值
size=20      #定义变量size,并赋值
# 设置填充颜色
turtle.fillcolor('pink')  #颜色可以用r,g,b变量控制
turtle.penup()     #抬笔
turtle.goto(60,-100)  #移动到指定坐标,准备写字
turtle.pendown()   #落笔
turtle.write('小画家:'+name,align='center',font=('楷体',size))  #使用前面定义的变量

turtle.hideturtle()  #隐藏小海龟

在上面的代码中,我们可以尝试将大眼怪的颜色换成RGB颜色。“大眼怪”的脸部颜色是粉色“pink”,我们可以将它换成RGB颜色模式,它的颜色是255,192, 203。创建三个变量r、g、b来存储颜色的值,能成功画出“粉色大眼怪”。
但是RGB的限定范围是0~255,当输入1000,或者10000时,代码就会报错,如何避免这种情况呢?
取余运算的应用:可以通过取余数来解决这个问题。r %= 256相当于r = r % 256,对256进行取余运算,得到的结果一直在0-255范围内。
这样,我们就可以随便给r、g、b赋值一个正整数,程序就会给我们一种颜色。

import turtle
turtle.shape('turtle')
turtle.colormode(255)  #设置colormode,使用RGB前必须设置

facesize = 100
r = 1000
r %= 256
g = 1000
g %= 256
b = 1234567
b %= 256

turtle.pencolor(r,g,b)  #颜色的 R G B值=
turtle.fillcolor(r,g,b) 
turtle.begin_fill()
turtle.circle(facesize)
turtle.end_fill()

3、扩展知识:RGB介绍
RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。
RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于两者亮度之总和,越混合亮度越高,即加法混合。
红、绿、蓝三盏灯的叠加情况,中心三色最亮的叠加区为白色,加法混合的特点:越叠加越明亮。
红、绿、蓝三个颜色通道每种色各分为256阶亮度,在0时“灯”最弱——是关掉的,而在255时“灯”最亮。当三色灰度数值相同时,产生不同灰度值的灰色调,即三色灰度都为0时,是最暗的黑色调;三色灰度都为255时,是最亮的白色调。
RGB 颜色称为加成色,因为您通过将 R、G 和 B 添加在一起(即所有光线反射回眼睛)可产生白色。加成色用于照明光、电视和计算机显示器。例如,显示器通过红色、绿色和蓝色荧光粉发射光线产生颜色。绝大多数可视光谱都可表示为红、绿、蓝 (RGB) 三色光在不同比例和强度上的混合。这些颜色若发生重叠,则产生青、洋红和黄。

RGB应用 目前的显示器大都是采用了RGB颜色标准,在显示器上,是通过电子枪打在屏幕的红、绿、蓝三色发光极上来产生色彩的,目前的电脑一般都能显示32位颜色,有一千万种以上的颜色。
电脑屏幕上的所有颜色,都由这红色绿色蓝色三种色光按照不同的比例混合而成的。一组红色绿色蓝色就是一个最小的显示单位。屏幕上的任何一个颜色都可以由一组RGB值来记录和表达。
因此这红色绿色蓝色又称为三原色光,用英文表示就是R(red)、G(green)、B(blue)。
在电脑中,RGB的所谓“多少”就是指亮度,并使用整数来表示。通常情况下,RGB各有256级亮度,用数字表示为从0、1、2…直到255。注意虽然数字最高是255,但0也是数值之一,因此共256级。如同2000年到2010年共是11年一样。
按照计算,256级的RGB色彩总共能组合出约1678万种色彩,即256×256×256=16777216。通常也被简称为1600万色或千万色。也称为24位色(2的24次方)。
在led领域利用三合一点阵全彩技术, 即在一个发光单元里由RGB三色晶片组成全彩像素。随着这一技术的不断成熟,led显示技术会给人们带来更加丰富真实的色彩感受。

RGB常见颜色对照 常用的基本颜色:

RGB与十六进制颜色码 例如,在网页上要指定一种颜色,就要使用RGB模式来确定,方法是分别指定R/G/B,也就是红/绿/蓝三种基色的强度,通常规定,每一种颜色强度最低为 0,最高为255,并通常都以16进制数值表示,那么255对应于十六进制就是FF,并把三个数值依次并列起来 ,以#开头。
例如,颜色值“#FF0000”为红色,因为红色的值达到了最高值 FF(即十进制的255),其余两种颜色强度为0。在例如“#FFFF00”表示黄色,因为当红色和绿色都为最大值,且蓝色为0时,产生的就是黄色。

复习视频,点击播放:算术运算符和表达式