上节课结尾说,会以今天的Tony老师为例子,教你们画出多彩好看炫酷(装B)的图片,还让你们把循环、条件等基础语法学了!
一不小心,时间就过去了,半个月,请见谅
目前钻到爬虫里面去了,有兴趣的可以期待后面的爬虫教学
正在朝着一种最简单的爬虫前进
不用复杂的思维
只需要你跟平常操作浏览器一样就行
顺便把数据给爬下来,美滋滋!
回归这节课的重点,语法教学!(控制结构)
先说明一下,基础语法有很多
比如:变量、操作符、函数等等
这里要讲的是最常用,也是逻辑的开端
控制结构中的两种,最基本的!也是最常用的
学了这两种,你也就可以写代码了。
控制结构是编程语言中用于控制程序执行流程的语句或构造。
分支结构(选择结构):
if
语句:根据条件判断执行一块代码。if...elif...else
语句:用于多个条件的选择结构。x if condition else y
,根据条件返回x
或y
。循环结构:
for
循环:遍历序列(如列表、元组、字符串)或其他可迭代对象。while
循环:只要给定的条件为真,就重复执行一段代码。这两种控制结构允许程序员根据条件、循环和其他逻辑来控制程序的执行流程,使得程序能够做出决策、重复执行任务以及处理预期和意外的情况。
上一节课,有人抱怨这个海龟太不像了,根本就是箭头
那么,你有没有找到其他的,像海龟的方法呢?
这里更新下代码:
import turtle
tony = turtle.Pen()
tony.shape("turtle")#给这个tony老师赋予形象
tony.forward(100)#让海龟前进100米(像素)
你可以跟上节课的代码对比一下
tony老师是不是就变得像海龟了呢?
什么,你说你心目中的tony不是这样子的?
那么你去上一节课文档找找
是否能找回你最初的印象?
(触类旁通是我们必须学会的!)
现在我们思考一下,我们要如何让tony帮我们画一个正方形
向前100米
转90度
向前100米
转90度
向前100米
转90度
向前100米
转90度
import turtle
# 创建一个画笔
tony = turtle.Pen()
# 设置画笔的颜色和形状
tony.color("red")
tony.shape("turtle")
tony.forward(100) #让海龟前进100米(像素)
tony.right(90)
tony.forward(100)
tony.right(90)
tony.forward(100)
tony.right(90)
tony.forward(100)
tony.right(90)
看,这个红tony是不是就帮我们画好了一个正方向
你会发现,代码中有两句居然重复了四次
天哪
这对于程序员简直不能忍受
居然在重复工作
到底是你控制计算机还是计算机控制你
所以我们要用控制结构
改变它!
什么是 for 循环?
for
循环是一种在编程中重复执行一段代码块的结构。它通常用于遍历序列(如列表、元组或字符串)或其他可迭代对象的元素。
for 循环的基本语法:
for variable in iterable:
# 这里是循环体,将对每个元素执行的代码
在这个语法中,variable
是一个变量名,它将在每次循环中存储 iterable
中的当前元素。iterable
是一个可迭代的对象,如列表、元组、字符串等。
for 循环的简单示例:
假设我们有一个包含数字的列表,我们想要打印出列表中的每个数字。我们可以使用 for
循环来实现这个任务:
numbers = [1, 2, 3, 4, 5]
for number in numbers:
print(number)
在这个例子中,numbers
是我们的可迭代对象(一个列表),number
是我们在循环中使用的变量。每次循环,number
都会存储 numbers
列表中的下一个元素,并打印出来。
输出结果将是:
1
2
3
4
5
这就是一个基本的 for
循环的例子。通过修改循环体中的代码,你可以根据需要执行不同的操作,例如计算、修改数据或进行更复杂的逻辑判断
原代码+for循环
import turtle
# 创建一个画笔
tony = turtle.Pen()
# 设置画笔的颜色和形状
tony.color("red")
tony.shape("turtle")
for i in range(4):
tony.forward(100) #让海龟前进100米(像素)
tony.right(90)
i 就是变量,可以任意,比如 S b
但是记住不要跟自己命名的重复
(比如:for tony 再搞个tony 就很头大,tony老是会忙晕的!)
range(4) = range(0,4)
一个包含四个整数(从 0 到 3)的序列
你要执行N次,就把4换成N。
你是不是知道怎么用了呢?
那这里留个作业,正方形是4条边,就四次循环
那五边形你会不会画呢?
if
语句是编程中的一种条件控制结构
它允许程序根据特定条件执行不同的代码块
基本的 if
语句结构如下:
if condition:
# 如果条件为真(True),则执行这里的代码块
这里,condition
是一个表达式或布尔值,它会被评估为 True
或 False
。如果 condition
为 True
,那么 if
语句下面的代码块将会被执行。
如果 condition
为 False
,那么这个代码块将被跳过。
以下是一个简单的例子:
age = 35
if age >= 18:
print("你已经成年了")
在这个例子中,我们首先设置了变量 age
的值为35。
然后,我们使用 if
语句检查 age
是否大于等于 18。
因为 35 大于等于 18,所以条件为 True
,因此会执行 print("你已经成年了")
这一行代码
输出 “你已经成年了”。
除了基本的 if
语句
Python 还提供了其他的条件控制结构来处理更复杂的情况:
if...else
语句:if condition:
# 如果条件为真,则执行这里的代码块
else:
# 如果条件为假,则执行这里的代码块
if...elif...else
语句:if condition1:
# 如果条件1为真,则执行这里的代码块
elif condition2:
# 如果条件1为假,但条件2为真,则执行这里的代码块
else:
# 如果所有条件都为假,则执行这里的代码块
通过使用 if
语句和相关的条件控制结构,你可以编写出能够根据不同情况做出不同反应的程序。
这对于实现复杂的逻辑和决策过程非常有用。
import turtle
# 设置屏幕大小
screen = turtle.Screen()
screen.setup(800, 800)
导入了 Turtle 库,并创建了一个新的屏幕对象。screen.setup(800, 800)
设置了屏幕的宽度和高度为 800 像素。
设置好大小,才好碰瓷呀
# 创建一个海龟对象
tony = turtle.Pen()
这里创建了一个名为 tony
的海龟对象。在 Turtle 库中,Pen
类代表可以绘制图形的海龟。
tony老师化身碰瓷高手
# 设置画笔的颜色和形状
tony.color("red")
tony.shape("turtle")
这两行代码分别设置了海龟画笔的颜色为红色 (tony.color("red")
) 和形状为默认的海龟形状 (tony.shape("turtle")
)。
给他个形象
tony.speed(1)
这行代码设置了海龟的移动速度。
在这个例子中,速度设置为 1,这是最慢的速度
老年人就得慢,太快了别人不相信
# 开始循环,每移动一步就调用边缘检测
for i in range(100):
# 边缘检测
if tony.xcor() < -screen.window_width() / 2 or tony.xcor() > screen.window_width() / 2:
tony.right(90)
elif tony.ycor() < -screen.window_height() / 2 or tony.ycor() > screen.window_height() / 2:
tony.right(90)
tony.forward(10)
这部分代码使用了一个 for
循环来控制海龟的移动。循环会执行 100 次。
你想多少次就多少次,同时丢个问题:你能让他一直循环吗?(提示:while)
在每次循环中,首先进行边缘检测。
tony.xcor()
和 tony.ycor()
分别返回海龟当前在 x 轴和 y 轴上的坐标。
屏幕的中心点,是(0,0)所以才要除以2
X轴800,就是左边是400,右边是400;
tony.xcor() < -screen.window_width() / 2 or tony.xcor() > screen.window_width() / 2
如果海龟的 x 坐标小于屏幕宽度的一半的负值或者大于屏幕宽度的一半
(即海龟到达了屏幕的左右边缘),那么海龟会向右转 90 度 (tony.right(90)
)
如果海龟的 y 坐标小于屏幕高度的一半的负值或者大于屏幕高度的一半
(即海龟到达了屏幕的上下边缘),那么海龟也会向右转 90 度。
无论是否进行了转向,海龟都会向前移动 10 像素 (tony.forward(10)
)
通过这个循环和边缘检测,海龟会在屏幕上移动并自动转向,避免超出屏幕范围。当循环执行完毕后,程序会自动结束。
这就是 if 判断语句的妙用,要是没有这个if,
tony老师被压爆了都不知道呢!
import turtle
# 设置屏幕大小
screen = turtle.Screen()
screen.setup(800, 800)
# 创建一个海龟对象
tony = turtle.Pen()
# 设置画笔的颜色和形状
tony.color("red")
tony.shape("turtle")
tony.speed(1)
# 开始循环,每移动一步就调用边缘检测
for i in range(100):
# 边缘检测
if tony.xcor() < -screen.window_width() / 2 or tony.xcor() > screen.window_width() / 2:
tony.right(90)
elif tony.ycor() < -screen.window_height() / 2 or tony.ycor() > screen.window_height() / 2:
tony.right(90)
tony.forward(10)
你会看到,这tony乖乖回头
但是目测受伤严重,碰瓷碰出血
你想要它更安全
那么就得把屏幕的边缘判断减少一个身位
才能确保躲闪及时!
不知道,少侠看到了这两个语句是否心中有其他更奇妙的想法迸发呢?
这里你可能想说,怎么学到的就这一点,放心,少侠
学到了if,while在用到的时候你自然知道,当if不能满足你的时候,它自然会出现在你的视野
学到了for,break,continue在用到的时候你自然知道,当if不能满足你的时候,它自然会出现在你的视野。
完蛋 老夫忘记教你装逼了!
import turtle
# 设置屏幕大小
screen = turtle.Screen()
screen.setup(800, 800)
# 创建一个海龟对象
tony = turtle.Pen()
# 设置画笔颜色和宽度
tony.width(20)# 你要多粗就多粗
tony.penup() #抬起笔
tony.goto(0,0) #移动到
tony.pendown() #放笔
tony.color("blue") #颜色 蓝色
tony.circle(100) #画半径100的圆
tony.penup() #抬起笔
tony.goto(150,0) #移动到
tony.pendown() #放笔
tony.color("black") #颜色 蓝色
tony.circle(100) #画半径100的圆
tony.penup() #抬起笔
tony.goto(150+150,0) #移动到
tony.pendown() #放笔
tony.color("red") #颜色 蓝色
tony.circle(100) #画半径100的圆
tony.penup() #抬起笔
tony.goto(85,-150) #移动到
tony.pendown() #放笔
tony.color("green") #颜色 蓝色
tony.circle(100) #画半径100的圆
tony.penup() #抬起笔
tony.goto(85+150,-150) #移动到
tony.pendown() #放笔
tony.color("yellow") #颜色 蓝色
tony.circle(100) #画半径100的圆
奥运五环带你装13!
效果还不错吧,详细看这些一样的代码是否可以优化呢?
评论区给出答案,我会帮你检查哦!
print(有缘再见!!!)