一、在Python中,能够直接处理的数据类型有以下几种:
整数、浮点数、字符串、布尔值、空值。
1、整数
Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。
2、浮点数
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x10^9和12.3x10^8是相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法也是精确的),而浮点数运算则可能会有四舍五入的误差。
3、字符串
字符串是以”或”“括起来的任意文本,比如’abc’,”xyz”等等。请注意,”或”“本身只是一种表示方式,不是字符串的一部分,因此,字符串’abc’只有a,b,c这3个字符。
4、布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来。
布尔值可以用and、or和not运算。
5、空值
空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型。
二、print语句
用于在屏幕上输出指定的语句
1.当我们在Python交互式环境下编写代码时,>>>是Python解释器的提示符,不是代码的一部分。在文本编辑器中编写代码时,千万不要自己添加 >>>。
print语句也可以跟上多个字符串,用逗号“,”隔开,就可以连成一串输出:
print会依次打印每个字符串,遇到逗号“,”会输出一个空格。
print也可以打印整数,或者计算结果:
注意: 对于100 + 200,Python解释器自动计算出结果300,但是,’100 + 200 =’是字符串而非数学公式,Python把它视为字符串。
举个例子,要打出“你好,优快云!”这句话,有两种方式分别是
print '你好,优快云!' #将"你好,优快云!"作为字符串
print '你好,','优快云!' #将"你好,"和"优快云!"作为字符串
运行结果如下:
三、Python注释
用“#”注释,从这个符号开始直到这一行尾都是注释。
如
# 这里开始直到这一行结尾全部都是注释!!!
print '我是注释!' # 打印“我是注释!”这句话
四、Python变量
1、在Python程序中,变量是用一个变量名表示,变量名必须是大小写英文、数字和下划线(_)的组合,且不能用数字开头。
2、在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。比如,
a = 123 # a是整数
print a
a = 'imooc' # a变为字符串
print a
这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下(// 表示注释):
int a = 123; // a是整数类型变量
a = "mooc"; // 错误:不能把字符串赋给整型变量
这也是动态语言比静态语言更灵活的地方。
3、理解变量在计算机内存中的表示也非常重要。当我们写:a = ‘ABC’时,Python解释器干了两件事情:
在内存中创建了一个’ABC’的字符串;
在内存中创建了一个名为a的变量,并把它指向’ABC’。
4、一个容易出错的地方:例子如下:
a = 'ABC'
b = a
a = 'XYZ'
print b
结果是什么呢?我第一次分析得出的结果是,b的值应该是‘XYZ’。但是并不是这样。
前面说了,执行a = ‘ABC’,解释器创建了字符串 ‘ABC’和变量 a,并把a指向 ‘ABC’;执行b = a,解释器创建了变量 b,并把b指向 a 指向的字符串’ABC’;执行a = ‘XYZ’,解释器创建了字符串’XYZ’,并把a的指向改为’XYZ’,但b并没有更改;所以,最后打印变量b的结果自然是’ABC’了。
五、Python字符串
1、Python字符串的定义
Python中字符串可以用”“或者”括起来表示。
①字符串本身包含有’时,可以用”“括起来。比如“I’m Home”。
②字符串本身包含有”“时,可以用”括起来,比如‘老师说:”上课不要说话”’。
③如果字符串中既包含’又包含”,这时候就要转义字符出场了~~Duang!
Python字符串用\进行转义。
比如,要表示字符串 Bob said “I’m OK”.
由于 ’ 和 ” 会引起歧义,因此,我们在它前面插入一个\表示这是一个普通字符,不代表字符串的起始,因此,这个字符串又可以表示为:
'Bob said \"I\'m OK\".'
转义字符 \ 不计入字符串的内容中。
常用的转义字符还有:
\n 表示换行
\t 表示一个制表符
\ 表示 \ 字符本身
2、raw字符串
①如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀 r ,表示这是一个 raw 字符串,里面的字符就不需要转义了。例如:r’(~_~)/ (~_~)/’,但是r’…’不能表示多行字符串,也不能表示包含’和”的字符串。
②如果要表示多行字符串,可以用”’…”’表示:
'''Line 1
Line 2
Line 3'''
上面这个字符串的表示方法和下面的是完全一样的:
'Line 1\nLine 2\nLine 3'
还可以在多行字符串前面添加 r ,把这个多行字符串也变成一个raw字符串:
r'''Python is created by "Guido".
It is free and easy to learn.
Let's start learn Python in imooc!'''
3、Unicode字符串
①Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串’ABC’在Python内部都是ASCII编码的。Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u’…’表示,比如:
print u'中文'
中文
注意: 不加 u ,中文就不能正常显示。
Unicode字符串除了多了一个 u 之外,与普通字符串没啥区别,转义字符和多行表示法仍然有效。
②如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释:
# -*- coding: utf-8 -*-
目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为… 并选择UTF-8格式保存。
4、整数和浮点数
①Python支持对整数和浮点数直接进行四则混合运算,运算规则和数学上的四则运算规则完全一致。
②使用括号可以提升优先级,这和数学运算完全一致,注意只能使用小括号,但是括号可以嵌套很多层和数学运算不同的地方是,Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数,但是整数和浮点数混合运算的结果就变成浮点数了。
③为什么要区分整数运算和浮点数运算呢?因为整数运算的结果永远是精确的,而浮点数运算的结果不一定精确,因为计算机内存再大,也无法精确表示出无限循环小数,比如 0.1 换成二进制表示就是无限循环小数。
④不过,Python提供了一个求余的运算 % 可以计算余数:如果我们要计算 11 / 4 的精确结果,按照“整数和浮点数混合运算的结果是浮点数”的法则,把两个数中的一个变成浮点数再运算就没问题了。
5、布尔型
我们都知道布尔型有两种值:true和false。
布尔类型有以下几种运算:
与运算:两者都为true才为true
True and True # ==> True
True and False # ==> False
False and True # ==> False
False and False # ==> False
或运算:只要有一个为true,结果就为true
True or True # ==> True
True or False # ==> True
False or True # ==> True
False or False # ==> False
非运算:把true变为false,把false变为true。
not True # ==> False
not False # ==> True
Python把0、空字符串”和None看成 False,其他数值和非空字符串都看成 True
下面举个例子:
a = 'python'
print 'hello,', a or 'world'
b = ''
print 'hello,', b or 'world'
这段代码的输出结果为:
思路如下:
a为非空字符串,所以我们把a看做true,那么a or ‘world’这句就是true,也就是输出a‘python’,最后输出“hello,python”。
b为空,所以看做false,那么b or ‘world’这一句就是输出后面的‘world’。所以输出“hello,world”