发现,廖老师的第一篇第一个python程序的阅读数最多有四十四万人(看了这篇文章的人大部分都是要认真学习python的人,阅读前两篇的人水分太大故不参考那些数据了),到了后面人数也就维持在了十万左右(估计)。加油吧,希望自己能坚持下去。
1、今天用Notepad编写了第一行代码。执行的时候出错了,问题是我在Python交互界面里运行了python XXX.py。而正确的做法是跳出python交互界面(>>>),在windows下运行python XXX.py。
廖老师提供了一个使用文本和python的小建议,在用文本编写代码时可开一个python交互环境,用这个环境来立即测试一些代码的编写效果。
2、对于一个存放字符串的变量,如果直接输出,则会带上单引号,但通过print输出不会有单引号。
3、python的代码块标志与C不一样,前者是通过冒号和缩进实现代码块区分的。
如
这个会将xxxxxx输出a=100 ifa>=0: print a else: print -a print'xxxxxx'
而
不会输出xxxxxxa=100 ifa>=0: print a else: print -a print'xxxxxx'
4、别将转义符与除号混淆啊
5、python是动态语言,即无需声明变量的类型,任何变量可指向任意数据类型。
对变量赋值(如a='ABC')时,python解释器做了两件事,第一件事是在内存里创建了一个字符串'ABC',第二件事是在内存里创建了一个名为a的变量,其指向‘ABC’。
理解了这一点,就明确了对于语句b=a,即是b指向的内容发生变化,b指向了a正指向的内容。
以上代码会输出的是ABCa = 'ABC' b = a a = 'XYZ' print b
一二行代码就是前面的解释,执行第三行时,python解释器仍做了两件事,第一件事是在内存里创建了一个字符串‘XYZ’,第二件事是将名为a的变量指向了‘XYZ’(注意与前面的第二件事区别),在这个过程中,b依旧指向的是‘ABC’,因此输出的就是ABC。
廖老师对这一段的总结很精辟,Python支持多种数据类型,在计算机内部,可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。(变量名和数据本没有关系,但是通过赋值可将二者联系起来,也可以通过赋值将二者关系断开)
6、ascii、unicode、utf-8??????
历史遗留问题,需要‘XXX’和u'XXX'两种字符串表示形式,对英文字母使用这两种形式没任何问题但对中文使用这两类形式就有问题了。所以对于中文字符串最好带上u。(这是python2X的遗留问题,在python3x中,中文使用这两种形式都是可以的)【这一点在廖老师文章小结中有提及字符串和编码】
插入6.1、使用格式化主要是方便形成灵活的字符串,若只是在输出的时候讲变量和常量结合输出使用逗号就可以了,即
a=row_input() print 'age',a str = 'age: %d' %55
7、python中有list,这就是C中的矩阵,索引也是从0开始。有一个不同用法是age[-1]代表age这个list中倒数第一个元素,age[-2]代表倒数第二个元素,这种用法也要防止越界。但list与C中的矩阵也有许多不同,list可以追加元素,即长度是不固定的。
另外,list中的元素数据类型可以不一样,特殊一点的有,list中再嵌套一个list。如下:
其中,若想调用ex1中的‘2’,就有两种方法,一是ex1[1],二是ex2[1][1],后者可被看作二维数组ex1=[1,'2'] ex2=[2.3,ex1]
8、python中还有tuple,这与list最大的区别在于,tuple不能变。因为它没有append、insert、pop等用法,但获取它的元素的方法是一样的。另外,tuple的不变是指,tuple的指向不变,指向的内容可以发生变化。
这个的两次输出都是(1,1)【这个要与廖老师使用list和tuple中举的tuple中带list的例子做区分】a = 1 tu = (1,a) print tu a = 2 print tu