我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python语言程序设计之二--用tur

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python语言程序设计之二--用tur

这篇笔记依然是在做《Python语言程序设计》第5章循环的习题。其中有两类问题需要记录下来。

第一是如何画围棋棋盘。围棋棋盘共有19纵19横。其中,位于(0,0)的星位叫天元,其余8个星位坐标分别是:(-6,6),(0,6),(6,6),(-6,0),(6,0),(-6,-6),(0,-6),(6,-6)。这里面涉及到绘制等间距网格,我选择for循环来实现。考虑到以后可以修改棋盘大小,所以网格间距和初始点位置都设置成全局变量。其代码如下:

# 绘制围棋棋盘

import turtle

# 线与线间隔
n = 30
# 初始点位置
x = -300
y = -300

# 定义棋盘样式
turtle.speed(3)
turtle.pencolor('black')
turtle.screensize(400, 400)

# 画横线
for i in range(19):
    turtle.penup()
    turtle.goto(x, y + n * i)
    turtle.pendown()
    turtle.forward(n * 18)

# 画竖线
turtle.left(90)
for i in range(19):
    turtle.penup()
    turtle.goto(x + n * i, y)
    turtle.pendown()
    turtle.forward(n * 18)

turtle.right(90)

# 画9个星位,每排三个,共三排所以是两层for循环
x_first = x + n * 3
y_first = y + n * 3 - n * 0.25

for i in range(3):
    for j in range(3):
        turtle.penup()
        turtle.goto(x_first + 6 * j * n, y_first + 6 * i * n)
        # 如果按下面写法,则先画左边3个星,再画中间3个
        # turtle.goto(x_first + 6 * j * n, y_first + 6 * i * n)
        turtle.pendown()
        turtle.begin_fill()
        turtle.fillcolor('blue')
        # 飞星的半径为1/4个网格间距
        turtle.circle(n * 0.25)
        turtle.end_fill()

# 隐藏画笔箭头
turtle.hideturtle()

turtle.done()

代码运行结果如下图:

题目非常简单,重点是通过画图来感受循环在处理重复性动作时的威力。但凡重复性的工作都可以用循环来处理。这也正是计算机擅长的工作,并且也是程序的意义所在:把人的精力从繁琐的、海量的、重复性的、简单的初级工作中解脱出来。

第二个问题就是绘制正弦、余弦函数。其核心思想是:放下画笔,然后让画笔依次通过各个坐标点就画出一条正弦余弦曲线。从这里也可以看出,这也是不断地重复性工作,重复地计算以x为横坐标的点的 y 坐标,然后重复地让画笔通过这些点。所以我也选用for循环。

当然,代码中值得关注的就是 x-0-y 坐标系的绘制。这段代码可以通用。

# 在正交坐标系下画sin(x)和cos(x)曲线

import turtle
import math

turtle.speed(1)

# 画 x 轴
turtle.penup()
turtle.goto(-220, 0)
turtle.pendown()
turtle.goto(220, 0)

# 画 x 轴箭头
turtle.setheading(150)
turtle.forward(20)
turtle.penup()
turtle.goto(220, 0)
turtle.setheading(-150)
turtle.pendown()
turtle.forward(20)

# 显示x
turtle.penup()
turtle.goto(225, 0)
turtle.write('X')

# 画 y 轴
turtle.penup()
turtle.goto(0, -100)
turtle.pendown()
turtle.goto(0, 100)

# 画 y 轴箭头
turtle.setheading(240)
turtle.forward(20)
turtle.penup()
turtle.goto(0, 100)
turtle.pendown()
turtle.setheading(-60)
turtle.forward(20)

# 显示Y
turtle.penup()
turtle.goto(0, 110)
turtle.write('Y')

# 画正弦曲线
x = -175
turtle.pensize(2)
turtle.color('blue')
turtle.penup()
turtle.goto(x, 50 * math.sin((x / 100) * 2 * math.pi))
turtle.pendown()
for x in range(-175, 176):
    turtle.goto(x, 50 * math.sin((x / 100) * 2 * math.pi))

# 将-2π的位置标示出来
turtle.penup()
turtle.goto(-100, -20)
turtle.write('-2π')

# 将2π的位置标示出来
turtle.penup()
turtle.goto(100, -20)
turtle.write('2π')

# 画余弦曲线
x = -175
turtle.pensize(2)
turtle.color('red')
turtle.penup()
turtle.goto(x, 50 * math.cos((x / 100) * 2 * math.pi))
turtle.pendown()
for x in range(-175, 176):
    turtle.goto(x, 50 * math.cos((x / 100) * 2 * math.pi))

turtle.hideturtle()
turtle.done()

运行结果如下:

最后我还是要重复一遍上面的心得:但凡重复性的工作都可以用循环来处理。这也正是计算机擅长的工作,并且也是程序的意义所在:把人的精力从繁琐的、海量的、重复性的、简单的初级工作中解脱出来。应该把精力放在建模和算法优化上。这才是重点和难点。

这句话重复了,可以for一下。哈哈,皮

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python语言程序设计之二--用tur

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python语言程序设计之二--用tur

这篇笔记依然是在做《Python语言程序设计》第5章循环的习题。其中有两类问题需要记录下来。第一是如何画围棋棋盘。围棋棋盘共有19纵19横。其中,位于(0,0)的星位叫天元,其余8个星位坐标分别是:(-6,6),(0,6),(6,6),(-
2023-01-30

Python语言程序设计之一--for循

最近学到了Pyhton中循环这一章。之前也断断续续学过,但都只是到了函数这一章就停下来了,写过的代码虽然保存了下来,但是当时的思路和总结都没有记录下来,很可惜。这次我开通了博客,就是要把这些珍贵的学习思考总结记录下来。从现在开始。关于这一章
2023-01-30

Python语言程序设计之三--列表Li

最近在学习列表,在这里卡住了很久,主要是课后习题太多,而且难度也不小。像我看的这本《Python语言程序设计》--梁勇著,列表和多维列表两章课后习题就有93道之多。我的天!但是题目出的非常棒,许多题目都具有相似性。这倒不是说这些题目类似,而
2023-01-30

揭秘C语言程序设计的探索之旅

C语言是一门广泛应用于计算机科学和编程领域的编程语言,它简洁、高效、灵活,被广泛用于开发各种软件和系统。本文将带领读者一起探索C语言程序设计的奥秘,了解它的基本特点、语法规则和常见应用。C语言的特点之一就是它的简洁性。相对于其他一些编程语
揭秘C语言程序设计的探索之旅
2024-02-25

oracle是程序设计语言吗

否,oracle 不是程序设计语言。它是数据库管理系统,用于创建和管理数据库,但它提供了一种特定于数据库操作的专门编程语言 pl/sql。Oracle 是程序设计语言吗?否。Oracle 是一种数据库管理系统(DBMS),用于创建和管理
oracle是程序设计语言吗
2024-04-19

学习python的第二天(程序语言)

一.程序语言1.机械语言由于0和1组成优点:执行效率快缺点:操作麻烦繁琐2.汇编语言比机械语言好点优点:比机械语言操作方便缺点,执行慢3.高级语言主要两个,java是编译性语言,python是解释性语言二.python的安装和环境变量设置1
2023-01-31

c语言与c语言程序设计一样吗

否。c语言是开发软件的编程语言,而c语言程序设计是使用c语言创建程序的过程,包括编写代码、编译和运行。C语言与C语言程序设计是否相同?答案:否详细说明:C语言和C语言程序设计虽然名称相似,但它们是两个不同的概念:C语言:一种计算机编
c语言与c语言程序设计一样吗
2024-04-13

c语言程序设计怎么换行

在 c 语言程序设计中,可以使用以下方法换行:转义字符 '\n'puts() 函数fputs() 函数fputc() 函数(逐个字符打印,使用字符 '\n' 打印换行符)如何使用 C 语言程序设计换行在 C 语言程序设计中,可以通过以下方
c语言程序设计怎么换行
2024-04-05

C语言如何设计并行程序

设计并行程序的关键在于充分利用计算机处理器的多核心和多线程能力,以提高程序的性能和效率。以下是设计并行程序的一般步骤:分析程序的计算密集型部分:首先确定程序中哪些部分是计算密集型的,即需要较长时间才能完成的计算任务。这些部分是并行化的潜在
2023-10-27

c语言程序设计和编程一样吗

不,c语言程序设计是编程的一部分,但两者并不相同:c语言程序设计关注c语言特性,如语法和数据类型。编程涵盖所有编程语言,涉及算法设计和软件工程。c语言程序设计用于编写特定应用程序,而编程用于解决广泛的问题。C语言程序设计和编程是一样的吗?
c语言程序设计和编程一样吗
2024-04-13

软件工程教程之PDL(过程设计语言)

  过程设计语言(Process Design Language,简称PDL),也称程序描述语言,又称为伪码.它是一种用于描述模块算法设计和处理细节的语言.现在就跟着小编共同来学习一下:软件工程教程之PDL(过程设计语言)。  一、PDL的介绍  刚刚小编也说了,PDL也有人将其称之为伪码,事实上这是一个相对来说比较笼
软件工程教程之PDL(过程设计语言)
2024-04-18

c语言程序设计和c++一样吗

c++kquote>c 语言程序设计与 c++ 并不相同。它们在以下方面存在差异:语法差异:c++ 引入名称空间、对象、流操作符和模板。功能差异:c++ 提供异常处理、stl、高级内存管理和多重继承。概念差异:c++ 是面向对象的,强调数据
c语言程序设计和c++一样吗
2024-04-13

全国计算机二级C语言程序设计章节练习题及答案(4)

  对于备考计算机二级C语言考试的考生可以多做试题,一方面了解往年考试题型,一方面熟悉往年考点。今天编程学习网小编给大家准备了全国计算机二级C语言程序设计章节练习题及答案(4),供考生们练习。  点击查看:全国计算机二级C语言程序设计章节练习题及答案汇总     1.下列变量名中,非法的是(
全国计算机二级C语言程序设计章节练习题及答案(4)
2024-04-18

全国计算机二级C语言程序设计章节练习题及答案(8)

  对于备考计算机二级C语言考试的考生可以多做试题,一方面了解往年考试题型,一方面熟悉往年考点。今天编程学习网小编给大家准备了全国计算机二级C语言程序设计章节练习题及答案(8),供考生们练习。  点击查看:全国计算机二级C语言程序设计章节练习题及答案汇总  判断题  √ 1.表达式和表达式语句是不同的。  &t
全国计算机二级C语言程序设计章节练习题及答案(8)
2024-04-18

全国计算机二级C语言程序设计章节练习题及答案(3)

  对于备考计算机二级C语言考试的考生可以多做试题,一方面了解往年考试题型,一方面熟悉往年考点。今天编程学习网小编给大家准备了全国计算机二级C语言程序设计章节练习题及答案(3),供考生们练习。  点击查看:全国计算机二级C语言程序设计章节练习题及答案汇总  单选题  1.下列变量名中,非法的是( C )。  A.A25 B
全国计算机二级C语言程序设计章节练习题及答案(3)
2024-04-18

全国计算机二级C语言程序设计章节练习题及答案(1)

  对于备考计算机二级C语言考试的考生可以多做试题,一方面了解往年考试题型,一方面熟悉往年考点。今天编程学习网小编给大家准备了全国计算机二级C语言程序设计章节练习题及答案(1),供考生们练习。  点击查看:全国计算机二级C语言程序设计章节练习题及答案汇总  判断题  ×1.C++语言和C语言都是面向对象的程序设
全国计算机二级C语言程序设计章节练习题及答案(1)
2024-04-18

全国计算机二级C语言程序设计章节练习题及答案(9)

  对于备考计算机二级C语言考试的考生可以多做试题,一方面了解往年考试题型,一方面熟悉往年考点。今天编程学习网小编给大家准备了全国计算机二级C语言程序设计章节练习题及答案(9),供考生们练习。  点击查看:全国计算机二级C语言程序设计章节练习题及答案汇总  单选题  1.下列关于语句的描述中,错误的是( A )。  A.C
全国计算机二级C语言程序设计章节练习题及答案(9)
2024-04-18

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录