python3学习笔记【简易】
0.注意事项与码风修正
1.注意到句尾分号没影响到编译,查资料知可加可不加,最好不加。当在一行中写多句代码时需要加。
2.for循环和if/else句尾冒号前不要有空格
3.没有else if,而是elif,竟然能查半天
4. 判断一个变量是否为真时,不可以用if a: flag = 1,因为if a这个语句是用来判断a的类型是不是None的(if not a也是判断None的)
5. True和False开头要大写
6. 可以写a <= x <= b,连着的不等号是可以编译的
1.操作
文件操作:
open(file, mode = 'r', buffering = -1, encoding = None, errors = None, newline = None, closefd = True, opener = None) #file 指定了被打开的文件名称 #mode 指定了打开文件后的处理方式 #buffering 指定了读写文件的缓存模式;0表示不缓存,1表示缓存,如果大于1则表示缓冲区的大小。默认值-1表示由系统管理缓存 #encoding 指定对文本进行编码和解码的方式,只适用于文本模式,可以使用Python支持的任何格式,如GBK、utf8、CP936等等
#上面的好像用不上(x f1 = open('file1.in', 'r') f2 = open('file2.out', 'w') #-----一些操作后 f1.close() f2.close()
输入:
最简
s = input() #input默认以字符串形式读入,并且一读就是一行
列表
lst = list(map(int, input().split(“ ”))) #数组的读入,以空格分割;若以逗号分割就在split括号里填个逗号 lst = list(map(eval, input().split())) #列表元素可以很杂,什么都行 #split()括号里不填默认是空格为分割
同时输入多个“数字”
a, b = map(int, input().split())
同时输入多个“东西”
a, b = map(eval, input().split()) #说成“东西”是因为随便是什么都行,不只是两个东西也行,道理和列表输入相似
输出:
最简
print(x) #所有类型都可以这样输出,末尾会自动换行 print(x + y + z) #这样可以输出多个东西 print(x, y, z) #同上 print('*' * 5) #连输出n个同样的变量 print("Hello, world!"), print('Hello, world!') #亲测都对 print(a, b, c, sep = ',') #非常方便的以逗号为间隔的输出,且末尾不会有多余逗号
保留n位小数的方法
print('%.3f'%(x)) #这是保留三位小数的情况,加"."号想保留几位就保留几位
2.变量
概念:1. 可迭代对象:
a) 集合数据类型,如list、tuple、dict、set、str等;
b) 生成器(generator),包括生成器和带yield的生成器函数(generator function)
整型:
浮点型:
字符串:
s.upper(),s.lower() #把s串全变成大写or小写 s.isdigit() #isdigit函数检测字符串中是否只包含数字字符。若全部是由数字字符组成的字符串,则返回True,否则返回False; isdigit函数没有参数
列表:
字典:
3.函数
·filter()
filter(function or None, iterable) #前者为判断函数、或者是None,后者为可迭代对象
filter()函数使用指定函数描述的规则对序列中的元素进行过滤,返回包含符合规则的元素的filter对象。
如果第一个参数是一个函数的话,则将第二个可迭代对象里的每一个元素作为函数的参数进行计算,把返回True的值筛选出来;如果第一个参数是None,则直接将第二个参数中为True的值筛选出来。
一个list里面,像0、False这样的就,就会被认定为False。
Python3 filter() 函数 | 菜鸟教程 (runoob.com)
·next()
next()必须接收一个可迭代对象参数,每次调用的时候,返回该可迭代对象的下一个元素。如果所有元素均已经返回过,则抛出StopIteration异常。
4.关键字
·yield
使用了yield的函数不再是函数,而变成了生成器“函数”。yield“类似于”return。
生成器函数的执行结果是一个生成器对象,而不是一个具体的值。生成器对象具有惰性求值的特点,每次执行到yield语句时,返回一个值,暂停执行,直到下次再显式索要时再恢复执行。
对于生成器对象,可以使用list()、tuple()将其转换为列表或元组,也可以使用for循环遍历其中的元素,或者使用内置函数next()显式索取下一个元素。
·None
None是一种特殊的对象,对象类型为NoneType。
对象理应有对象的属性,但是None很特殊,其值就是None。
None常常作为函数的返回值。
if a: print(1) #if a这句话用来判断a是不是None类型