zoukankan      html  css  js  c++  java
  • 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()
    View Code

      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))
    View Code

        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()
    View Code

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

       

        

        

  • 相关阅读:
    谈执着
    SQL表自连接用法
    Mysql group by 排序问题
    php自动生成mysql的触发代码。
    XSS CSRF 攻击
    [微信开发利器]微信内移动前端开发抓包调试工具fiddler使用教程
    微信JS-SDK]微信公众号JS开发之卡券领取功能详解
    优化与重构的思考
    c语言 13
    c语言 13
  • 原文地址:https://www.cnblogs.com/NeverCtrl-C/p/8689966.html
Copyright © 2011-2022 走看看