Python最近两年是挺火的,抱着活到老、装逼到老的心态,紧跟时代的步伐,最近拿起书本认真学习了一把,把自己发现的两个小坑分享下。
1.关于注释的问题
Python初学者撸码的时候应该用的是Geany的文本编辑器,然后很多教程告诉你,注释的话只需要在注释语句前加上"#" 这个井号即可,但事实上,跑起来会报错,如以下两张下图,第一张是一个简单的打印语句,第二张是运行后报错的截图,可以从提示中“Non-UTF-8”字眼中可看出,就是编码的问题导致报错。
解决方法:很简单,如下图,只需要加上一行代码就可以解决了,国内的程序员的注释大部分都是中文的,只要加上这句代码,就可以中英兼顾了。
2.关于一个值给另外一个值引用的问题
先说说变量的通俗理解,其实就是一个容器,这个容器有一个内存地址,并且在这个变量没有被释放前这个内存地址唯一且不变,这个容器可以装的东西包括有列表(数组、组合等)、键值对(一一对应关系的对象)等等的东西,并且可以对里面的内容进行修改。而Python当中,我们通俗说的变量,其实是一个标签。
下面是实例,声明定义2个列表(或者叫数组),一个叫car1,一个叫car2,。car1里面有奥迪、宝马、奔驰三辆车。 car2里面有丰田、本田、日产三辆车。如下图所示
然后,把car1 赋值给car2,赋值完后再在car1当中增加一个叫'玛莎拉蒂'的车,如下面2张图所示,观察打印结果
打印结果car1和car2 里面都是'奥迪' '宝马' '奔驰' '玛莎拉蒂',而在之前我只在car1里面增加了'玛莎拉蒂',没有对car2进行增加,为什么car2也会跟着car1一起改变呢?
其实在我们给car2赋值的时候,car2就已经是在引用car1的内容了,也就是说car2的指针指向car1,所以我们最后得到的结果应该是car1这个容器里面的内容,并不是本来的'丰田' '本田' '日产',这个“=” (等号)的作用就相当于我引用你的东西,人家问我要什么,我就拿着你的东西给人家什么,这里学过指针的童鞋应该就很好理解了。
网友评论