Python零基础教程4——画图装逼趣学基础语法

2023-12-21 12:37:33

引言

上节课结尾说,会以今天的Tony老师为例子,教你们画出多彩好看炫酷(装B)的图片,还让你们把循环、条件等基础语法学了!
一不小心,时间就过去了,半个月,请见谅
在这里插入图片描述
目前钻到爬虫里面去了,有兴趣的可以期待后面的爬虫教学
正在朝着一种最简单的爬虫前进
不用复杂的思维
只需要你跟平常操作浏览器一样就行
顺便把数据给爬下来,美滋滋!
在这里插入图片描述
回归这节课的重点,语法教学!(控制结构)

在这里插入图片描述

开整

先说明一下,基础语法有很多
比如:变量、操作符、函数等等
这里要讲的是最常用,也是逻辑的开端
控制结构中的两种,最基本的!也是最常用的
学了这两种,你也就可以写代码了。
在这里插入图片描述

控制结构

控制结构是编程语言中用于控制程序执行流程的语句或构造。

  1. 分支结构(选择结构)

    • if语句:根据条件判断执行一块代码。
    • if...elif...else语句:用于多个条件的选择结构。
    • 单行条件语句:x if condition else y,根据条件返回xy
      在这里插入图片描述
  2. 循环结构

    • for循环:遍历序列(如列表、元组、字符串)或其他可迭代对象。
    • while循环:只要给定的条件为真,就重复执行一段代码。

这两种控制结构允许程序员根据条件、循环和其他逻辑来控制程序的执行流程,使得程序能够做出决策、重复执行任务以及处理预期和意外的情况。
在这里插入图片描述

第一个图:正方形学循环(for)

上一节课,有人抱怨这个海龟太不像了,根本就是箭头
那么,你有没有找到其他的,像海龟的方法呢?
这里更新下代码:

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 语句结构如下:

if condition:
    # 如果条件为真(True),则执行这里的代码块

这里,condition 是一个表达式或布尔值,它会被评估为 TrueFalse。如果 conditionTrue,那么 if 语句下面的代码块将会被执行。
如果 conditionFalse,那么这个代码块将被跳过。
以下是一个简单的例子:

age = 35

if age >= 18:
    print("你已经成年了")

在这个例子中,我们首先设置了变量 age 的值为35。
然后,我们使用 if 语句检查 age 是否大于等于 18。
因为 35 大于等于 18,所以条件为 True,因此会执行 print("你已经成年了") 这一行代码
输出 “你已经成年了”。
在这里插入图片描述

除了基本的 if 语句
Python 还提供了其他的条件控制结构来处理更复杂的情况:

  1. if...else 语句
    当条件不满足时,可以执行一个备用的代码块。
if condition:
    # 如果条件为真,则执行这里的代码块
else:
    # 如果条件为假,则执行这里的代码块
  1. 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不能满足你的时候,它自然会出现在你的视野。
在这里插入图片描述

完蛋 老夫忘记教你装逼了!
在这里插入图片描述

aoyunwuhuan

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(有缘再见!!!)

有缘再见!

文章来源:https://blog.csdn.net/qq_39471885/article/details/135101419
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。