上集回顾
上一节内容还是相当多的,对前面所有接触到的关键字和符号进行总结整理,然后学习了一些计算机的基础知识,特别是字符编码的一些内容,要理解字符的编码和字节的解码意思。今天就开始把第一部分的最后的两节练习做完,然后开始考试!
更多的练习
输入和结果没有问题,这一节和下一节把前面学的内容基本上进行了综合。包括转义符、字符串、表达式、字符串格式化、函数定义和调用及返回值。特别需要注意字符串格式化的两种常用格式:f" "、" ".format( )
。
巩固练习
1、倒读代码,不懂得地方加上注释
在三个地方增加了注释:
第一个是函数定义:这个函数在调用的时候需要提供一个实参,并且有三个返回值,这是第一次遇到。后面三个返回值可以放在三个变量或者一个变量中。
第二个是f”“字符串格式化:函数得三个返回值保存在三个变量中,打印时被f”“格式调用。
第三个是.format字符串格式化:函数的三个返回值放在一个变量里,然后用*变量
来调用,莫非是列表?经过查证,返回的是元组!函数有多个返回值的时候返回的是个元组,自然也能赋值给多个变量(而且是按顺序的,如下打印是5和6:
2、日常破坏代码
首先咱把这个print关键字弄错,报错是名称错误,说这个弄错的名字没有定义它是什么,当然了,程序不可能知道本应该是print关键字而被你写错了,只知道这个东西没有定义,也不再关键字里,不知道是啥。
下一个咱把这个poem的赋值等号换成减号,本来该定义poem变量的时候变成了表达式,解释器也是一头雾水,同样是名称错误,不知道poem是干啥的就拿来运算?
下一个咱把print的小括号弄错了,前括号写成了数字6,报错是语法错误:语法无效!这应该是python解释器的两大错误,要么是变量没有定义就用导致的名称写错,还有就是语法不扎实写出来的错误语法。
3、为啥把jelly_beans这个变量后面写程beans?
这个就是局部变量和全局变量的概念,函数内部的变量都是临时的,就好像不同的班级内部一样。函数内部的变量在外面也是没法使用的,基本上算是完全封闭的环境,不然怎么需要用return来返回值?
学习感悟:首先想说的就是,倒着读真的有用,不然我也发现不了.format(*变量)这个细节,倒着一行一行的去理解代码才能真正完全理解每一句代码。今天的收获很多,特别是函数的多个返回值那里,函数的参数和返回值是函数和外界交流的两个重要窗口。另外就是.format(*变量)这个方便的字符串格式化用法,多个变量可以存元组中用来方便的显示。