Python04 range()方法的使用、turtle.textinput()方法和write()的使用、turtle.numinput()的使用
1 range() 方法的使用
1.1 range方法介绍
range方法会返回一个range类型的对象,该对象会根据range方法的参数产生一些列整型数据
技巧01:range方法有三个参数,第一个参数是开始值,第二个参数是结束值,第三个参数是补偿值
坑01:range方法默认开始值为0,步长值为1
range(stop) -> range object
只提供一个结束值时,range方法会默认从0开始,而且步长为1;产生的数据不会包含结束值
range(start, stop[, step]) -> range object
提供初始值和结束值时,range方法会从初始值开始,步长任然为1;产生的数据不会包含结束值
1.2 示例代码
lis01 = list(range(4))
print(lis01)
print(type(range(4)))
print("分割线".center(30, "=")) lis02 = list(range(4, 7))
print(lis02)
print("分割线".center(30, "=")) lis03 = list(range(8, 20, 2))
print(lis03)
1.3 利用range和循环画圆
1.3.1 需求
1.3.2 源码
import turtle t = turtle.Pen()
t.pensize(4) for i in range(4):
t.circle(100)
t.left(90) turtle.mainloop()
1.3.3 如何更改每个圆圈的颜色
# 利用循环画圆
import turtle t = turtle.Pen()
t.pensize(4) colorList = ["blue", "red", "green", "yellow"]; for i in range(4):
t.pencolor(colorList[(i)%4])
t.circle(50)
t.left(90) turtle.mainloop()
1.4 利用range生成列表
1.4.1 传统方式
坑01:range方法产生的数据类型是range类型的,如果要将range产生的数据赋值给一个列表对象,就必须进行类型转换
提高:将range生成的数据经过加工过后再赋值给列表对象
lis = list(range(1, 11))
lis02 = list()
print(lis)
print(id(lis02)) for i in range(lis.__len__()):
lis02.append(lis[i]**2) print(lis02)
print(id(lis02)) print(min(lis02))
print(max(lis02))
print(sum(lis02))
1.4.2 列表解析方式
2 turtle.textinput()方法和write()方法
2.1 textinput 简单介绍
textinput 方法主要为用户提供一个输入窗口,下面一行代码的展现效果就如图所示
your_name = turtle.textinput("Input your name", "What is your name?")
2.2 write简单介绍
write 方法是 turtle.Pen 对象的方法
def write(self, arg, move=False, align="left", font=("Arial", 8, "normal")
arg -> 需要打印的参数
move -> 打印下一个时是否需要移动,默认是不移动的
align -> 打印文本的排版效果,默认是左对齐
font -> 打印文本的字体,第一个代表字体类型,第二个代表字体大小,第三个表示字体修饰(正常、加粗、倾斜等)
2.3 textinput 和 write 综合应用
2.3.1 效果展示
2.3.2 源码
import turtle
t = turtle.Pen() turtle.bgcolor("black")
colorList = ['red', 'blue', 'green', 'yellow'] your_name = turtle.textinput("Input your name", "What is your name?") for x in range(100):
t.pencolor(colorList[x % 4])
t.penup()
t.forward(x * 4)
t.pendown()
t.write(your_name, font = ("Arial", int((x + 4) / 4), "bold"))
t.left(90) turtle.mainloop()
3 turtle.numinput 方法
3.1 简单介绍
numinput是turtle提供的供用户输入浮点型数字的地方
坑01:通过numinput录入的数据是浮点型数据
3.2 numinput使用
3.2.1 需求
3.2.2 源代码
# 循环次数由用户控制
import turtle t = turtle.Pen()
t.pencolor("red") number = int(turtle.numinput("循环次数", "请输入循环次数", 10)) for i in range(number):
t.circle(30)
t.left(360/number) turtle.mainloop()
3.3 拓展
3.3.1 需求
3.3.2 源代码
import turtle t = turtle.Pen()
color_list01 = ["blue", "green"]
color_list02 = ["red", "skyblue"] for i in range(10):
t.pencolor(color_list01[i % 2])
t.circle(10)
t.left(360/10)
for i in range(20):
t.pencolor(color_list02[i % 2])
t.circle(20)
t.left(360/20) turtle.mainloop();
Python04 range()方法的使用、turtle.textinput()方法和write()的使用、turtle.numinput()的使用的更多相关文章
- Server.Transfer方法,Server.Execute方法和Response.Redirect方法有什么异同
(1)Server.Transfer方法: Server.Transfer("m2.aspx");//页面转向(服务器上执行). 服务器停止解析本页,保存此页转向前的数据后,再使页 ...
- 为什么要重写hashcode方法和equals方法
我们可能经常听到说重写equals方法必须重写hashcode方法,这是为什么呢?java中所有的类都是Object的子类,直接上object源码 /* * Copyright (c) 1994, 2 ...
- ASP.NET Core 中文文档 第二章 指南(4.10)检查自动生成的Detail方法和Delete方法
原文 Examining the Details and Delete methods 作者 Rick Anderson 翻译 谢炀(Kiler) 校对 许登洋(Seay).姚阿勇(Mr.Yao) 打 ...
- Spark Rdd coalesce()方法和repartition()方法
在Spark的Rdd中,Rdd是分区的. 有时候需要重新设置Rdd的分区数量,比如Rdd的分区中,Rdd分区比较多,但是每个Rdd的数据量比较小,需要设置一个比较合理的分区.或者需要把Rdd的分区数量 ...
- ThinkPHP的D方法和M方法的区别
M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...
- Hibernate中evict方法和clear方法说明
Hibernate中evict方法和clear方法说明 先创建一个对象,然后调用session.save方法,然后调用evict方法把该对象清除出缓存,最后提交事务.结果报错: Exception i ...
- jQuery.extend()方法和jQuery.fn.extend()方法源码分析
这两个方法用的是相同的代码,一个用于给jQuery对象或者普通对象合并属性和方法一个是针对jQuery对象的实例,对于基本用法举几个例子: html代码如下: <!doctype html> ...
- Android HTTP实例 使用GET方法和POST方法发送请求
Android HTTP实例 使用GET方法和POST方法发送请求 Web程序:使用GET和POST方法发送请求 首先利用MyEclispe+Tomcat写好一个Web程序,实现的功能就是提交用户信息 ...
- virtual方法和abstract方法
在C#的学习中,容易混淆virtual方法和abstract方法的使用,现在来讨论一下二者的区别.二者都牵涉到在派生类中与override的配合使用. 一.Virtual方法(虚方法) virtual ...
随机推荐
- jQuery学习_具备吸附功能的拖曳框
在线演示:http://sandbox.runjs.cn/show/2drrwkrx 关键点:保持一个不变,鼠标拖动时与边框的距离 === 鼠标左击时与边框的距离 源码: <!DOCTYPE h ...
- LeetCode Degree of an Array
原题链接在这里:https://leetcode.com/problems/degree-of-an-array/description/ 题目: Given a non-empty array of ...
- 如何在本地浏览器访问nginx
1.打开vmware"编辑虚拟机"设置,点击“网络适配器”选择“桥联模式”: 2.开启该虚拟机,输入用户名root及密码登陆服务器: 3.以管理员身份打开cmd,在命令窗口输入ip ...
- android资源目录---assets与res/raw区别
android资源目录---assets与res/raw的不同 Android 2011-05-24 14:40:21 阅读20 评论0 字号:大中小 订阅 assets:用于存放需要打包到应用程 ...
- OPCDAAuto.dll的C#使用方法浅析(转载)
上次研究了.Net版本的OPC API dll,这次我采用OPCDAAuto.dll来介绍使用方法.以下为我的源代码,有详细的注释无需我多言.编译平台:VS2008SP1.WINXP.KEPServe ...
- HTTP-POST
POST方式:用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列中请求URI所指定资源的附加新子项,Post被设计成用统一的方法实现下列功能: 1:对现有资源的解释: 2:向电 ...
- Eclipse中的maven项目打war包
在对应的pom文件中,找到packing这个属性,改为war:如果没有,就自己加一个,这个是有默认值的,默认为jar. 例如: <modelVersion>4.0.0</modelV ...
- Oracle存储过程使用总结
1.使用Oracle存储过程查询结果集: 网上写的都是他妈的扯淡!其实一句话就行了,你只要返回一个游标就OK了.具体代码如下: CREATE OR REPLACE PROCEDURE PR_ORDER ...
- Quartz.net 2.x 学习笔记01
Quartz.net 2.0 2012年4月9日发布了Released版本,到目前(2014-12-08)为止是2.3版 Quartz.net 项目地址:http://www.quartz-sched ...
- jenkins使用HTML Publisher Plugin插件 拉取报告样式缺失问题解决
---------------------------------------------------------临时解决方案----亲测ok 要解决该问题,方式也比较简单,就是修改Content S ...