Python基础
数据类型和变量
数据类型
电子计算机也就是我们俗称的计算机(电脑),其主要功能是完成科学计算的任务,因此,计算机程序当然可以处理各种数据信息。但是数据源无处不在,人类无时无刻不在不生成数据,数据的格式也就多种多样,计算机除了可以计算数值,还可以处理文本信息、音像信息等各种各样的数据,为了可以方便的定义和管理这些数据,我们引入了数据类型的概念。
数值型
在Python中支持四种不同的数值类型:
int(有符号整型)
long(长整型,也可以代表八进制和十六进制)
float(浮点型)
complex(复数)
Int 有符号整型
int可以处理整数,整数负数都可以,在Python中的表示方式与数学上的写法无二,例如:0,-1,1024,等等。
计算机由于使用二进制,所以,有时使用十六进制表示整数比较方便,十六进制用0x作为前缀和0-9,a-f表示。例如:0xff00,0xffff,等等。
Long 长整型(期望)
Long类型代表着无限大小的整数,但是这样写实数要在数字的最后加一个大写或者小写的L,但为了避免与数字1混淆建议使用大写的L来显示长整型。
Float 浮点型
Float数值由整数部分和小数部分组成,之所以成为浮点数,是因为按照科学计数法表示时,一个浮点数的小数点位置是可以改变的。但是对于非常大或者非常小的浮点数,就必须使用科学计数法表示,把10用e代替。例如:1.024e3 = 1.024*10^3 = 1024,等等。
注意:整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。
Complex
Complex复数类型,复数由实数部分和虚数部分组成,可以用a+bj,或者complex(a,b)表示,复数的实数部分和虚数部分均为浮点型。例如:3.14j,4.53e-7j,-6545+0j。
注意:虚数部分后的字母J,大小写均可。
字符串(type为str)
字符串是以' '或" "括起来的任意文本。而' '或" "本身只是表明其数据类型为字符串型,' '或" "作为定界符不作为字符串的一部分。
例如:'Axios',其中的字符就只包括A,x,i,o,s这几个 字符。如果'本身也是字符串的一部分的话,那么就可以使用" "作为定界符,例如:"I'm OK",其中包含字符',我们就可以使用不同的定界符进行符号的输出。
如果字符串中既包含'又包含",这样该怎样办?在计算机中有一种转义字符,我们可以使用其来进行表示,比如:
' I\'m \"OK\"! '
其表示真正字符串的内容是:
I'm "OK"!
怎样对变量赋值字符串型的内容,内容的显示呢?让我们来看。
str = "Hello World" #对变量str赋值内容为Hello World的字符串
print str #以Python2.X的语法输出变量str
思考:在其他编程语言中,可以对字符串进行截取。例如:Java语言中的substring,Visual FoxPro中的substr,那么在Python中我们该怎样对字符串进行子串的访问呢?
在Python中对字符串取其子串非常方便,可以把字符串当做其它编程语言的一维数组那样了解,使用其下标对字符串进行操作。
Python字符串的下标从0开始,若字符串的长度为n,则字符串的上下限则为[0,n-1]。使用str[头下标:尾下标],就可以截取相应的字符串。
#-*- coding:utf-8 -*-
str="Hello World! " #字符串变量str,内容为Hello World
print str #输入完整字符串
print str[0] #输入字符串中的一个字符
print str[:5] #输出字符串从默认起始位置0开始到下标为5之间的字符串,即Hello
print str[6:] #输出字符串从第7个字符开始的字符串,即World
print str[::-1] #倒叙输出字符串的内容
print str*2 #输出字符串两次
print str+"Test" #输出连接的字符串
输出结果
思考:代码中的#-*- coding:utf-8 -*-的含义是什么?
如果要在Python2.X的py文件里面写中文,则必须要添加一行声明文件编码的注释,否则Python2.X会默认使用ASCII编码。
思考:为什么会使用ASCII编码而不是使用Unicode编码呢?
因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串'ABC'在Python内部都是ASCII编码的。
Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示。
Unicode字符串除了多了一个 u 之外,与普通字符串没啥区别,转义字符和多行表示法仍然有效。
思考:若在字符串左右有空格的介入,可是用户又想删除空格,这时该怎么办?
name=" Gideon Yu " #字符串变量name,内容为 Gideon Yu ,内容左右中均有空格
print name #输出完整字符串
print name.lstrip() #移除字符串左边的空格
print name.rstrip() #移除字符串右边的空格
print name.strip() #移除字符串左右两边的空格
print "".join(name.split()) #移除所有的空格
输出结果
spilt()函数:
函数格式:str.split(str="", num=string.count(str))
函数功能:Python split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串。
参数:
str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num -- 分割次数。
例子:
name=" Gideon Yu " #字符串变量name,内容为 Gideon Yu ,内容左右中均有空格
print name.split()
结果:
['Gideon', 'Yu']
join()函数
函数格式: 'sep'.join(seq)
函数功能:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
参数:
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
例子:
part=['Gideon','Yu']
print " ".join(part)
结果:
Gideon Yu
转义字符
转义字符
描述
转义字符
描述
\(行尾时)
续行符
\e
转义
\
反斜杠符号
\000
空
'
单引号
\n
换行
"
双引号
\v
纵向制表符
\a
响铃
\t
横向制表符
\b
退格(Backspace)
\xyy
十六进制数,yy代表的字符
\f
换页
\oyy
八进制数,yy代表的字符
\r
回车
\other
其他的字符以普通格式输出
例如:\o12代表换行,\x0a代表换行。
如果字符串里面有很多字符都需要转义,就需要加入很多\,为了简化,Python允许使用r' '表示' '内部的字符串默认不需要转义。
#-*- coding:utf-8 -*-
print 'Python 基础教程\nThinking in Python'
print r'Python 基础教程\nThinking in Python'
输出结果
如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容。
#-*- coding:utf-8 -*-
print '''Python
基础教程
Thinking in Python'''
输出结果
注意:在换行输出中也是可以使用转义字符的,若想使转义字符失效,则必须使用r前缀。