zoukankan      html  css  js  c++  java
  • Python02 标准输入输出、数据类型、变量、随记数的生成、turtle模块详解

    1 标准输出

      python3利用 print() 来实现标准输出

    def print(self, *args, sep=' ', end='
    ', file=None): # known special case of print
        """
        print(value, ..., sep=' ', end='
    ', file=sys.stdout, flush=False)
        
        Prints the values to a stream, or to sys.stdout by default.
        Optional keyword arguments:
        file:  a file-like object (stream); defaults to the current sys.stdout.
        sep:   string inserted between values, default a space.
        end:   string appended after the last value, default a newline.
        flush: whether to forcibly flush the stream.
        """
        pass

      1.1 输出字符串

        在 sprint() 的括号中加上字符串就可以在控制台输出指定的文字,比如输出 “Hello Boy” 的实现代码如下

    print("Hello Boy")

        

      1.2 输出多个字符串

        print() 函数可以接收多个字符串,各个字符串之间用逗号进行隔开,在输出时逗号不会输出而是用空格代替

    print("Hello", "Boy", "Good", "World")

        技巧01:print() 可以接收多个字符串的原理是print() 方法可以接收任意多个参数,这一点从源码中可以看出;详情请参见方法的形参部分知识点

        技巧02:遇到逗号用空格代替的原因是print()方法有一个默认参数 seq ,该参数的作用就是作为多个输出值的分隔符,其默认值就是空格  

        

        

      1.3 输出整数或者计算结果

        输出整数时直接会将整数进行输出,输出计算结果时会对数学表达式进行计算后再将结果进行输出

        

      1.4 输出多个变量

        print() 方法也可以接收多个变量进行输出,各个变量之间利用逗号进行分隔

        

      1.5 结束符

        print() 方法默认的结束符时换行符,这一点从源码中可以看出

        1.5.1 默认结束符的效果

          

        1.5.2 自定义结束符的效果

          

    2 标准输入

      python3提供的input()方法可以让用户输入一个字符串,并存放到一个变量中去;print()方法可以在括号中添加提示信息,这些提示信息会被输出到控制台

    def input(*args, **kwargs): # real signature unknown
        """
        Read a string from standard input.  The trailing newline is stripped.
        
        The prompt string, if given, is printed to standard output without a
        trailing newline before reading input.
        
        If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.
        On *nix systems, readline is used if available.
        """
        pass

      2.1 输入字符串

        

      2.2 输入类型

        利用input()输入的数据都是字符串类型的数据

        

        坑01:利用input()输入的任何数据都是字符串类型的数据,如果想利用输入的数据进行一些数学运算就必须进行类型转换

        2.2.1 input()实战

          需求:用户根据提示信息提供圆的半径和圆周率的取值,系统自动输出直径、圆周、面积等信息

          坑01:在进行数学计算之前如果不对数据进行类型转化就会报类型错误

          

    radius = input("请输入半径:
    ")
    PI = input("请输入圆周率的取值:
    ")
    diameter = float(radius) * 2
    area = float(PI) * float(radius) * float(radius)
    perimeter = float(PI) * diameter
    print("直径为:", diameter, ";周长为:", perimeter, "; 面积为:", area)
    View Code

    3 数据类型

      在程序中不同的数据需要定义不同的数据类型

      3.1 整型

        Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1100-80800,等等。计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff000xa5b4c3d2,等等。

        技巧01:利用print()方法输出十六进制的数时输出的是转化成了十进制的数

        

      3.2 浮点型

        浮点数也就是小数;浮点数可以用数学写法,如1.23,3.14,-9.01;但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

        

      3.3 字符串

        字符串是以单引号'或双引号"括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符。如果字符串内部既包含'又包含"怎么办?可以用转义字符来标识。

        

        

        3.3.1 多行字符串

           这个转义字符代表换行,为了简化,Python允许用'''...'''的格式表示多行内容

           

      3.4 布尔型

        布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来。

        

      3.5 空值

        空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

      3.6 其他类型

        列表、字典等多种数据类型,还允许创建自定义数据类型(即:对象)

        待更新......2018-3-20 10:25:44

       

    4 变量

      变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。

      变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头,比如:这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句为:String name = new String("warrior");

      因为python是动态语言,所以一个变量的类型取决于该变量的指向,如果该变量的指向的东西的类型发生了变化,那么该变量的类型也会发生变化

      

      4.1 变量在内存中的表示

        技巧01:在python中一切都是对象,所以python中变量存储的都是地址信息而不是数据值;变量的值就是变量指向数据的地址信息

    name = "warrior"

        4.1.1 python解释器会根据上面的代码做两件事

          》在内存中创建一个“warrior”字符串

          》在内存中创建一个名为name的变量,而且该变量指向“warrior”

        4.1.2 变量之间的赋值

          

          坑01:这里并不是将name01的值赋值给了name02,而是name02指向name01指向的数据

          技巧01:因为name01和name02都指向同一个字符串"warrior",所以name01和name02的内容都是字符串"warrior"在内存中的地址信息(备注:因为name01和哪么02都指向了同一个字符串,所以他们的内存地址是一样的,他们的值也是一样的)

     

          解释:

            python解释器在遇到 name02 = name01 这行代码时执行的操作

              》在内存中创建一个名为name02变量

              》让name02变量指向name01所指向的内容(理解:name01和name02中存放的不是数据,而实数据对应的地址信息,name02 = name01实际上是将name01中存放的地址信息赋值给了name02)

        

          解释:

            python解释器在遇到 name02 = “fury” 这行代码时执行的操作

              》改变name02的指向,即:改变name02中存放的地址信息值

              技巧01:变量的指向发生变化后,变量的值以及变量的地址都会发生变化

              技巧02:变量的值就是变量指向数据的地址信息

    name01 = "warrior"
    name02 = name01
    print("name01指向的值为:",name01,"-----", "name02指向的值为:",name02)
    print("name01变量的地址信息为:", id(name01),"-----", "name02变量的地址信息为:", id(name02))
    print(name01 is name02)
    print(name01 == name02)
    name01 = "fury"
    print("name01指向的值为:",name01,"-----", "name02指向的值为:",name02)
    print("name01变量的地址信息为:", id(name01),"-----", "name02变量的地址信息为:", id(name02))
    print(name01 is name02)
    print(name01 == name02)
    View Code

    5 随机数

      python自带的random模块可以用来生成随机数

      5.1 猜数字游戏

        5.1.1 需求

          随机产生一个数字同用户输入的数字进行比较,知道猜中为止

        5.1.2 代码实现

          

    import random
    randomNum = random.randint(0,10)
    inputNum = input("请输入一个0到10之间的整数:")
    judge = True
    while (judge):
        if (randomNum != int(inputNum)):
            if (randomNum < int(inputNum)):
                inputNum = input("大啦,请在输入一个0到10之间的整数:")
            if (randomNum > int(inputNum)):
                inputNum = input("小啦,请在输入一个0到10之间的整数:")
        else:
            print("恭喜你,才对啦!")
            judge = False
    View Code

         5.1.3 改进

          规定输入次数、设定随记数范围

    6 turtle模块

       6.1 命令介绍

        6.1.1 运动命令

          forward(d) -> 向前移动d个像素点

          backward(d) -> 向后移动d个像素点

          right(dgree) -> 向右转动dgree度

          left(dgree) -> 向左转动dgree度

          goto(x, y) -> 光标移动到(x, y)处

          speed(apeed) -> 设定画笔的速度,速度值为[0, 10]之间的整数

        6.1.2 画笔控制命令

          down() -> 画笔落下,即:开始画图

          up() -> 画笔抬起,即:停止画图

            技巧01:goto(x,y) 之前一般需要执行up(),goto(x, y)之后一般需要执行down()  

          pensize(width) -> 设置画笔的宽度的像素值

          pencolor(color) -> 设置画笔的宽度

          fillcolor(color) -> 设置填充颜色

            技巧02:fillcolor(color)通常需要和 begin_fill() 和 end_fill() 配合使用

          begin_fill() -> 开始填充颜色

          end_fill() -> 结束填充颜色

        6.1.3 特殊指令

          turtle.mainloop() -> 画图结束后静止(注:其实是一直在重复画,只是给我们个感觉是静止而已)

      6.2 练习

        6.2.1 画正三角形

          

    # 画三角形
    import turtle
    t = turtle.Pen()
    t.fillcolor("blue")
    t.pencolor("red")
    t.pensize(4)
    t.begin_fill()
    t.forward(60)
    t.left(120)
    t.forward(60)
    t.left(120)
    t.forward(60)
    t.end_fill()
    turtle.mainloop()
    View Code

        6.2.2 画奥运五环

          

    # 话奥运五环
    import turtle
    t = turtle.Pen()
    t.pensize(4)
    
    t.pencolor("blue")
    t.circle(30)
    
    t.up()
    t.goto(70, 0)
    t.down()
    t.pencolor("black")
    t.circle(30)
    
    t.up()
    t.goto(140, 0)
    t.down()
    t.pencolor("red")
    t.circle(30)
    
    t.up()
    t.goto(35, -35)
    t.down()
    t.pencolor("yellow")
    t.circle(30)
    
    t.up()
    t.goto(105, -35)
    t.down()
    t.pencolor("green")
    t.circle(30)
    
    turtle.mainloop()
    View Code

        6.2.3 利用循环画

          

    import turtle
    # 同时设置pencolor=color1, fillcolor=color2
    turtle.color("red", "yellow")
    
    turtle.begin_fill()
    for i in range(50):
        turtle.forward(200)
        turtle.left(170)
    turtle.end_fill()
    turtle.mainloop()
    View Code

         6.2.4 画五角星

          

    import turtle
    t = turtle.Pen()
    t.pencolor("yellow")
    t.fillcolor("red")
    t.pensize(4)
    t.begin_fill()
    for i in range(5):
        t.forward(100)
        t.right(144)
    t.end_fill()
    turtle.mainloop()
    View Code
  • 相关阅读:
    (转) hive调优(2)
    (转)hive调优(1) coding调优
    hive on tez 错误记录
    tez 0.9.0 配置
    hive on tez
    让博客园自动生成目录
    hive --metastore三种模式
    hive 使用beelin连接报错
    mysql my.cnf文件
    1、Kfaka 部署
  • 原文地址:https://www.cnblogs.com/NeverCtrl-C/p/8608164.html
Copyright © 2011-2022 走看看