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();