python的数据类型分为数字、字符串、列表(list)、元组(tuple)、字典(dict)、集合(set).
1.语法错误,不能写在同一行,每行代码仅负责一个动作.
注:图截自B站黑马程序员视频
2.名称错误 --NameError. 注:图截自B站黑马程序员视频
3.缩进错误,不期望出现的缩进 --Indentation Error. 注:图截自B站黑马程序员视频
4.参考B站黑马程序员---- 3种使用方法 1.解释器 python3使用python3解释器 2.交互式 windows终端 但是代码不能保存,退出用ctrl+D或 exit().
ipython的shell 3.IDE(集成开发环境) eg.pycharm anaconda单引号和双引号是一样的,多行文字的话需要用三引号’’’ ‘’’ 来表示.
list :可变大小,有序.
class=['a','b','c']
不可变 一个key对应一个value
dict={'Mike':90,'Bob':75,'Tom':85} dict[Mike] 90
tuple,不可修改,有序列表.
t=(1,2) t=('a','b',['A','B']) t[2][0]='A' t[2][1]='B'
1.多重赋值的理解,参考最后一行注释 2.while语句的循环 3.书写格式,缩进要注意 4. 交换两个数的值
a=b,b=apython变量并不直接赋值,只是引用了一个内存地址,交换变量时,只是交换了引用的地址。
后面的结果不做赘述。 1.else 是for循环内自然执行后的结果,看对齐,else 跟的是for
2.break表示跳出当前的for循环,由于程序的两个for循环嵌套,所以进行外层的下一个for循环。 与之不同的是continue语句,仅表示跳出本次循环,注意本次循环和当前循环的区别,即continue语句后,跳出本次循环,继续进行下一个内层循环。待内层循环结束后,再进行外层循环。
3.一直有的一个疑问:第一轮的循环,n为2,那range(2,2)不是取得一个空列表,为什么没有报错可以正常运行??? 搜到的一个解释是这么说的:range(2, 2)返回一个空的迭代器,for循环作用于空的迭代器上一次也不会执行,而是直接结束。 空迭代器是合法的,不会报错。 range(2,3)得到的是 2
4.补充一下range()的使用 函数原型:range(start, end, scan): 参数含义:start:计数从start开始。默认是从0开始。例如range(5)等价于range(0,5) end:计数到end结束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 scan:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1) range(1,6)是[1,2,3,4,5] range(1,6,3)就是从第一个开始,每3取一次数,就是[1,4] range(1,6,2)就是每2取一次数,就是[1,3,5]喽 这个用法跟python切片很像,可以搜一下python切片。
一.错误版本 (写博客才发现自己的是Error版本,看来写这个还是有点帮助的) 图示是在廖雪峰老师的教程下完成的一个作业吧。 1.if -else语句的运用,注意格式! 2.def product(*args): def作为一个函数定义语句 (*args)是一个可变参数,即传入参数的个数可变,可变参数在函数调用时自动组装为一个tuple. 3.try-expect语句 这是一个python的异常捕捉机制,这点很厉害哦,先就这个程序简单理解一下,后面再专门讲一下。 4.由于我这个是错误的,就是最后没有躲过异常处理机制。
函数中args默认为(),调用时若未输入参数即输入()时无法通过最后的异常处理测试。*
二、运行正确
