# A16_逻辑表达式与条件判断_Python教学视频

### A16_逻辑表达式与条件判断_Python教学视频

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sprites –upgrade

```"""
第十六课 逻辑表达式与条件判断
"""
from sprites import *

s = '第十六课 逻辑表达式与条件判断'
screen = Screen()
screen.bgcolor('blue')
screen.titlebar(False)
root = screen._root              # 窗口对象
root.wm_attributes('-alpha',0.7) # 设置窗口为全透明(0到1.0)
screen.setup(800,800)
screen.tracer(0,0)

# 下面的代码让窗口可以拖动.
oldx = 0
oldy = 0
def startmove(event):
global oldx,oldy
oldx = event.x
oldy = event.y
def stopmove(event):
global oldx,oldy
oldx = 0
oldy = 0
def movewindow(event):
global oldx,oldy
dx = event.x - oldx
dy = event.y - oldy
root.move(dx,dy)
screen.cv.bind("", startmove)
screen.cv.bind("", stopmove)
screen.cv.bind("",movewindow)

# 下面的代码按方向箭头则窗口能上下左右移动
screen.onkeypress(lambda:root.move(10),'Right')
screen.onkeypress(lambda:root.move(-10),'Left')
screen.onkeypress(lambda:root.move(0,-10),'Up')
screen.onkeypress(lambda:root.move(0,10),'Down')
screen.listen()

# 单击鼠标左键开始
spacekey = Key('space')     # 空格键
m1 = Mouse()                # 鼠标左键
while not m1.down():screen.update()

ft_title = ('楷体',30,'bold')
ft_context = ('宋体',18,'normal')
t = Sprite(visible=False,pos=(-500,100))
t.color('magenta')
clock = Clock()
for x in range(100):
t.clear()
t.write(s,align='center',font=ft_title)
t.wait()
t.fd(5)
clock.tick(60)

while not spacekey.down():screen.update()

# 简介
brief ="""

"""
if brief!='':  # 如果有课程简介，则生成一个角色，
ftx = ('宋体',18,'normal')
简介 = Sprite(visible=False,pos=(0,-200))
简介.color('white')
简介.write(brief,align='center',font=ftx)
while  spacekey.down():screen.update()
while not spacekey.down():screen.update()

for x in range(66):              # 标题向右消失
t.clear()
t.write(s,align='center',font=ft_title)
t.fd(10)
if brief!='':
简介.clear()
简介.write(brief,align='center',font=ftx)
简介.bk(10)
clock.tick(60)

#以下是显示学习的内容段
studycontent = """

1、逻辑运算符与表达式

2、条件判断语句

3、input命令

4、实战小程序一

5、实战小程序二

6、练习与作业
"""
t.color('white')
t.clear()
t.sety(-260)              # 这里修改菜单的显示y坐标
ft = ('楷体',24,'bold')
s = studycontent
while not spacekey.down():screen.update()
#  下面的代码显示主菜单
for x in range(130):
t.clear()
t.write(s,align='center',font=ft)
t.bk(5)
clock.tick(60)

def slow_write(t,string):
"""
t：角色,string：要显示的字
本函数慢慢的显示字。
"""
string = string.split('\n') # 换成列表
oldxy = t.position()   # 记录老的坐标
t.goto(-360,330)       # 定位到标题的坐标
# 显示标题，注意string[0]是一个空行
t.write(string[1],font=ft_title)
for line in string[2:]:    # 每一行字
for char in line:     # 每一个字符
t.write(char,align='center',font=ft_context)
t.wait(0.1)
cd = len(bytes(char,'gb2312'))
if cd == 1:
else:
t.setx(-360)
t.goto(oldxy)

s1 = """
1、逻辑运算符与表达式

“与”这种逻辑关系需要and两边表达式结果都为真，整个表达式才为真。

“或”这种逻辑关系则只需要or两边的表达式有一个为真，

“非”则是对逻辑真或者假求反的运算。如 not a>b返回假。"""
def press1():
t.clear()
slow_write(t,s1)
while not spacekey.down():screen.update()
t.clear()
t.write(s,align='center',font=ft)
screen.onkeypress(press1,'1')

s2 = """
2、条件判断语句

if是条件判断语句的关键词，是如果的意思。程序有顺序结构和循环

if语句主要有三种形式，分别为：

一： if 表达式  :           二： if 表达式：
语句组                    语句组一
else:
语句组二

三： if 表达式:
语句组一

elif 表达式:
语句组二

elif 表达式
语句组三

"""
def press2():
t.clear()
slow_write(t,s2)
while not spacekey.down():screen.update()
t.clear()
t.write(s,align='center',font=ft)
screen.onkeypress(press2,'2')

s3 = """
3、input命令

input是输入命令。它运行后，就等待着我们通过键盘输入字符串，

input命令能带一个参数，这个参数表示提示语。如以下代码：

s = input('请输入一些数字：')

s = int(input('请输入一个数字：')) + 10
print(s)

"""
def press3():
t.clear()
slow_write(t,s3)
while not spacekey.down():screen.update()
t.clear()
t.write(s,align='center',font=ft)
screen.onkeypress(press3,'3')

s4 = """
4、实战小程序一

"""
def press4():
t.clear()
slow_write(t,s4)
while not spacekey.down():screen.update()
t.clear()
t.write(s,align='center',font=ft)
screen.onkeypress(press4,'4')

s5 = """
5、实战小程序二

for循环里可以包括if语句，if语句里也能包括for循环。

"""
def press5():
t.clear()
slow_write(t,s5)
while not spacekey.down():screen.update()
t.clear()
t.write(s,align='center',font=ft)
screen.onkeypress(press5,'5')

s6 = """
6、练习与作业

★ 编制程序让海龟重复一定的次数，随机画大小不同的正方形。

★ 编制程序产生一些数字，如果是偶数，则放到名为偶数的列表。
如果是奇数则放到名为奇数的列表。

★ 编制程序通过键盘输入边数和边长，海龟根据边数和边长画正多边形。
如果输入的边数小于3，则进行提示输入错误。

★ 考试结束了，小明得到了考试成绩，假设这个成绩叫score。
由计算机随机产生0到100之间的数据来代表score的值。
编制程序，实现以下功能：
如果score大于等于90，则打印最优。如果大于等于80小于90显示优秀。
如果大于等于70小于80则良好，如果大于等于60小于70，则显示及格。
如果小于60则显示不及格。

"""
def press6():
t.clear()
slow_write(t,s6)
while not spacekey.down():screen.update()
t.clear()
t.write(s,align='center',font=ft)
screen.onkeypress(press6,'6')

byebye = """

"""
def pressq():
t.clear()
t.color('cyan')
t.home()
t.write(byebye,align='center',font=('宋体',38,'bold'))
while not spacekey.down():screen.update()
screen.bye()
screen.onkeypress(pressq,'q')

screen.mainloop()

```

(会员专属：能浏览所有文章，下载所有带链接的Python资源。)