键盘输入:
number=int ( input (''the number is:))
输出的格式:
print ({:5d}.format(number)) #五位
print ({:7.2f}.format(number)) #七位、两位小数 print( "--" * 20 ) #简易循环元组与拆装
可以用逗号创建元组,在赋值语句左边做拆装
data ='a','b','c'
name1, name2, name3=data
字符串与数字之间可以手动转换
str(float)
float(string)
数据结构:
列表:
允许包含不同类型的数据
正向索引、负向索引、切片(计算切片范围时,正向为0~n,负向为-n~0)List [a:b:c] a,b为切片的起点终点,c为步长
判断元素是否存在 可以直接 3 in List 即可返回 True/False
range:
生成一个左闭右开的区间;并不是列表,但如果当参数被放入list()中,进行类型转换,可以变成列表
List 的接口,append(ele),extend(listb),sort(),remove(ele),insert(rank,ele),del L[rank]
通过函数创建列表:a=list(map(lambda x:x**2, range(10))) 等价于 a=[x**2 for x in range(10)]
map函数有两个参数,一个是函数,一个是可迭代的对象,比如range或者列表
如果想在遍历时获取索引值:可以用enumerate()
for i , j in enumerate(List)
print( i , j )
如果想同时遍历两个列表,可以用zip()
for x, y in zip (list1, list2)
元组:不可变,不可添加、删除或编辑任何值
可以拆封,x,y=divmod(7,5)
要创建一个只有一个元素的元组,需要在该元素后面加逗号,如:(a,)
集合:不重复无序集合
集合之间可以进行相减、或、与运算
字典:无序、键值不重复&&键值为不可变类型(不可为列表)
格式:data={1:"data1", 2:"data2"}
查找:data[key]
新建:data[3]='data3'
删除:del data[key]
dict()可以创建字典
遍历: for x,y in a.items()
如果不存在,则添加元素:a.setdefault(key,default)
查找元素:a.get(m,n=None)查找键值为m的值,如果没有,返回n
defaultdict:创建类似于dict的对象,key可以自行指定,value是括号里的类型,并且如果key查找不到,返回默认的value
a=defaultdict(int)
字符串:
s.split() 将字符串切割,split函数允许有一个参数,作为切割的依据,默认按照‘ ’切割,存入列表。
s.join()参数为列表,将用s连接列表中的元素。
字符串判断(大小写、数字、字母),字符串变换
字符串剥离,s.strip() s.lstrip() s.rstrip()
查找:s.startswith('a') s.endswith('b') s.find('a')(返回找到的位置)
字符串添加元素,字符串没有append函数,可以用s+=x 的模式在尾部追加元素,不过效率不如‘’.join。
函数:
高阶函数,使用一个函数作为参数或者返回值的函数,任何函数都可以成为高阶函数。
map()是一个非常有用的高阶函数,第一个参数是一个函数,第二个参数是一个可迭代的对象。然后对迭代器里每一个元素应用该函数,返回一个处理后的对象。
文件读取、写入:
文件打开时有三种模式,‘r’ 'w'(写入模式,如果原来文档名存在,将会删除,重新写入内容) 'a'(追加模式)
读取有三种模式:f.read() 可一次性读取全文,如果连续调用read(),第二次会返回空字符串,因为之前已经读完了。read(size)可以有一个名为size的参数,用来指定读取字符串的长度。
f.readline()逐行读取,如果想用deadline函数读取整篇文档,可以用 for x in file: print(x)
f.readlines() 会将不同行的结果返回到一个列表中。
注意,读取时会将‘\n’等符号读出来,但是print时会自动对应成换行。
打开文件后应关闭文件,防止资源占用。
可使用with语句,来自动关闭文档如: wih open("file1") as f:
异常处理:
try:
语句1
except XXXERROR:
print(ERROR)
print(‘Done’)
针对try字句中执行遇到的错误,如果恰好在except中可以找到,则可做规定的动作。并不打断程序执行。如果except后面是空的,而非跟着某个具体的错误,则默认包含一切错误。
finally 子句:不管有没有发生异常,finally
子句 在程序离开 try
后都一定会被执行。当 try
语句中发生了未被 except
捕获的异常(或者它发生在 except
或 else
子句中),在 finally
子句执行完后它会被重新抛出。
在真实场景的应用程序中,finally
子句用于释放外部资源(文件或网络连接之类的),无论它们的使用过程中是否出错。
class
装饰器:@property 可以把某个函数变成只读的属性,并且自动生成一个@XXX.setter的装饰器,用来写入属性。当然,新生成的这个装饰器可用可不用。