小甲鱼Python学习知识点记录(003讲)

一、插曲之变量

1、变量名就像我们现实社会的名字,把一个值赋值给一个名字时,它会存储在内存中,称之为变量(variable),在大多数语言中,都把这种行为称为“给变量赋值”或“把值存储在变量中”。

2、不过Python与其他大多数计算机语言的做法稍有不同,它并不是把值存储在变量中,而更像是把名字贴在值的上面。

3、所以有些Python程序员会说python没有“变量”,只有“名字”。

4、代码示例(一)

teacher='小甲鱼'
print(teacher)

小甲鱼

teacher='老甲鱼'
print(teacher)

老甲鱼

5、代码示例(二)

first=3
second=8
third=first+second
print(third)

11

6、一点想法

我发现如果是下面这种形式:

>>> first=3
second=8
third=first+second
print(third)

SyntaxError: multiple statements found while compiling a single statement

必须得是下面这样:

>>> first=3
>>> second=3
>>> third=first+second
>>> print(third)

11
我在想这种限制是不是和Python中的语句不用以分号结尾有一点关系。

7、代码示例(三)

myteacher="小甲鱼"
yourteacher="黑夜"
ourteacher=myteacher+yourteacher
print(ourteacher)

小甲鱼黑夜

这个代码示例用到了我们前面说过的字符串拼接。

8、需要注意的地方

■在使用变量之前,需要对其先赋值。

比如在上面的过程中,我们没有对fishc进行赋值,然后:

>>>fishc

Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    fishc
NameError: name 'fishc' is not defined

但我们上面已经对first赋值了,那么:

>>>first

3

■变量名可以包括字母、数字、下划线,但变量名不能以数字开头。

■字母可以是大写或小写,但大小写是完全不同的,如fishc和FishC对Python来说是完全不同的两个名字。

■等号(=)是赋值的意思,左边是名字,右边是值,不能写反咯。

■变量的命名理论上可以取任何合法的名字,但作为一个优秀的程序员,请尽量给变量取专业一点的名字。比如>>>teacher="小甲鱼“就比>>>t="小甲鱼"要好得多,因为t可以代表的意义实在是太多了。

二、插曲之字符串

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

>>>5+8

13

>>>'5'+'8'

'58'

2、要告诉Python你在创建一个字符串,就要在字符串两边加上引号,可以是单引号或是双引号,Python女士表示不挑剔,但必须成对,你不能一边用单引号,另一边却花心地用双引号。

3、如果字符串中需要出现单引号或双引号怎么办?例如我们想打印字符串:Let's go!,有两种方法,我们这里先介绍第一种方法,即使用转义符号(\):

>>>'Let's go!'

SyntaxError: invalid syntax

>>>'Let\'s go!'

"Let's go!"

注意是(\)!!!,不是(/)!!!

3、原始字符串

■好像反斜杠是一个好东西,但见下例:

>>>str='C:\now'

>>>str

'C:\now'

>>>print(str)

C:
ow

可以发现这里\n构成了回车的转义字符,和我们的预期不符。

■我们可以用反斜杠对反斜杠自身进行转义,见下例:

>>>str='C:\\now'

>>>str

'C:\\now'

>>>print(str)

C:\now

■但如果一个字符串里面有很多反斜杠,如>>>str='C:\Program Files\Intel\WiFi\Help',一个一个的去加反斜杠就不现实,这时我们就要用到原始字符串。原始字符串的使用非常简单,只需要在字符串前面加一个英文字母r即可:

>>>str=r'C:\now'

>>>str

'C:\\now'

>>>str='C:\Program Files\Intel\WiFi\Help'

>>>str

'C:\\Program Files\\Intel\\WiFi\\Help'

但原始字符串在最后不可以加上反斜杠:

>>>str='C:\Program Files\Intel\WiFi\Help\'

SyntaxError: EOL while scanning string literal

4、长字符串

■如果希望得到一个跨越多行的字符串,如:

春日宴

绿酒一杯歌一遍

再拜陈三愿

一愿郎君千岁

二愿妾身康健

三愿如同梁上燕

岁岁常相见

■我们就需要用到三重引号字符串:

>>>str="""

春日宴

绿酒一杯歌一遍

再拜陈三愿

一愿郎君千岁

二愿妾身康健

三愿如同梁上燕

岁岁常相见"""

>>>str

'\n\n春日宴\n\n绿酒一杯歌一遍\n\n再拜陈三愿\n\n一愿郎君千岁\n\n二愿妾身康健\n\n三愿如同梁上燕\n\n岁岁常相见'

>>>print(str)

春日宴

绿酒一杯歌一遍

再拜陈三愿

一愿郎君千岁

二愿妾身康健

三愿如同梁上燕

岁岁常相见

■最后提醒大家编程的标点符号一定要用英文!!!

三、课后习题知识点记录

0. 以下哪个变量的命名不正确?为什么?

(A) MM_520 (B) _MM520_ (C) 520_MM (D) _520_MM

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

1.在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?

>>>myteacher = '小甲鱼'
>>>yourteacher = myteacher
>>>yourteacher = '黑夜'
>>>print(myteacher)

答:小甲鱼

2.在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?

>>> myteacher = '小甲鱼'
>>> yourteacher = myteacher
>>> myteacher = '黑夜'
>>> print(yourteacher)

答:小甲鱼

3.在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?

>>>first = 520
>>>second = '520'
>>>first = second
>>>print(first)

答:会打印:520.

Extension:这里没有单引号括起来,但是它是一个字符串,因为使用print()打印,故不包含单引号,可以试试>>>first

>>>first = 520
>>>second = '520'
>>>first = second
>>>first

'520'

4.除了使用反斜杠(\)进行字符转义,还有什么方法可以打印:Let's go! 这个字符串?

答:用双引号引起这个字符串:

>>>"Let's go!"

"Let's go!"

5.如果非要在原始字符串结尾输入反斜杠,可以如何灵活处理?

答:在最后用转义字符再加上一个反斜杠。

>>>str=r'c:\Program Files\FishC\Good''\\'

>>>str

'c:\\Program Files\\FishC\\Good\\'

6.在这一讲中,我们说变量的命名需要注意一些地方,但小甲鱼在举例的时候貌似却干了点儿“失误”的事儿,你能看得出小甲鱼例子中哪里有问题吗?

答:在例子中小甲鱼起了一个str名字的变量,但我们发现,str的颜色和普通变量的颜色是不同的。没错,str()和print()都是内置函数,但Python貌似不介意我们对内置函数进行赋值操作,所以这点我们以后要注意啦,否则可能出现下面的BUG:

>>>print=1

>>>print("I love FishC")

Traceback (most recent call last):
  File "<pyshell#34>", line 1, in <module>
    print("I love FishC")
TypeError: 'int' object is not callable

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

答:小甲鱼的答案给出的代码如下:

>>>DaysPerYear = 365
>>>HoursPerDay = 24
>>>MinutesPerHour = 60
>>>SecondsPerMinute = 60
>>>result = DaysPerYear * HoursPerDay * MinutesPerHour * SecondsPerMinute
>>>print(result)

Traceback (most recent call last):
  File "<pyshell#46>", line 1, in <module>
    print(result)
TypeError: 'int' object is not callable

运行出错了,原因大概是int类型不能在函数中调用之类的,修改成:

>>>DaysPerYear = 365
>>>HoursPerDay = 24
>>>MinutesPerHour = 60
>>>SecondsPerMinute = 60
>>>result = DaysPerYear * HoursPerDay * MinutesPerHour * SecondsPerMinute
>>>print(result)

31536000

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

8.关于最后提到的长字符串(三重引号字符串)其实在 Python3 还可以这么写,不妨试试,然后比较下哪种更方便?

>>> string=(
    "春日宴\n"
    "绿酒一杯歌一遍\n"
    "再拜陈三愿\n"
    "一愿郎君千岁\n"
    "二愿妾身康健\n"
    "三愿如同梁上燕\n"
    "岁岁常相见\n")

>>>string

'春日宴\n绿酒一杯歌一遍\n再拜陈三愿\n一愿郎君千岁\n二愿妾身康健\n三愿如同梁上燕\n岁岁常相见\n'

猜你喜欢

转载自blog.csdn.net/weixin_41587118/article/details/88076219