python学习-数据类型

计算机处理的数据不单纯的指数字,计算机可以处理数字、文本、音频、视频等等各种数据,下面描述的是Python中可以直接使用和处理的基本数据类型。

    整数

Python可以处理任意大小的整数,跟java等语言整数区分int和long不一样,Python的整数就一种,可以是无限大小的正整数或者负整数。例如十进制就是5、1983、-26等,16进制使用0x前缀,例如0xfa98、0xb123等

    浮点数

浮点数也就是日常中常说的小数,只是因为使用科学计数法时小数点可以在任意位置,所以称浮点数更合适,浮点数写法也跟数学中一样,如1.85、-6.8,用科学计数法是10用e代替,如1.82x10^5就的写法就是1.82e5

浮点数的计算结果有时候是不精确的,有时候获得的结果是四舍五入之后的。

跟java相比不太一样的地方,java中整数之间做/运算是取整的意思,也就是所谓的地板除法。Python中提供了两个除法符号 / 和 // , / 的结果永远是浮点数(即使能够整除), // 的结果是取整,永远是整数,取余用%

>>> 9/3
3.0
>>> 10/3
3.3333333333333335
>>> 10//3
3
>>> 10%3
1

    字符串

字符串可以理解为一段文本,用单引号或双引号括起来,例如'asdf'和"asdf"表示的字符串内容是一样的,这种只有单引号或双引号一种的,引号不包含在字符串中,如果字符串中包含单引号或双引号,可以嵌套使用,例如

>>> print("I'am victor")
I'am victor
>>> print('I"am victor')
I"am victor

  或者使用转义字符,转义字符可以转义很多,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\,例如

>>> print("I'am \"victor\"")
I'am "victor"
>>> print("I'am \"victor\" \n I'am leaning Python \\\\")
I'am "victor"
 I'am leaning Python \\

  使用过多的转移字符看起来很乱,Python还提供了一个渐变方法,在字符串前面加上 r 字符串就不会转义了

>>> print("I'am \"victor\"")
I'am "victor"
>>> print(r"I'am \"victor\"")
I'am \"victor\"

  还允许使用三个单引号或双引号直接将多行字符串原样输出,但是转义字符还是会转义,不想转义前面还是要加上r,'''XXX'''  """XXX""",例如

>>> print("""I'am \"victor\"
... I am
...     leaning
...       Python""")
I'am "victor"
I am
    leaning
      Python

  布尔值

布尔值只有True和False两个值,注意区分大小写

>>> (1==2)==True
False

  布尔值可以用and、or和not运算,这个运算规则跟其他语言一样,and运算是与运算,只有所有都为True,and运算结果才是True。or运算是或运算,只要其中有一个为True,or运算结果就是True。not运算是非运算,它是一个单目运算符,把True变成False,False变成True

>>> True and False
False
>>> True or False
True
>>> not True
False

  空值

Python中的空值用None表示,注意大小写,空值不是0也不是"",这种有意义的值并不是None,None是一个特殊的空值,含义跟java中的null一样

>>> 0  == None
False
>>>
>>> "" == None
False

  变量

变量在程序中就是用一个变量名表示,变量名必须是大小写字母、数字和_的组合,且不能用数字开头,变量用=赋值,注意一点Python是动态语言,跟java这类静态语言不太一样的地方就是动态语言更灵活,同一个变量可以赋值不同类型的值。

a = 2
print(a)
a = "abC"
print(a)

#这个代码java会报错,因为两次赋值类型不一样,Python会正常执行后输出
2
abC

       解释一下赋值过程,先猜猜下面的代码,输出的a和b值是什么?

a = "abc"
b = a
a = "def"
print("a =", a)
print("b =", b)

  代码执行后的输出结果是a = def    b = abc ,相信大部分人都能答对,下面简单介绍一下执行过程,第一行的时候解释器在内存分配了一个区域保存"abc"这个值,并把a这个变量指向"abc"所在的内存地址。第二行创建了一个变量b,并将a指向的地址赋给b,这样b也是指向了"abc"所在的内存地址。第三行又创建了一个"def"的内存区域,将a指向了"def"所在的内存地址,而这时b的指向并没有变化,所以执行后会输出这样的结果。

  常量

常量就是固定不变的数据,约定俗成常量名全部大写,这个不变是从业务上定义的不变,例如圆周率PI = 3.1415926,当然你一定要在代码中改变PI的值,也没人拦得住你。

posted @ 2019-03-06 18:17  张艳华  阅读(267)  评论(0编辑  收藏  举报