零基础入门Python小甲鱼-笔记3

第3章 成为高手前必须知道的一些基础知识-上

3.1 变量

在改进之前那个小游戏之前,有些必须必须掌握的知识需要来讲解一下。

变量名就像我们现实社会的名字,把一个值赋值给一个名字时,Ta会存储在内存中,称之为变量(variable)。通过那个名字可以操作那个变量,在现实生活中也相当于叫别人的名字,别人给予你回应,同时可以交流。

在大多数编程语言中,都把这种行为称为“给变量赋值”或“把值存储在变量中”。但是Python就在那里唱我们不一样,它并不是把值存储在变量中,而更像是把名字”贴”在值的边上。所以有些Python程序员会说“Python”没有“变量”,只有“名字”。 我们可以通过那个名字去操作。

变量为什么不叫”恒量”,而叫变量?正是因为它是可变的!

创建一个变量,名字叫x,并给它初始化赋值为3,其他的同样这样来理解,我就不写啦

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

同样的方式也可以运用到字符串中:

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

这种字符串加字符串的语法,在Python里成为字符串的拼接。

PS.小提示(大影响)

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

  • 字符名可以包括字母、数字、下划线,但是变量名不能以数字开头,受C语言的影响,或者说是Python这门语言就是由C语言写出来的

  • 字母可以是大写或小写,但是大小写是不同的

  • 等号(=)是赋值的意思,左边是名字,右边是值,遇到等号先看右边,不可以写反了。

  • 变量的命令理论可以取任何合法的名字,但是作为一个优秀的程序员(假装自己很优秀),请将尽量给变量去一个专业一点儿的名字,简单来说就是见名知意。

3.2 字符串

其实字符串就是引号内的一切东西,也就是用引号包括起来的东西的都是字符串,无论是单引号还是双引号

直接让两个数字相加,那么Python会直接将数字相加之后的结果告诉你:

>>> 5 + 8
13

你可以先猜一下'5' + '8'结果,不要看下面的答案哦

>>> '5' + '8'
'58'

那上面那个在数字两边是加上了引号,就变成字符串的的拼接啦,这是引号带来的差别:

引号可以带来的问题:

1.不成双成对,不专一:

为什么这么说呢?创建一个字符串,就要自强字符两边加上引号,可以是单引号或者双引号,Python表示都可以,很大度,但是你不能一边使用单引号,另一边却花心地用上双引号结尾,Python说大哥,你在干啥呢,你是过来捣乱的吗?

>>> 'Python I Love you!"
SyntaxError: EOL while scanning string literal
>>> "Python I Love you!'
SyntaxError: EOL while scanning string literal

通过上面的例子得出,要专一啊,这就要像你一边跟Python说我爱你,一边搂着小C,所以,面对这么完美的语言,我们要学会专一,不犯错误。

2.字符串内容中需要出现单引号或双引号

我做出第一步尝试(直接写,不管它),作死,出现语法错误的报错

>>> 'Let 's go'
SyntaxError: invalid syntax

解决办法:

1.使用转义符号(\)对字符串中的引号进行转义:

>>> 'Let \'s go'
"Let 's go"

2.只要用上不同的引号表示字符串,Python就不会误解你的意思。简单来说就是外层使用单引号,内层使用双引号,或者是外层使用双引号,内层使用单引号,避免错误的发生

>>> "Let 's go"
"Let 's go"

3.3 原始字符串

好像反斜杠是一个好东西,但不妨试试打印C:\now:

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

打印的结果出乎意料,原因是反斜杠(\)和后边的字符(n)恰好转义之后构成了换行符(\n),我们可以使用加反斜杠对自身进行转义,这样可以解决那个问题:

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

但如果有一个字符串有多个反斜杠,我觉得是会很难看懂,而且要看很久,可能是代码变得混乱,有没有办法解决呢?

有个快捷方法,就是使用原始字符串,按照意思来说,就是保持原来的模样。

使用方法很简单,只需要在字符串前边加上一个英文字母r即可。

>>> string = r'C:\now'
>>> string
'C:\\now'
>>> print(string)
C:\now

PS.小提示(大影响)

无论是否原始字符串,都不能以反斜杠作为结尾(反斜杠放在字符串的末尾表示该字符串还没有结束,换行继续的意思,之后会涉及到),你可以选择坚持,犯错误,才会学会

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

如果非要在字符串的结尾加个反斜杠,有什么办法可以灵活实现吗?

先把答案亮出来,看不懂,我慢慢讲解,我的理解是这样,不知道有没有理解错误,加一个转义字符()

>>> string = 'FishC\\'
>>> print(string)
FishC\

另外再加个题目:如果非要在原始字符串结尾输入反斜杠,可以如何灵活处理?

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

解析如下:

1.字符串可以用‘’或“”,只要字符串两端是同一类型的引号即可。引号中间部分会原样输出,并没有转义。简单来说,就是假如外层用了单引号,内层使用双引号,双引号会输出

2.两字符串直接放一起是拼接的意思。 str = r’C:\Program Files\FishC\Good”\’个人理解是这样的:r’C:\Program Files\FishC\Good’,与‘\’两个字符串是单独处理的,前面由于加了r(表示不转义),所以‘c:\program Files\FishC\Good’没有转义,第2个字符串‘\’第一个‘\’将第2个‘\’进行了转义,所以输出是‘\’ ,然后再拼接在一起。

3.4 长字符串

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

从明天起,做一个幸福的人

喂马、劈柴,周游世界

从明天起,关心粮食和蔬菜

我有一所房子,面朝大海,春暖花开

从明天起,和每一个亲人通信

告诉他们我的幸福

那幸福的闪电告诉我的

我将告诉每一个人

如果要打印这首诗打印出来,那么使用\n实现换行,这样好吗?我觉得我会累死,我选择不用这种方式,推荐一种方便的方法:

只要使用三重引号字符串(“”“内容”“”)就可以解决这个问题,ps单双引号都可以

>>> print('''
如果希望得到一个跨越多行的字符串

从明天起,做一个幸福的人

喂马、劈柴,周游世界

从明天起,关心粮食和蔬菜

我有一所房子,面朝大海,春暖花开

从明天起,和每一个亲人通信

告诉他们我的幸福

那幸福的闪电告诉我的

我将告诉每一个人
''')

结果实现换行,我就不把结果显示出来啦

PS.小提示(大影响)

编程中使用的标点符号都是英文的!

3.5 改进我们的小游戏

之前的小游戏真的太简单啦,大概有以下几个方面的需要改进:

  • 当用户猜错的时候程序应该给点提示,比如告诉用户输入的值比答案是大了还是小了。
  • 每运行一次程序只能猜一次,应该提供多次机会给用户猜测,至少要三次嘛,人非圣贤,孰能一击即中,你说是吧
  • 每次运行程序,答案可以是随机的。因为答案固定的话,容易导致答案外泄,那岂不是每个都是小甲鱼的蛔虫。

可以先自己想一下,抄起家伙(Python)干掉它

参考资料是:零基础入门学习Python小甲鱼的书和视频教程

猜你喜欢

转载自blog.csdn.net/xyyojl/article/details/80531831