[雪峰磁针石博客]python 3.7极速入门教程3正式开始

  1. 云栖社区>
  2. 博客>
  3. 正文

[雪峰磁针石博客]python 3.7极速入门教程3正式开始

书籍寻找 2018-11-12 17:33:29 浏览995 评论0

摘要: 本文教程目录 3正式开始 本章内容比较多,除了代码部分,其他内容可以后面回头再看。 简介 Python是一门简单易学,功能强大的编程语言。它具有高效的高层次数据结构,简单但有效的方式支持面向对象编程,语法优雅,动态类型,解释执行。

本文教程目录

3正式开始

本章内容比较多,除了代码部分,其他内容可以后面回头再看。

简介

Python是一门简单易学,功能强大的编程语言。它具有高效的高层次数据结构,简单但有效的方式支持面向对象编程,语法优雅,动态类型,解释执行。使之成为多数平台上很多领域的脚本和快速应用开发的理想语言。它的设计理念强调代码的可读性, 跟C ++或Java等语言比可以用更少的代码实现同样的概念。Python能清晰地实现小型和大型程序。

Python解释器及其丰富的标准库的源码或者二进制版本可以从http://www.python.org/免费获取和转发。该还包含很多免费的第三方Python模块、程序、工具的发布链接及附加文档。

Python的解释器很容易用C或C++(或其他c可以调用的语言)扩展新功能和数据类型。 Python也适用于作为定制应用的扩展语言。

Python支持多种编程范式,包括面向对象的,命令式和函数式或过程式编程风格。它具有动态类型系统和自动内存管理和拥有庞大而全面的标准库

Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。

Python的官方解释器是CPython,该解释器用C语言编写,是一个由社区驱动的自由软件,目前由Python软件基金会管理。

本教程向读者通俗地介绍Python语言和系统的基本概念和特点。配合Python解释器边学边练最佳,所有例子已经自包含在教程中,也可离线阅读。

标准对象和模块参见The Python Standard LibraryThe Python Language Reference提供了Python更正式的说明。要用C或C++编写扩展参见Extending and Embedding the Python InterpreterPython/C API Reference Manual

本教程不会面面俱到。它介绍了许多Python的最引人注目的特性,会让你了解python风格。看完之后可阅读和编写Python模块。

所有例子基于linux演示,但因为python是跨平台的,通常在MAC和Windows等可以运行。

python的设计哲学与定位

Python的设计哲学是“优雅”、“明确”、“简单”。因此其对手Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通 常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。在设计Python语言时,如果面临多种选择,Python 开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法。由于这种设计观念的差异,Python源代码通常被认为比Perl具备更好的可读性, 并且能够支撑大规模的软件开发。这些准则被称为Python格言。在Python解释器内运行import this可以获得完整的列表。

Python开发人员尽量避开不成熟或者不重要的优化。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python内。所以很多人 认为Python很慢。不过,根据二八定律,大多数程序对速度要求不高。在某些对运行速度要求很高的情况,Python设计师倾向于使用JIT技 术,或者用使用C/C++语言改写这部分程序。目前可用的JIT技术是PyPy。

实际上python很多标准模块,比如numpy、socket等是c实现的,效率通常比一般开发用c语言的实现要高。另外python中的ctypes和 cpython可以达到c语言类似的效率。pypy在科学计算等相关方面效率可以接近C语言,但是在其他方面效率最多和java差不多,远不及C。

python的哲学基本上符合了伟大的世界历史名人老子的思想

python的地位

我们来看看国际权威机构对python地位的评价:

IEEE 2018年对python的整体评价:

图片.png

比较常用TIOBE编程排名http://www.tiobe.com/tiobe_index?page=index的python位于第4名:
图片.png

编程语言流行指数python位于第1名,如下http://pypl.github.io/PYPL.html

图片.png

无论那个排名,python都是脚本语言的老大。整体综合python位于第1-3名之间。在大陆,python因为中文资料相对匮乏,使用者偏少,但是也在快速发展中。

Python的使用范围

在人工智能、大数据、区块链等方面,python是炙手可热的核心语言之一。

大陆开源软件排名第一的翻墙goagent就是纯python书写的。

豆瓣网、知乎、果壳、海淘通、Reddit等公司python占了大头。

YouTube、Google、Facebook、Yahoo!、NASA等公司python是核心语言。

阿里巴巴、腾讯、百度、豆瓣等有较大规模的python应用。

  • 人工智能

在深度学习等领域,TensorFlowPytorch
等库占据了统治地位。更多库参考

  • Web开发

Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。使用Python语言编写的 Gunicorn作为Web服务器,也能够运行Python语言编写的Web程序。Python定义了WSGI标准应用接口来协调Http服务器与基于 Python的Web程序之间的沟通。一些Web框架,如Django、Pyramid、TurboGears、web2py、Zope、Flask、tornoda等,可以让程序员轻松地开发和管理复杂的Web程序。
Python 对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络蠕虫。第三方库Twisted支持异步在线编写程序和多数标准的网络协议(包含客户端 和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软件。另有gevent这个流行的第三方库,同样能够支持高性能高并发的网络开发。

爬虫相关的库有lxml、re、urllib2、BeautifulSoup、scrapy等。

根据IEEE统计、Python是仅次于Java的第2大web开发语言。

  • GUI开发:

Python本身包含的Tkinter库能够支持简单的GUI开发。但是越来越多的Python程序员选择wxPython或者PyQt来开发跨平台的桌面软件。使用它们开发的桌面软件运行速度快,与用户的桌面环境相契合。通过PyInstaller还能将程序发布为独立的安装程序包。与C++相比较,使用Python开发桌面软件通常更快更容易。

  • 操作系统:

在很多作业系统里,Python是标准的系统组件。大多数Linux发布版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在终端机下直接运行Python。有一些Linux发布版的安装器使用Python语言编写,比如Ubuntu的Ubiquity安装器、Red Hat Linux和Fedora的Anaconda安装器。Gentoo Linux使用Python来编写它的Portage包管理系统。Python标准库包含了多个调用作业系统功能的库。通过pywin32这个第三方软件包,Python能够访问Windows的COM服务及其它Windows API。使用IronPython,Python程序能够直接调用.Net Framework。一般说来,Python编写的系统管理脚本在可读性、性能、源代码重用度、扩展性几方面都优于普通的shell脚本。在树莓派等相关硬件的系统中,python是核心语言。

  • 自动化测试

多数工具集成python作为开发语言。比如自动化测试工具Appium、Selenium等。性能测试工具Grinder。

UI测试有uiautomator、sikuli、PyAutoGUI、pywinauto、ldtp、dogtail等。

Python的性能测试库multi-mechanize和locustio、funkload等模块具备强大的编程能力,通常扩展性和执行效率远强于Loadrunner和Jmeter。

Python在自动化测试交付很有知名度。比如Scons、buildbot(在谷歌chrome os使用)等。Jenkins有大量的python插件,比如facebook开发的https://github.com/facebook/buck

自动化测试框架pytest、Lettuce、Robot Framework、behave等有一定名气。

接口测试Python大量的库支持大量协议,比如HTTP,就可以requests基于pytest很快定制简单的接口测试框架。

抓包与流量控制有scapy、ATC、mitmproxy等。

命令行自动化有 pexpect、paramiko、subprocess、Fabric等。

安全测试:Flawfinder(http://www.dwheeler.com/flawfinder/)、knock(https://github.com/guelfoweb/knock)等
死链接检查:LinkChecker等
bug管理:Trac、roundup等

python的测试工具之多,以致有一个专门的网页收集:https://wiki.python.org/moin/PythonTestingToolsTaxonomy

  • 跨语言协作:胶水语言:

python是各种语言交互的最佳语言。python本身有c,java,c#的实现,可以直接调用对应语言的相关功能。对于主流的语言,python都可以良好的交互。

  • 科学计算:

NumPy、SciPy、Matplotlib可以让Python程序员编写科学计算程序。Python一开始就在科学计算方面很出名,现在也是大数据处理的核心语言,多数云平台选择python作为核心语言。

  • 游戏

很多游戏使用C++编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器。相较于Python,Lua的功能更简单、体积更小;而Python则支持更多的特性和数据类型。很多游戏,如EVE Online使用Python来处理游戏中繁多的逻辑。

python历史

Python的创始人为吉多·范罗苏姆(Guido van Rossum)。

image

1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他是一个蒙提·派森的飞行马戏团( _Monty Python's Flying Circus_)的爱好者。ABC是由吉多参加设计的一种教学语言。就吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但认为是非开放造成的。吉多决心在Python中避免这一错误,并取得了非常好的效果,完美结合了C和其他一些语言。

就这样,Python在吉多手中诞生了。实际上,第一个实现是在Mac机上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。

目前吉多仍然是Python的主要开发者,决定整个Python语言的发展方向。Python社区经常称呼他是仁慈的独裁者。

Python 2.0于2000年10月16日发布,增加了实现完整的垃圾回收,并且支持Unicode。同时,整个开发过程更加透明,社区对开发进度的影响逐渐扩大。 Python 3.0于2008年12月3日发布,此版不完全兼容之前的Python源代码。不过,很多新特性后来也被移植到旧的Python 2.6/2.7版本。

Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。 Python支持重载运算符,因此Python也支持泛型设计。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。 有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。

虽然Python可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发计划例如Zope、Mnet及BitTorrent,Google也广泛地使用它。Python的支持者 较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shell script、VBScript等只能处理简单任务的编程语言,并不能与Python相提并论。

Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语 言、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。因此,很多人还把Python作为一种“胶水 语言”(glue language)使用。使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目,例如Google Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。《Python技术手册》的作者马特利(Alex Martelli)说:“这很难讲,不过,2004年,Python已在Google内部使用,Google召募许多Python高手,但在这之前就已决 定使用Python。他们的目的是尽量使用Python,在不得已时改用C++;在操控硬件的场合使用C++,在快速开发时候使用Python。”

如何选择python第三方模块

1,http://stackoverflow.com/ 是选择模块的首选。在里面搜索python相关内容,一般会有python模块的比较。

2,pypi( https://pypi.python.org/pypi )是选择python模块最重要的依据。

pypi上面汇集了python的多数模块。比如 https://pypi.python.org/pypi/pexpect 是pexpect模块的介绍。

3,linux的包管理提供了丰富的高质量的python模块,可以尝试使用。

比如在centos中使用 "yum search all pexpect"

4,https://www.anaconda.com/ 是占市场份额很大的首选python科学计算平台。自带了大量优质的外部库。

通用IDE|文本编辑器

很多并非集成开发环境软件的文本编辑器,也对Python有不同程度的支持,并且加上专门为Python设计的编辑器插件也会有很高的可用性。

  • eclipse + pydev插件

  • emacs + 插件

  • NetBeans + 插件

  • SlickEdit

  • Geany 推荐

  • TextMate

  • Vim + 插件

  • Sublime Text + 插件 推荐

  • EditPlus

  • UltraEdit

  • PSPad

  • Editra 由Python开发的程序编辑器。

  • Notepad++ 推荐

  • vscode 强烈推荐

专门为Python设计的IDE软件

适用于Python的集成开发环境(IDE)软件,除了标准二进制发布包所附的IDLE之外,还有许多其他选择。其中有些软件设计有语法着色、语法检查、 运行调试、自动补全、智能感知等便利功能。由于Python的跨平台出身,这些软件往往也具备各种操作系统的版本或一定的移植性。

  • spyder 大数据分析、科学计算等开发测试的首选。 --强烈强烈推荐

  • Eric:基于PyQt的自由软件,功能强大。支持自动补全、智能感知、自动语法检查、工程管理、svn/cvs集成、自动单元测试等功 能。调试功能与Visual Studio和Eclipse类似。目前同时有两个版本。Eric4支持Python2.x,Eric5支持Python3.x。使用前需要先安装相应的 PyQt版本。

  • IDLE:Python“标准”IDE。一般随Python而安装,支持较少的编辑功能。调试功能也比较弱。

  • Komodo和Komodo Edit:后者是前者的免费精简版。也可以用于PHP,Ruby,Javascript,Perl,Web和云开发。

  • PyCharm:由JetBrains打造,该公司的Java IDE软件IntelliJ拥有海量的用户;PyCharm具备一般IDE的功能,比如,调试、语法高亮、Project管理、代码跳转、智能提示、自动 完成、单元测试、版本控制等等,同时另外,PyCharm还提供了一些很好的功能用于Django开发,同时支持Google App Engine,更酷的是,PyCharm支持IronPython。PyCharm是商业软件。 强烈推荐 功能强大,比较占用资源,经常有环境变量的坑。

  • PythonWin:包含在pywin32内的编辑器,仅适用于Windows。

  • SPE(Stani's Python Editor):功能较多的免费软件,依赖wxPython。

  • Ulipad:功能较全的免费软件,依赖wxPython。

  • WingIDE:可能是功能最全的IDE,但不是免费软件。**强烈强烈推荐 wingide6专业版破解

  • PyScripter:功能较全的开源IDE,使用Delphi开发。

更多参考资料:https://wiki.python.org/moin/IntegratedDevelopmentEnvironments

开胃菜

如果你做很多电脑上工作,最终你发现,有些任务你想实现自动化。例如你在大量的文本文件上执行搜索和替换,或通过复杂的方式重命名和重整一批照片文件。也许你想编写小型的自定义数据库,或者专门的图形用户界面应用程序,或简单的游戏。

如果你是个专业的软件开发,你可能处理几个C/C++/Java库,编写/编译/测试/重编译周期太慢。也许你正在为库编写测试套件,发现书写测试代码是个体力活。或者应用程序需要一门扩展语言,但是不想设计和实施新的语言。

Python就是你需要的语言。

你可以为这些任务写Unix shell脚本或Windows批处理文件,但shell脚本更适合移动文件和更改文本数据,不擅长图形用户界面的应用程序或游戏。你可以写一个 C/C++/Java程序,但需要消耗大量开发时间。 Python易于使用,可用于Windows,Mac OS X和Unix操作系统,并帮助你更快速地完成工作。

Python虽然使用简单,但是真正的编程语言。跟shell脚本或批处理文件比,它提 供更多的结构并支持大型程序。Python比C提供了更多的错误检查。它是更高级别的语言,内置了的高级数据类型,如灵活的数组和字典。基于这些通用数据 类型, Python相对Awk甚至是Perl可以处理很多领域的难题,很多东东在python中会比其他语言处理起来更容易。

Python允许你分割程序为模块,以便在其他Python程序重复使用。它包含了丰富的标准模块,你可以调用或学习。一些模块提供如文件I/O,系统调用,socket,甚至像Tk图形用户界面接口。

Python是解释语言,程序开发时不需要编译和链接而节省可观的时间。解释器可交互使用,方便试验的语言特性,写信手而用的程序,还可在自下而上的程序开发时测试功能,同时是方便的桌面计算器。

Python编写的应用程序紧凑,可读性好。 Python程序通常同样的C ,C++或Java程序要短得多,原因如下:

  • 高级数据类型允许你在单条语句中表示复杂的操作;

  • 语句的组织依赖于缩进而不是开始和结束的括号;

  • 变量或参数声明不是必须的。

Python是可扩展的:懂C的话很容易添加新的内置函数或模块到解释器,可以最快速度执行关键操作或链接Python程序到二进制库(如供应商特定的图形库)。等你熟悉之后,可以链接Python解释器到C应用程序,并用它作为扩展或命令语言。

Python的名字来源于英国广播公司(BBC)节目"Monty Python’s Flying Circus",与爬行动物无关。

现在大家已经对Python产生了兴趣,想了解更多。学习一门语言的最好方式就是使用它,让我们首先学习Python解释器。

教程的其他部分通过实例介绍了Python语言和系统的各种特性。先是简单表达式,语句和数据类型,然后函数和模块,最后是高级概念比如异常和用户定义的类。

解释器

Python的解释器在linux上通常安装在/usr/bin/python,/usr/local/bin/python,/usr/local/bin/python等地方。Windows一般位于C:\Python36,且一般需要设置PATH环境变量。

退出解释器:Linux上Control-D,Windows上Control-Z,统一的方式:quit()。

解释器的行编辑功能并不复杂。在Unix上,解释器可能已启用了GNU readline库,它增加了更多的交互编辑和历史记录功能。输入Control-P,如果发出哔哔声表示支持readline;见附录交互式输入编辑和历史替换https://docs.python.org/3/tutorial/interactive.html#tut-interacting

解释器的操作有些像Unix Shell:当标准输入连接到tty设备时,它读取并以交互方式执行命令;当文件名参数或以文件作为标准输入设备时,它读取并执行文件中脚本。 启动解释器的第二个方法是python -c command [arg] …,执行command中的语句,等同于Shell的-c选项。因为Python语句通常会包括空格或其他shell的特殊字符是特殊的外壳,建议使 把command放在单引号中。注意因为缩进原因,开始的引号后面不能有空格。

# python3 -c "print('Hello')"
Hello
# $ python3 -c 'print("Hello")'
Hello

注意: 上面是Linux和MAC的例子,在终端里面执行。Windows下则需要替换python3为python,在cmd命令行窗口执行。

一些Python模块也作为脚本使用:python -m module [arg] …。

使用脚本文件时,-i参数可以进入交互模式。

比如有test.py文件如下:

print("Hello")
print("World!")

执行:

$ python -i test.py
Hello
World!
>>>

参数传递

脚本名和附加参数转换成字符串列表传递给sys模块中的argv变量。导入sys模块访问这个列表。列表的长度至少为1,在无脚本无参数时,sys.argv[0]是空字符串。当脚本名为"-"(即标准输入),sys.argv[0]为"-"。使用-c参数时,sys.argv中[0]设置为'-c'。使用-m参数sys.argv中[0]设置为模块的全名。-c或-m之后的选项留在sys.argv中待命令或模块来处理。

可以用sys.argv来处理参数:

#!/usr/bin/env python3
# encoding: utf-8

import sys

print "script name is", sys.argv[0]
if len(sys.argv) > 1:
    print "there are", len(sys.argv)-1, "arguments:"
    for arg in sys.argv[1:]:
        print arg
else:
    print "there are no arguments!"
$ ./test.py 1 2 3
script name is ./test.py
there are 3 arguments:
1
2
3

注意:通常python标准模块argparse处理参数会更合适。

交互模式

当tty读取命令时解释器为交互模式。主命令提示符为(>>>),从命令提示符(…)用于续行。

$ python
Python 3.7.0 (default, Jun 28 2018, 13:15:42)
[GCC 7.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> the_world_is_flat = 1
>>> if the_world_is_flat:
...     print("Be careful not to fall off!")
...
Be careful not to fall off!

错误处理

当错误发生时,解释器打印错误信息和栈跟踪。在交互模式下,它返回主提示符;在文件输入时,打印栈跟踪器后以非零退出状态退出。有些错误致命的,无条件以非零退出的退出,比如内部不一致和内存耗尽。所有的错误信息都写入标准错误流;正常输出写入标准输出。

输入中断符(通常是Control-C或DEL)可以取消输入,命令执行时输入中断引发一个KeyboardInterrupt异常。

执行python脚本

Linux系统中,Python脚本可直接执行,就像shell脚本,在文件首行添加如下:

#! /usr/bin/env python3

并添加可执行权限:

chmod +x myscript.py

Windows系统中Python的安装程序会自动关联_.py到python.exe,双击即可运行。_.pyw则不会出现windows控制台。

源码编码

使用的编码ASCII(默认)以外的字符Python的源文件,可以在行#!之后定义源文件编码:

# -*- coding: encoding -*-

根据这个声明,源文件中的所有字符将用该编码的编码,并可能在用选定的编码书写Unicode字符串。编码列表可以在Python库参考手册的codecshttps://docs.python.org/3/library/codecs.html#module-codecs部分找到。实例:

一般推荐使用utf-8的格式,在网络上比较通用,可以这样设置:

# coding=utf-8

特殊的中文处理可以使用gbk。通常为了正确显示所有的字符,编辑器必须支持utf-8等格式,并有相应的字体。

交互式启动文件(非常用)

交互式使用Python的时候,常常需要在解释器启动时执行一些标准命令。可设置环境变量PYTHONSTARTUP表示启动命令文件,类似Unix shell的.profile文件。

文件只对交互会话有效,当 Python 从脚本中读取命令或以终端/dev/tty做为外部命令源(行为和交互式会话类似)。它与解释器执行的命令在同一命名空间,这样它定义或导入的对象可以在 解释器中使用。也可以在这个文件中改变提示符sys.ps1和sys.ps2。

加载其他文件的方式:

if os.path.isfile('.pythonrc.py'):
    execfile('.pythonrc.py')

在脚本中使用启动文件如下:

import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
    execfile(filename)

自定义模块(非常用)

Python有两个hook: sitecustomize 和 usercustomize。使用它们首先需要知道site-packages目录,方法如下:

>>> import site
>>> site.getusersitepackages()
'/home/ar/.local/lib/python3.7/site-packages'

现在你可以在site-packages的目录下创建文件usercustomize.py,放入你想添加的任何内容。 该文件会影响 python 的每次调用,除非启动的时候加入-s选项禁止自动导入。

类似的有sitecustomize,但是一般由管理员在全局site-packages创建,在usercustomize之前导入,更多资料参见site模块https://docs.python.org/3/library/site.html#module-site

开始

  • 用turtle绘制长度为10像素的正方形(初级)

image

参考代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Author:    xurongzhong#126.com wechat:pythontesting qq:37391319
# 技术支持 钉钉群:21745728(可以加钉钉pythontesting邀请加入) 
# qq群:144081101 591302926  567351477
# CreateDate: 2018-6-07
# square.py
# Draw a square

from turtle import *

forward(100)
left(90)
forward(100)
left(90)
forward(100)
left(90)
forward(100)
left(90)

exitonclick()

注意:pycharm之类的IDE虽然功能比较强大,但是很消耗资源,经常有环境配置的问题,建议使用wingide,spyder,vscode等比较轻便的ide或者直接用命令行执行。

方法 功能
forward(distance) 向前移动distance
backward(distance) or back(distance) 向后移动distance
left(angle) 左转angle度
right(angle) 右转angle度
setheading(angle) 旋转指向,0为向右,旋转方向为逆时针。
exitonclick() 点击时关闭窗口
pendown() 移动时绘制
penup() 移动时不绘制。
circle(radius, extent) 沿给定半径的圆移动。 可选范围指定弧角。
dot(size) 在当前位置绘制尺寸为size的点。

注意:不要将任何程序文件命名为turtle.py,这样无法导入turtle。

参考资料

习题:

1.turtle的初始方向是什么?

2.turtle.isdown()是什么含义,默认值是什么?

3.比较运行这两个步骤序列的结果:
(a)
forward(100)
left(90)
(b)
left(90)
forward(100)

image

image

4.比较运行这两个步骤序列的结果:
(a) backward(100)
right(90)
(b) right(90)
backward(100)

5.确定此程序绘制的圆的中心:
circle(100)

6.确定此程序绘制的圆的中心:
left(90)
circle(100)

7.下面代码的执行结果是?
forward(100)
right(90)
circle(50)
right(90)
forward(200)
right(90)
circle(50)

image

8.绘制边长为100的等边三角形。

9.绘制以(100,50)为中心,半径为100的圆,圆圈中心有个点。

【云栖快讯】一站式开发者服务,海量学习资源免费学  详情请点击

网友评论