课时3:小插曲之变量和字符串

目录

一、变量
二、字符串
  >原始字符串
  >长字符串
三、课时03课后习题及答案


一、变量


变量名就像我们现实社会的名字,把一个值赋值给一个名字时,Ta会存储在内存中,称之为变量(variable),在大多数语言中,都把这种行为称为“给变量赋值”或“把值存储在变量中”。
不过Python与大多数其他计算机语言的做法稍有不同,Ta并不是把值存储在变量中,而更像是把名字贴在值的上边。所以有些Python程序员会说“Python”没有“变量”,只有“名字”。
看个例子:

>>> teacher = "小甲鱼"
>>> print(teacher)
小甲鱼
>>> teacher = "老甲鱼"
>>> print (teacher)
老甲鱼

变量为什么不叫”恒量“而叫变量?正因为它是可变的!再看另外一个例子:

>>> x = 3
>>> x = 5
>>> y = 8
>>> z = x + y
>>> print(z)
13

同样的方法也可以应用到字符串中:

>>> myteacher = "小甲鱼"
>>> yourteacher = "老甲鱼"
>>> ourteacher = myteacher + yourteacher
>>> print(ourteacher)
小甲鱼老甲鱼

这种字符串加字符串的语法,在Python里称为字符串的拼接。
这里进行了一番想法的测试,想看看变量的值变过后,其相应的id地址是否发生了变化:

>>> y = 1
>>> print(y)
1
>>> id(y)
140728562340896
>>> y = 2
>>> print(y)
2
>>> id(y)
140728562340928

经实验证明,同一变量的值发生变化过后,其id地址也发生了变化。
需要注意的地方:

  • 在使用变量之前,需要对其先赋值。
  • 变量名可以包括字母、数字、下划线,但变量名不能以数字开头。
  • 字母可以是大写或小写,但大小写是不同的。也就是说fishc和FishC对于Python来说是完全不同的两个名字
  • 等号(=)是赋值的意思,左边是名字,右边是值,不可写反咯。

二、字符串


到目前为止,我们所认知的字符串就是引号内的一切东西,我们也把字符串叫做文本,文本和数字是截然不同的,咱看例子:

>>> 5+8
13
>>> "5"+"8" #字符串的拼接
'58'
>>> '5'+'8'
'58'
>>> 'Python I love you!"
SyntaxError: EOL while scanning string literal

要告诉Python你在创建一个字符串,就要在字符两边加上引号,可以是单引号或者双引号,Python女士表示不挑剔。但必须成对,你不能一边单引号,另一边却花心的用上双引号结尾。
如果字符串中需要出现单引号或双引号怎么办?
例如我想打印字符串:Let’s go!
有两种方法,第一种比较常用,就是使用我们的转义符号(\)对字符串中的引号进行转义。
还有一种就是利用Python既可以用单引号也可以用双引号来表示字符串这一特点,用上不同的引号表示字符串。

>>> 'Let\'t go'
"Let't go"
>>> print('Let\'t go')
Let't go
>>> "Let't go"
"Let't go"
>>> print("Let't go")
Let't go

因为\now中的\n是被print识别成了转移符号——回车。
然而直接显示字符串转义符号不会被解释,
所以就会这样。
原始字符串:
好像反斜杠是一个好东西,但不妨试试打印:

>>> str = 'C:\now'
>>> str
'C:\now'
>>> print(str)
C:
ow

我们可以用反斜杠对自身进行转义:

>>> str = 'C:\\now'
>>> str
'C:\\now'
>>> print(str)
C:\now

但如果对于一个字符串中有很多个反斜杠:
原始字符串的使用非常简单,只需要在字符串前边加一个英文字母r即可:

>>> str = r"C:\Program Files\Intel\WiFi\Help"
>>> str
'C:\\Program Files\\Intel\\WiFi\\Help'
>>> print(str)
C:\Program Files\Intel\WiFi\Help

在使用字符串的时候需要注意一点是:无论是否原始字符串,都不能以反斜杠作为结尾。如果你坚持这样会报错。

>>> string = 'FishC\'
SyntaxError: EOL while scanning string literal

长字符串:
如果希望得到一个跨越多行的字符串,例如:
我爱鱼C,
正如我爱小甲鱼,
他那呱唧呱唧
呱唧呱唧
呱唧呱唧的声音,
总缠绕于我的脑海,
久久不肯散去……
这我们就需要使用到三重引号字符串!

>>> print("""
我爱鱼C,
正如我爱小甲鱼,
他那呱唧呱唧
呱唧呱唧
呱唧呱唧的声音,
总缠绕于我的脑海,
久久不肯散去……
""")
我爱鱼C,
正如我爱小甲鱼,
他那呱唧呱唧
呱唧呱唧
呱唧呱唧的声音,
总缠绕于我的脑海,
久久不肯散去……

三、课时03课后习题及答案


测试题:

  1. 以下哪个变量的命名不正确?为什么?
    (A) MM_520 (B) MM520 (C) 520_MM (D) _520_MM
  2. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?
1 >>>myteacher = '小甲鱼'
2 >>>yourteacher = myteacher
3 >>>yourteacher = '黑夜'
4 >>>print(myteacher)

解释一下,这几行代码:首先,想象一下有一个叫做“小甲鱼“数据,代码myteacher = '小甲鱼'实现了将变量myteacher指向了这一个数据,进而存入了内存中,也就是为”小甲鱼“贴上了myteacher的标签;代码yourteacher = myteacher,将变量yourteacher也指向了这一个数据,这时候有两个变量指向同一数据;第三行代码,(我们说python并不是把值存储在变量中,而更像是将名字贴在值上面)所以,变量yourteacher变卦了,指向了”黑夜“这一数据,而myteacher还是指向小甲鱼这一数据。我们可看看它们id地址的变换情况。

>>> myteacher = "小甲鱼"
>>> id(myteacher)
3249577405872
>>> yourteacher = myteacher
>>> id(yourteacher)
3249577405872
>>> yourteacher = "黑夜"
>>> id(yourteacher)
3249577880632
>>> id(myteacher)
3249577405872
  1. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?
1 >>> myteacher = '小甲鱼'
2 >>> yourteacher = myteacher
3 >>> myteacher = '黑夜'
4 >>> print(yourteacher)
  1. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?
1 >>>first = 520
2 >>>second = '520'
3 >>>first = second
4 >>>print(first)
  1. 如果非要在原始字符串结尾输入反斜杠,可以如何灵活处理?
  2. 在这一讲中,我们说变量的命名需要注意一些地方,但小甲鱼在举例的时候貌似却干了点儿“失误”的事儿,你能看得出小甲鱼例子中哪里有问题吗?
    动动手:
  3. 还记得我们第一讲的动动手的题目吗?这一次要求使用变量,计算一年有多少秒?
    提示:可以以 DaysPerYear(每年天数),HoursPerDay(每天小时数),MinutesPerHour(每小时分钟数),SecondsPerMinute(每分钟秒数)为变量名。
  4. 关于最后提到的长字符串(三重引号字符串)其实在 Python3 还可以这么写,不妨试试,然后比较下哪种更方便?
1 >>> string = (
2 "我爱鱼C,\n"
3 "正如我爱小甲鱼,\n"
4 "他那呱唧呱唧的声音,\n"
5 "总缠绕于我的脑海,\n"
6 "久久不肯散去……\n")

答案:

测试题答案:

0. 以下哪个变量的命名不正确?为什么? (A) MM_520 (B) MM520 (C) 520_MM (D) _520_MM

(C)选项不正确,因为 Python 中的变量名不能以数字开头。

1. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?
会打印:小甲鱼
2. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?
会打印:小甲鱼
3. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?
会打印:520,注:这里没有单引号括起来,但是他是一个字符串,因为使用 print() 打印,所以不包含单引号。可以试试直接>>>first,它是一个字符串的。
4. 如果非要在原始字符串结尾输入反斜杠,可以如何灵活处理?

>>> str = r'C:\Program Files\FishC\Good''\\'
>>> str
'C:\\Program Files\\FishC\\Good\\'
>>> print(str)
C:\Program Files\FishC\Good\

6. 在这一讲中,我们说变量的命名需要注意一些地方,但小甲鱼在举例的时候貌似却干了点儿“失误”的事儿,你能看得出小甲鱼例子中哪里有问题吗?
在例子中小甲鱼起了个 str 名字的变量,但事实上我们发现,str 的颜色跟普通变量貌似不同?没错,str() 和 print() 都是内置函数,但 Python 貌似不介意我们对内置函数进行赋值操作,所以这点我们以后就要注意啦.

动动手答案:

0. 还记得我们第一讲的动动手的题目吗?这一次要求使用变量,计算一年有多少秒?

1 >>> DaysPerYear = 365
2 >>> HoursPerDay = 24
3 >>> MinutesPerHour = 60
4 >>> SecondsPerMinute = 60
5 >>> result = DaysPerYear * HoursPerDay * MinutesPerHour * SecondsPerMinute
6 >>> result
7 31536000
8 >>> print(result)
9 31536000

小甲鱼备注:大家看到了要给变量起一个合适的名字并不容易,但在很多文档中,这类名字随处可见,所以要习惯。

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

推荐阅读更多精彩内容