Python的数据类型

变量和简单数据类型

变量

message = "Hello Python world!"
print(message)

每个变量存储了一个值——与变量相关联的信息。在HelloPython文件中,存储的值为文本“Hello Python world!”。

添加变量导致Python解释器需要做很多工作。处理第一行代码时,它将文本“Hello Python world!”与变量message关联起来;而处理第二行代码时,它将与变量message关联的值打印到屏幕。

message = "Hello Python world!"
print(message)
message = "Hello Python Crash Course world!"
print(message)

在hello_world.py中添加两行代码之后,再运行这个程序,将看到两行输出:

Hello Python world!
Hello Python Crash Course world!

在程序中可随时修改变量的值,而Python将始终记录变量的最新值

变量的命名和使用

在Python中使用变量时,需要遵守一些规则和指南。违反这些规则将引发错误,而指南旨在让你编写的代码更容易阅读和理解。

  • 变量名只能包含字母、数字和下划线。变量名可以是字母或下划线打头,但不能以数字开头,例如,可将变量命名维message_1,但不能将其命名维1_message。
  • 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message会引发错误。
  • 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print。
  • 变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。
  • 慎用小写字母i和大写字母O,因为它们可能被人错看成数字1和0。

要创建良好的变量名,需要经过一定的实践,在程序复杂而有趣时尤其如此。随着你编写的程序越来越多,并开始阅读别人编写的代码,将越来越善于创建有意义的变量名。

就目前而言,应使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误,但避免大写字母是个不错的主意。

字符串

大多数程序都定义并收集某种数据,然后使用它们来做些有意义的事情。鉴于此,对数据进行分类大有裨益。

字符串就是一系列字符。在Python中,用引号括起来的都是字符串,其中的引号可以是单引号,也可以是双引号,如下所示:

"This is a string."
'This is also a string.'

使用方法修改字符串的大小写

对于字符串,可执行的最简单的操作之一是修改其中的单词和大小写。

name = "ada lovelace"
print(name.title())

将这个文件保存为name.py,在运行它。你将看到如下输出:

Ada Lovelace

在这个示例中,小写的字符串“ada lovelace”存储到了变量name中。在print()语句中,方法title()出现在这个变量的后面。方法是Python可对数据执行的操作。在name.title()中,name后面的句号(.)让Python对变量name执行方法title()指定的操作。每个方法后面都跟着一对括号,这是因为方法通常需要额外的信息来完成其工作。这种信息是在括号内提供的。函数title()不需要额外的信息,因此它后面的括号是空的。

title()以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写。这很有用,因为你经常需要将名字视为信息。例如,你可能希望程序将Ada、ADA和ada视为同一个名字,并将它们都显示为Ada。

还有其他几个很有用的大小写处理方法。例如,要将字符串改为全部大写或者全部小写,可以像下面这样做:

name = "Ada Lovelace"
print(name.upper())
print(name.lower())

这些代码的输出如下:

ADA LOVELACE
ada lovelace

存储数据时,方法lower()很有用。很多时候,你无法依靠用户来提供正确的大小写,因此需要将字符串先转换为小写,再存储它们。以后需要显示这些信息时,再将其转换为最合适的大小写方式。

合并(拼接)字符串

在很多情况下,都需要合并字符串。例如,你可能想将姓和名存储在不同的变量中,等要显示姓名时将它们合而为一:

first_name = "ada"
last_name = "lovelace"
full_name = first_name + "" + last_name
print(full_name)

Python使用加号(+)来合并字符串。在这个示例中,我们使用+来合并first_name、空格和last_name,以得到完整的姓名,其结果如下:

ada lovelace

这种合并字符串的方法称为拼接。通过拼接,可使用存储在变量中的信息来创建完整的消息。下面看一个例子:

first_name = "ada"
last_name = "lovelace"
full_name = first_name + "" + last_name
print("Hello," + full_name.title() + "!")

在这里,一个问候用户的句子中使用了全名,并使用了方法title()来将姓名设置为合适的格式。这些代码显示一条格式良好的简单问候语:

Hello,Ada Lovelace!

你可以使用拼接来创建消息,再把整条消息都存储在一个变量中:

first_name = "ada"
last_name = "lovelace"
full_name = first_name + "" + last_name
message = "Hello," + full_name.title() + "!"
print(message)

上述代码也显示消息“Hello,Ada Lovelace!”,但将这条消息存储在了一个变量中,这让最后的print语句简单得多。

使用制表符或换行符来添加空白

在编程中,空白泛指任何非打印字符,如空格、制表符和换行符。你可是使用空白来组织输出,以使其更易读。

要在字符串中添加制表符,可使用字符组合\t,如下述代码的1处所示:

>>> print("Python")
Python
1 >>>print("\tPython")
Python

要在字符串中添加换行符,可使用字符串组合\n:

>>>print("Languages:\nPython\nC\nJavaScript")
Languages:
Python
C
JavaScript

还可以在同一个字符串中同时包含制表符和换行符。字符串“\n\t”让Python换到下一行,并在下一行开头添加一个制表符。下面的示例演示了如何使用一个单行字符串来生成四行输出:

>>>print("Languages:\nPython\nC\nJavaScript")
Languages:
 Python
 C
 JavaScript

删除空白

在程序中,额外的空白可能令人迷惑。对程序员来说,'python'和'python '看起来几乎没有什么两样,但对程序来说,它们却是两个不同的字符串。Python能够发现'python '中额外的空白,并认为它是有意义的——除非你告诉它不是这样的。

空白很重要,因为你经常需要比较两个字符串是否相同。例如,一个重要的示例是,在用户登录网站时检查其用户名。但在一些简单得多的情况下,额外的空格也可能令人迷惑。所幸在Python中,删除用户输入的数据中的多余的空白易如反掌。

Python能够找出字符串开头和结尾多余的空白。要确保字符串末尾没有空白,可使用方法rstrip()。

>>>favorite_language = 'python '
>>>favorite_language
'python'
>>>favorite_language.rstrip()
'python'
>>>favorite_language
'python '

存储在变量favorite_language中的字符串末尾包含多余的空白。你在终端会话中向Python询问这个变量的值时,可看到末尾的空格。对变量favorite_language调用方法rstrip()后,这个多余的空格被删除了。然而删除只是暂时的,接下来再次询问favorite_language的值时,你会发现这个字符串与输入时一样,依然包含多余的空白。

要永久删除这个字符串中的空白,必须将删除操作的结果存回到变量中:

>>>favorite_language = 'python '
>>>favorite_language = favorite_language.rstrip()
>>>favorite_language
'python'

为删除这个字符串中的空白,你需要将其末尾的空白剔除,再将结果存回到原来的变量中。在编程中,经常需要修改变量的值,再将新值存回到原来的变量中。这就是变量的值可能随程序的运行或用户输入数据而发生变化的原因。

你还可以剔除字符串开头的空白,或同时剔除字符串两端的空白。为此,可分别使用方法lstrip()和strip():

>>>favorite_language = ' python '
>>>favorite_language.rstrip()
' python'
>>>favorite_language.lstrip()
'python'
>>>favorite_language.strip()
'python'

在这个示例中,我们首先创建了一个开头和末尾都有空白的字符串。接下来,我们分别删除末尾、开头和两端的空格。尝试使用这些剔除函数有助于你熟悉字符串操作。在实际程序中,这些剔除函数最常用于在存储用户输入前对其进行清洗。

使用字符串时避免语法错误

语法错误是一种时不时会遇到错误。程序中包含非法的Python代码时,就会导致语法错误。例如,在用单引号括起的字符串中,如果包含撇号,就会导致错误。这是因为这回导致Python将第一个单引号和撇号之间的内容视为一个字符串,进而将余下的文本视为Python代码,从而引发错误。

下面演示了如何正确地使用单引号和双引号。请将该程序保存为apsotrophe.py,再运行它:

message = "One of Python's strengths is its diverse community."
print(message)

撇号位于两个双引号之间,因此Python解释器能够正确地理解这个字符串:

One of Python's strengths is its diverse community.

然而,如果你使用单引号,Python将无法正确地确定字符串的结束位置:

message = 'One of Python's strengths is its diverse community.'
print(message)

而你将看到如下输出:

从上述输出可知,错误发生在第二个单引号后面。这种语法错误表明,在解释器看来,其中的有些内容不是有效的Python代码。错误的来源多种多样,这里指出一些常见的。学习编写Python代码时,你可能会经常遇到语法错误。语法错误也是最不具体的错误类型,因此可能难以找出并修复。

编写程序时,编辑器的语法突出功能可帮助你快速找出某些语法错误。看到Python代码以普通句子的颜色显示,或者普通句子以Python代码的颜色显示时,就可能意味着文中存在引号不匹配的情况。

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

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,718评论 0 10
  • 在本节课中,你将学习Python程序中的各种数据,还将学习如何将数据存储到变量中,以及如何在程序中使用这些变量。 ...
    帅的被人砍VV阅读 1,207评论 0 4
  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 5,779评论 2 16
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,362评论 0 5
  • 刚才把2017打成了2016 ,好像自己的脚步想永远停留在这一年,不再前进。现在,我往前踏出的每一步就像是盲人般,...
    刘piano阅读 90评论 0 0