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 ...
随机推荐
- CodeForces - 662A:Gambling Nim (求有多少个子集其异或为S)(占位)
As you know, the game of "Nim" is played with n piles of stones, where the i-th pile initi ...
- ASP.NET中服务器控件的生命周期
服务器控件的生命周期是创建服务器控件最重要的概念.作为开发人员,必须对服务器控件生命周期深刻理解.当然,这不是一朝一夕就可以做到的.对于学习控件开发技术的初学者,可以不必掌握得非常详细深入,只需对服务 ...
- [Luogu3769][CH弱省胡策R2]TATT
luogu 题意 其实就是四维偏序. sol 第一维排序,然后就只需要写个\(3D-tree\)了. 据说\(kD-tree\)的单次查询复杂度是\(O(n^{1-\frac{1}{k}})\).所以 ...
- python manage.py makemigrations生成数据变化的问题
今天遇到的生成数据库的问题django生成数据库的话,使用的是两条命令,一个是python manage.py makemigrations,以及python manage.py migrate在设计 ...
- Hadoop体系结构之 Mapreduce
MR框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点上的TaskTracker共同组成.主节点负责调度构成一个作业的所有任务,这些任务分布在不同的不同的从节点上.主节点监视它 ...
- 让maven生成可运行jar包
平时项目大多用到的是war包,今天实现了一个简单功能,无需部署到web服务器上,只需本地跑java代码即可,因此只要生成一个jar包.那么怎么让maven项目打成一个可以使用java命令跑的jar包呢 ...
- 微信H5支付 EasyWechat
其中如果想在一个laravel中使用多个不同主题的支付账户,可以在方法实例对象时,将对应的参数进行修改配置. 其中小程序支付,已得到验证. 1.公众号支付等资格申请 2.公众号对应的支付商户主体申请 ...
- Erlang基础 -- 介绍 -- 历史及Erlang并发
前言 最近在总结一些Erlang编程语言的基础知识,拟系统的介绍Erlang编程语言,从基础到进阶,然后再做Erlang编程语言有意思的库的分析. 其实,还是希望越来越多的人关注Erlang,使用Er ...
- mac book 华为C8815不能debug
最近遇到一个头疼的问题,华为c8815机器,死活不能在mac下debug,虽然最终是能够debug了,但是走了很多弯路. (1)以为是mac的系统问题,所以重装了系统.为了重装系统,备份资料,用快盘上 ...
- Pycharm快速复制当前行到下一行Ctrl+D
Pycharm快速复制当前行到下一行Ctrl+D