1. 在内存中创建了一个'ABC'的字符串;
2. 在内存中创建了一个名为a的变量,并把它指向'ABC'。
9. Python中定义字符串 ''/"" 字符串本身包含'的话可以用" "括起来表示 类似可以表示' 如果字符串既包含 ' 又包含 " 怎么办? 例如表示字符串I am' "Fine" 则需要加\这个转义字符,即可以表示为'I am\' \"Fine\"' 常用转义字符: \n表示换行 \t表示一个制表符 \\表示\字符本身 10. Python中raw字符串与多行字符串 如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀 r ,表示这是一个 raw 字符串,里面的字符就不需要转义了。 但是 r'...' 表示法不能表示多行字符串,也不能表示包含 ' 和 " 的字符串(为什么?) 如果要表示多行字符串,可以用 '''...''' 表示: 还可以在多行字符串前面添加 r ,把这个多行字符串也变成一个 raw字符串 11. Python中Unicode字符串 字符串还有一个编码问题。 0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为 ASCII编码 ,比如大写字母 A 的编码是 65 ,小写字母 z 的编码是 122 。 如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了 GB2312 编码,用来把中文编进去。 类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码, Unicode 应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。 Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。 因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串 'ABC' 在Python内部都是 ASCII编码 的。 Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,表示: print u'中文' 注意:不加u,中文就不能正常显示。 12. Python中整数和浮点数 Python支持对整数和浮点数直接进行四则混合运算。 使用括号可以提升优先级,这和数学运算完全一致,注意只能使用小括号,但是括号可以嵌套很多层 和数学运算不同的地方是,Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数 但是整数和浮点数混合运算的结果就变成浮点数了 11 / 4 # ==> 2 注意想获得精确结果的话需要11.0/4 13. Python中布尔类型 Python把 0 、 空字符串'' 和 None 看成 False , 其他数值 和 非空字符串 都看成 True 布尔类型有True和False两种值,但是布尔类型有以下几种运算: 与运算 and 或运算 or 非运算 not 注意:短路运算 14. Python创建list Python内置的一种数据类型是列表:list,它是一种有序的集合,可以随时添加和删除其中的元素。 >>> classmates = ['Michael','Bob','Tracy']代表一个list对象 我们可以通过classmates来引用list,由于Python是动态语言,所以list中包含的元素并不要求都必须是同一数据类型, 我们完全可以在list中包含各种数据 Python按照索引访问list 需要特别注意的是 ,索引从 0 开始 要打印第一名同学的名字,用 L[0] IndexError: list index out of range 要注意不要越界 。 Python倒序索引访问list L[-1]表示倒数第一个元素 L[-2]表示倒数第二个元素 Python添加新元素 调用list的append()方法,把新元素添加到list的末尾 调用list的insert()方法,它接收两个参数,第一个参数是索引号,第二个参数是待添加的新元素。 调用list的pop()方法,把list中最后一个元素删除,调用pop(index)移除索引是index的元素。(这里注意删除的顺序,否则越界) 替换元素:通过索引访问替换 L[-1]=‘’倒序替换 都可以 15. Python创建 tuple(对比list) tuple是另一种有序的列表,中文翻译为"元组",tuple和list非常相似,但是tuple一旦创建完毕就不能修改了。 16. Python之创建单元素tuple tuple和list一样,可以包含0个 1个和任意对个元素。 包含0个元素的tuple,也就是空tuple,直接用()表示: >>> t = () >>> print t () 包含1个元素的tuple呢? >>> t = (1) >>> print t 1 因为()被Python解释器解释为运算时的优先级,计算结果为1 正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号 “,” ,这样就避免了歧义: >>> t = (1,) >>> print t (1,) 17. Python“可变”的tuple tuple一旦创建就不可修改,看下面的例子吧: >>> t = ('a','b',['A','B']) >>> L = t[2] >>> L[0] = 'X' >>> L[1] = 'Y' >>> print t ('a','b',['X','Y']) t uple一开始指向的list并没有改成别的list,所以,tuple所谓的 “不变” 是说,tuple的每个元素,指向永远不变。即 指向'a',就不能改成指向'b' ,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的! 想保持tuple中的元素全不改变,可以把list改成tuple 18. Python之if语句 age = 20 if age >= 18: print 'your age is', age print 'adult' print 'END' 注意: Python代码的缩进规则 。具有相同缩进的代码被视为代码块 注意: if 语句后接表达式,然后用 : 表示代码块开始。 缩进请严格按照Python的习惯写法: 4个空格,不要使用Tab,更不要混合Tab和空格 ,否则很容易造成因为缩进引起的语法错误。 如果你在 Python交互环境 下敲代码,还要特别 留意缩进 ,并且 退出缩进需要多敲一行回车 19. Python之if-else语句 if age >= 18 : print 'adult' else: print 'teenager' 注意: else 后面有个 “:” 。 20. Python之if-elif-else elif 意思就是 else if 21. Python之for循环 Python的 for 循环就可以依次把list或tuple的每个元素迭代出来 L = ['Adam','Lisa','Bart'] for name in L: print name 注意: name 这个变量是在 for 循环中定义的,意思是,依次取出list中的每一个元素,并把元素赋值给 name,然后执行for循环体(就是缩进的代码块)。 22. Python之while循环 while 循环 根据表达式判断循环是否结束。 23. Python之break退出循环 24. Python之continue继续循环 在循环过程中,可以用break退出当前循环,还可以用 continue 跳过后续循环代码,继续下一次循环。 对已有的计算 0 - 100 的while循环进行改造,通过增加 continue 语句,使得只计算奇数的和 s um = 0 x = 0 while True: x = x + 1 if x > 100: break if x%2 == 0: continue sum = sum + x print sum 25. Python之多重循环 在循环内部,还可以嵌套循环,来看一个例子 for x in ['A','B','C']: for y in ['1','2','3']: print x + y x每循环一次y就会循环三次 这样,我们可以打印出一个全排列: A1 A2 A3 B1 B2 B3 C1 C2 C3 练习: 对100以内的两位数,请使用一个两重循环打印出所有十位数数字比个位数数字小的数,例如,23(2 < 3)。 for x in [1,2,3,4,5,6,7,8,9]: for y in [0,1,2,3,4,5,6,7,8,9]: if x<y: print x*10+y