Loading... 各位同学们大家好,我是雪山凌狐,欢迎学习 python3 小白课。 新一个章节,我们来学习一下 python 中最最基础的变量、类型和运算符等知识,有了这些知识,你已经有了许多未来趁手的武器。这部分是核心知识,但学习起来并不难,而且许多其他编程语言也有类似的知识结构,请大家务必要百分百掌握。好,接下来我们开始本章的学习之旅。 本节课我们来跟大家讲清楚变量是一个什么东西。很多人家啊家里都有种花,对吧,咱们小白同学也不例外,家里有好多好多的花盆。他呢给花盆 1 种了玫瑰花,给花盆 2 种了水仙花,又给花盆 3 呢种植了百合花。那么我们刚才说的 `花盆1` 就是变量的名,而花盆里的 `玫瑰花` 就是变量的值啦。变量的名像是一个容器,你一喊 `拿起花盆1`—— 拿起的就是玫瑰花了。而它为啥叫变量呢?因为它的值是可以变化的。比如现在花盆 1 种的是玫瑰花,对吧?那么这时候小黑同学过来了,把花盆里的花挖掉,种下了康乃馨。这时候我再喊 `拿起花盆1`—— 这时候怎么拿起的是什么花啊?没错,这时候已经变成康乃馨了。 这时候我们可以类比到 python 当中,我们用最简单的代码来讲解: ```python # coding: utf-8 a = 11111 b = 22222 print(a + b) ``` 这里呢,我们定义了名字为 a 和 b 两个变量,在 python 中我们使用等于号来表示赋值,我们分别给 a 和 b 两个变量赋上右边的值,11111 和 22222。赋值之后呢,我们可以用 a 和 b 的变量名来替代它的值,用在 print 当中,使用加号来计算两个数的结果,我们运行一下,结果是,33333。这时候,好处就来了,当我们的值很长很长甚至未知它是什么的时候,我们可以用变量来存储值,你呢,只需要记住变量的名字,就可以在后续的代码中调用它了,非常的方便。 那有的同学说了,没事,我记得住呀,不就 11111 和 22222 嘛。来来来,我给你这么一个名字:`巴布罗·迭戈·何塞·弗朗西斯科·狄·保拉·胡安·纳波穆西诺·玛莉亚·狄·洛斯·雷梅迪奥斯·西普里亚诺·狄·拉·圣地西玛·特里尼达·路易斯·毕加索`。这可不是我乱打的,这是大名鼎鼎的画家,毕加索的全名,恐怖吧?但如果我们用比如 `bjs` 这个变量名来表示这个值,后续调用就非常方便了。但如果我们每次调用他的名字的时候都打上这么多个字,我特意看了一下哈,有 72 个字符,如果你在很多行代码都对它进行调用,那对你来说一定是噩梦般的存在。 好的,听完咱们前面讲的,相信你一定明白咱们为啥要有变量了,接下来咱们来讲一个新知识点:python 是一种弱类型语言。为啥这么说呢? 主要啊体现在下面两点: 第一,变量无需事先声明即可使用。比如咱们前面例子中的变量 a,我们没有单独的语句声明它是一个什么类型的变量,是一个整数?还是一个文本?我们直接就可以给它进行赋值。 第二,变量里的值的数据类型可以改变,比如我们一开始赋值了 11111,它是一个整数,如果我们在后续的代码中需要改变它的值了,我们可以随时赋值别的类型的值进去,比如 `a = "我是小白"`。 换句话说,就是 python 这种语言对于变量所属的类型并不敏感,它可以按照我们的需要进行变化。说句题外话,如果你将来学到的不是弱类型的编程语言,可能就需要在使用变量前先声明变量的类型了,而且变量在声明类型之后,不可改变它的类型。从这里也体现了 python 的灵活性。 最后,我们来说说变量的命名规范。变量起名字的时候,是有一些规范的,一些不支持或不合法的变量名,会使得 python 解释器不能正常解释和工作。 总体来说呢,python 的变量名必须以字母或下划线 `_` 开头,后面可以跟任意数目的字母、数字和下划线 `_`。在 python 中,变量起名一般不包含中文汉字,虽然啊在 python3 中已经支持了中文变量名,比如 `语文 = 100`,这里语文就是变量名。这样写虽然不会造成什么语法错误,但是不推荐,一方面你在敲代码的时候还得时常切换输入法,另一方面会阻止代码的国际化,会让人看你的代码感觉到不伦不类的,因此我们在实际使用中需要避免。我们常见的变量名通常都是字母、下划线的组合居多,偶尔掺杂数字。但请注意,变量名不能包含空格。 那么我们说,在实际起名的时候,通常应该怎么做呢?通常我们可以使用简单的单词来表示这个变量的作用,也可以用拼音或拼音的首字母组合来作为变量名,都是可以的,总之,你起的名字,要让未来你在开发的时候还能能记得住有这么个变量,是干什么的,就行。 最后,我们再来补充两条变量起名的注意事项。 第一条是,python 的代码是对大小写敏感的,也就是说,变量名大 `A` 和变量名小 `a` 是两个不同的变量。 第二条是,在起名的时候,需要避免使用 python 的保留关键字或内置函数作为变量名,如果使用保留关键字做变量名,解释器会报错,如果使用内置函数名作为变量名,解释器不报错,但会把内置函数给覆盖掉,就不能使用内置函数了。 那么什么是保留关键字呢? 目前的版本中,有如下几个: ```bash ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'] ``` 大家打开看一下即可,不用记。 那么什么又是内置函数呢? 有如下的几个: ```bash ['abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip'] ``` 我们可以看到,之前学习过的 print 函数也在里面,也就是说,如果你将 print 作为变量名使用,并且赋了值,那么在同一个脚本文件的后续代码中就无法使用 print 进行打印输出了。 有的同学说,这太多啦,我怎么记啊?我的建议是,保留关键字你不需要记忆,如果解释器报错了,那就是不能用。内置函数的话,如果你记得这是一个你要使用的内置函数,那么在起名的时候就别用它。如果你不知道它是一个内置函数,后面的代码中也用不到这个函数,那用了,也不会影响你的脚本正常执行。 好的,本节课的内容就到这里啦~ 你的支持和理解也是我继续出课程的最大动力~ 如果你觉得本套教程不错的话,欢迎点赞、评论和收藏哟~ 更多精彩视频教程,欢迎全网搜索 “雪山凌狐教程”,我们下节课,再见! 以下是我们的视频教程: **在线观看:** https://www.bilibili.com/video/BV18r4y1F7Es/ **高清源文件下载:** <div class="hideContent">该部分仅登录用户可见</div> 感谢大家的收看,我们下期再见! 最后修改:2021 年 08 月 20 日 © 允许规范转载 赞 赠人玫瑰,手留余香