一/python主要思想
1 python的重要思想 一切皆是对象
2 python主要采用缩进的方式进行运行,所以一定要注意缩进,防治出现错误,缩进一般要求4个空格,虽然可以用Tab代替,但是尽量使用空格,因为会减少一部分错误,重点是推荐使用4个空格的形式
3 基本类型有字典(dict),元组(typle),字符串(str),列表(list),之间基本都可共通,现在我已知的有str转dict之间不可直接转换,但是可以用veal()进行转换(ps 这个函数是一个神奇的函数,基本可以自动识别进行转换)
4 print,是最开始接触的格式化输出的代码,他的含义是打印出来,在python枕边书中说,在python中print可以理解为一个打印机,所见即所得
5 % 字符是起到标记的作用,提示大家可以在下一步进行注意,要进行转换了
! /usr/bin/env python#coding:utf-8
"\"意思是转义符,就代表之后的转义,代表性的有\n(换行),\'后面备注(')',\t(制表符) 如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义 如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容 二 变量 变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。 变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头 在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量 这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。 静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言 三 除法 在python中除法也是用/表示,但是需要注意的是,/是浮点除,就是有余数,如果有小数, 而//则是地板除,意思就是不带余数,只求整数 与之相对应的是余数除法,就是只算余数 % . 字符串 要计算str包含多少个字符,可以用len()函数: 对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符 encode就是讲对应的文字改成某种编码,例如 >>> 'ABC'.encode('ascii') b'ABC' >>> '中文'.encode('utf-8') b'\xe4\xb8\xad\xe6\x96\x87' >>> '中文'.encode('ascii') Traceback (most recent call last): File "<stdin>", line 1, in <module> 其中assii无法读取中文 五 占位符 %运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。 常见的占位符有: 占位符 替换内容 %d 整数 %f 浮点数 %s 字符串 %x 十六进制整数 字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个% 强大的格式化方法.format() 这个不仅仅可以处理字符串,还可以处理字典,数列...基本上很好用,但是注意有一点小数需要注意: s1 = 72 s2 = 85 print("{0}你去年考了{1}分,今年考了{2}分,今年比去年多考了{3:10.1f}分".format(r,s1,s2,s2-s1)) 这里{3:10.1f}意思是:第四个数字(往后顺延一位)与前字母间距为10,'.1'的意思是小数点之后保留一位结果为: 小明你去年考了72分,今年考了85分,今年比去年多考了 13.0分 六 list: list可以用索引取出值,其中需要注意的一点是list取值是从[0]开始取得,所以以后我记这种问题就要从0开始数数.....自勉! 当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素的索引是len(classmates) - 1 list是一个可变的有序表,所以,可以往list中追加元素到末尾: 方法有: a.replace (B,b) 取代B为b list.append() 加到末尾 list.insert() 加到指定位置,括号中可以进行切片,位置是从0开始:-1是最后一位 list.pop() 是删除最后一位,并且打印出来删除的值(需要print) list中可以存放很多东西,比如list 数字 字符 七 tuple: tuple是一个元组,他的特色是不可变更,所以推荐,能用元组,就不要用list,因为这样数据更加安全. 注意:tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。 即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的! 记住如果tuple中只有一个数字(1)一定要写成(1,)否则会默认成为list,而不是tuple 八 if...else... 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断 if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else input()返回的数据类型是str,要运算需要转换 九/循环 Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来 for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句。 第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。 在循环中,break语句可以提前退出循环 在循环过程中,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环。 要特别注意,不要滥用break和continue语句。break和continue会造成代码执行逻辑分叉过多,容易出错。 大多数循环并不需要用到break和continue语句,可以用标志符来运行 十\dict 字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。 dict就是第二种实现方式,给定一个名字,比如'Michael', dict在内部就可以直接计算出Michael对应的存放成绩的“页码”, 也就是95这个数字存放的内存地址,直接取出来,所以速度非常快。 把数据放入dict的方法,除了初始化时指定外,还可以通过key放入: >>> d['Adam'] = 67 >>> d['Adam'] 67 由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉: 如果key不存在,dict就会报错: >>> d['Thomas'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'Thomas' 要避免key不存在的错误,有两种办法,一是通过in判断key是否存在: >>> 'Thomas' in d False 二是通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value: >>> d.get('Thomas') >>> d.get('Thomas', -1) -1 要删除一个key,用pop(key)方法,对应的value也会从dict中删除: dict内部存放的顺序和key放入的顺序是没有关系的。 和list比较,dict有以下几个特点: 查找和插入的速度极快,不会随着key的增加而变慢; 需要占用大量的内存,内存浪费多。 而list相反: 查找和插入的时间随着元素的增加而增加; 占用空间小,浪费内存很少。 所以,dict是用空间来换取时间的一种方法。 需要牢记的第一条就是dict的key必须是不可变对象。 dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash) 在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key 十一\set: set最大的特色是去重这是因为,set和dict类似,也是一组key的集合,但不存储value。 由于key不能重复,所以,在set中,没有重复的key。 要创建一个set,需要提供一个list作为输入集合 例如a = set([1, 2, 3]) print(a) 打印出{"1"} 1. 不能放入list dict 这类数值都可以中间改变 通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果: >>> s.add(4) >>> s {1, 2, 3, 4} >>> s.add(4) >>> s {1, 2, 3, 4} 通过remove(key)方法可以删除元素: >>> s.remove(4) >>> s {1, 2, 3} set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作: >>> s1 = set([1, 2, 3]) >>> s2 = set([2, 3, 4]) >>> s1 & s2 {2, 3} >>> s1 | s2 {1, 2, 3, 4} 使用key-value存储结构的dict在Python中非常有用,选择不可变对象作为key很重要,最常用的key是字符串。 tuple虽然是不变对象,但试试把(1, 2, 3)和(1, [2, 3])放入dict或set中,并解释结果。