⼩甲鱼Python第003讲:插曲之变量和字符串课后测验及参考答
测试题:
0. 以下哪个变量的命名不正确?为什么?
(A) MM_520 (B) _MM520_ (C) 520_MM (D) _520_MM
C:变量不能以数字开头
1. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?
>>>myteacher = '⼩甲鱼'
>>>yourteacher = myteacher
>>>yourteacher = '⿊夜'
>>>print(myteacher)
打印: ⼩甲鱼
2.在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?
>>> myteacher = '⼩甲鱼'
>>> yourteacher = myteacher
>>> myteacher = '⿊夜'
>>> print(yourteacher)
打印:⼩甲鱼
3. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?
>>>first = 520
>>>second = '520'
>>>first = second
>>>print(first)
打印字符串: 520
最后通过利⽤输⼊:
>>>type(first)---<class 'str'>
>>>type(second)---<class 'str'>
4. 除了使⽤反斜杠(\)进⾏字符转义,还有什么⽅法可以打印:Let's go! 这个字符串?
输⼊:
print("Let's go !");
或者
print('Let\'s go !');
5. 如果⾮要在原始字符串结尾输⼊反斜杠,可以如何灵活处理?
print('12345\\'); # ---12345\
print(r'12345\\');# ---12345\\ 保留后⾯引号⾥的所有,因为r---且r后如果转译符为奇数将出现错误
print(r'12345\\\\'); # 12345\\\\
print(r'12345''\\'); # ---12345\ #为输出。
6. 在这⼀讲中,我们说变量的命名需要注意⼀些地⽅,但⼩甲鱼在举例的时候貌似却⼲了点⼉“失误”的事⼉,你能看得出⼩甲鱼例⼦中哪⾥有问题吗?
内置函数名也可以作为变量名,只不过覆盖以后内置函数就没法调⽤了。
动动⼿:
0. 还记得我们第⼀讲的动动⼿的题⽬吗?这⼀次要求使⽤变量,计算⼀年有多少秒?
提⽰:可以以 DaysPerYear(每年天数),HoursPerDay(每天⼩时数),MinutesPerHour(每⼩时分钟数),SecondsPerMinute(每分钟秒数)为变量名。
1. 关于最后提到的长字符串(三重引号字符串)其实在 Python3 还可以这么写,不妨试试,然后⽐较下哪种更⽅便?
>>> string = (
  "我爱鱼C,\n"
  "正如我爱⼩甲鱼,\n"
  "他那呱唧呱唧的声⾳,\n"
  "总缠绕于我的脑海,\n"
  "久久不肯散去……\n"
  )
  元祖连接字符串,更习惯使⽤三重引号字符串
Python 允许使⽤转义字符(\)对换⾏符进⾏转义,转义之后的换⾏符不会“中断”字符串。例如:
1. s2 = 'The quick brown fox \
2. jumps over the lazy dog'
3. print(s2)
上⾯ s2 字符串的内容较长,故程序使⽤了转义字符(\)对内容进⾏了转义,这样就可以把⼀个字符串写成两⾏。
Python长字符串
前⾯介绍 Python 多⾏注释时,提到使⽤三个引号(单引号、双引号都⾏)来包含多⾏注释内容,其实这是长字符串的写法,只是由于在长字符串中可以放置任何内容,包括放置单引号、双引号都可以,如果所定义的长字符串没有赋值给任何变量。
实际上,使⽤三个引号括起来的长字符串完全可以赋值给变量,例如如下程序:
1. s = '''"Let's go fishing", said Mary.
2. "OK, Let's go", said her brother.
3. they walked to a lake'''
4. print(s)
上⾯程序使⽤三个引号定义了长字符串,该长字符串中既可包含单引号,也可包含双引号。
原始字符串路径 G:\publish\codes\02\2.4 这样的字符串:
  对字符串中每个 '\' 进⾏转义,即写成 G:\\publish\\codes\\02\\2.4 。
  原始字符串以“r”开头,它不会把反斜线当成特殊字符。因此,上⾯的 Windows 路径可直接写成如下这种形式:
  s1 = r'G:\publish\codes\02\2.4'
  print(s1)
  如果原始字符串中包含引号,程序同样需要对引号进⾏转义(否则 Python 同样⽆法对字符串的引号精确配对),但此时⽤于转义的反斜线会变成字符串的⼀部分。
  例如如下代码:
1. # 原始字符串包含的引号,同样需要转义
2. s2 = r'"Let\'s go", said Charlie'
3. print(s2)
  上⾯代码会⽣成如下输出结果:
  "Let\'s go", said Charlie
  由于原始字符串中的反斜线会对引号进⾏转义,因此原始字符串的结尾处不能是反斜线,否则字符串结尾处的引号会被转义,导致字符串不能正确结束。
  如果确实要在原始字符串的结尾处添加反斜线怎么办呢?⼀种⽅式是不要使⽤原始字符串,⽽是改为使⽤长字符串写法(三引号字符串);另⼀种⽅式就是将反斜线单独写。
字符串常量中不能直接包括双引号和反斜杠符号
例如如下代码:
  s3 = r'Good Morning' '\\'
  print(s3)
  上⾯代码开始写了⼀个原始字符串 r'Good Morning',紧接着程序使⽤ '\\' 写了⼀个包含反斜线的字符串,Python 会⾃动将这两个字符串拼接在⼀起。运⾏上⾯代码会⽣成如下输出结果:
  Good Morning\
2. 请写下这⼀节课你学习到的内容:格式不限,回忆并复述是加强记忆的好⽅式!
转译符;
长字符串:三引号,和r(")
#测试题4. print("Let's go!"); print('Let\'s go!');
#测试题5. print('12345\\'); print(r'12345\\'); print(r'12345''\\');

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。