Python基础教程(四)

Python基础

数据类型和变量

  • 数据类型
    电子计算机也就是我们俗称的计算机(电脑),其主要功能是完成科学计算的任务,因此,计算机程序当然可以处理各种数据信息。但是数据源无处不在,人类无时无刻不在不生成数据,数据的格式也就多种多样,计算机除了可以计算数值,还可以处理文本信息、音像信息等各种各样的数据,为了可以方便的定义和管理这些数据,我们引入了数据类型的概念。

数值型

在Python中支持四种不同的数值类型:

  1. int(有符号整型)
  2. long(长整型,也可以代表八进制和十六进制)
  3. float(浮点型)
  4. complex(复数)
  • Int 有符号整型
    int可以处理整数,整数负数都可以,在Python中的表示方式与数学上的写法无二,例如:0-11024,等等。

计算机由于使用二进制,所以,有时使用十六进制表示整数比较方便,十六进制用0x作为前缀和0-9,a-f表示。例如:0xff000xffff,等等。

  • Long 长整型(期望)
    Long类型代表着无限大小的整数,但是这样写实数要在数字的最后加一个大写或者小写的L但为了避免与数字1混淆建议使用大写的L来显示长整型。
  • Float 浮点型
    Float数值由整数部分和小数部分组成,之所以成为浮点数,是因为按照科学计数法表示时,一个浮点数的小数点位置是可以改变的。但是对于非常大或者非常小的浮点数,就必须使用科学计数法表示,把10用e代替。例如:1.024e3 = 1.024*10^3 = 1024,等等。
    注意:整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差
  • Complex
    Complex复数类型,复数由实数部分和虚数部分组成,可以用a+bj,或者complex(a,b)表示,复数的实数部分和虚数部分均为浮点型。例如:3.14j4.53e-7j-6545+0j
    注意:虚数部分后的字母J,大小写均可

字符串(type为str)

字符串是以' '" "括起来的任意文本。而' '" "本身只是表明其数据类型为字符串型,' '" "作为定界符不作为字符串的一部分。
例如:'Axios',其中的字符就只包括Axios这几个 字符。如果'本身也是字符串的一部分的话,那么就可以使用" "作为定界符,例如:"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前缀。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容