本篇为新生实践课所留作业的学习笔记,记录我尚不熟悉的Python知识
1.保留字即关键字,是 Python 语言中内部使用的单词,代表一定语义。例如:and、class、if、else 等。保留字不能作为标识符,用在变量名、常量名、类名等地方。 Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:
1 import keyword
2 print(keyword.kwlist)
2.print如果要带入多个参数,则需要用()
包裹代入的多个参数,参数与参数之间用逗号隔开,参数的顺序应该对应格式字符串中的顺序
%s: 作为字符串
%d: 作为有符号十进制整数
%u: 作为无符号十进制整数
%o: 作为无符号八进制整数
%x: 作为无符号十六进制整数,a~f采用小写形式
%X: 作为无符号十六进制整数,A~F采用大写形式
%f: 作为浮点数
%e,%E: 作为浮点数,使用科学计数法
%g,%G: 作为浮点数,使用最低有效数位
3.字符串处理
(1)len函数用法:len(str),返回整型值
(2)去除指定字符(strip特殊用法)(区分大小写)
1 hello_world = ' **The world ** is big!* '
2 char_hello_world = hello_world.strip('TH *')
3 print(char_hello_world)
4 #输出he world ** is big!
5 #连同空格消去
(3)字符串替换
source_string = 'The world is big'
print(source_string.replace('big','small'))
#输出The world is small
以上,注意使用函数后原字符串不会发生变化
4.列表
(1)在列表指定位置添加元素
1 guests=['Zhang san','Li si','Wang wu','Zhao liu']
2 guests.insert(1,'Hu qi')
(2)删除列表元素
——del list[index]
——list.remove('str')
——list.pop(index)(无索引时默认删除末尾)
(3)列表排序
使用sort会直接改变列表元素顺序,以下写法是错误的:
i=list.sort()
print(list.sort)
#结果均为None
5.字典
形式:dict[key]=value,其中key和value可以为数字、字符串、列表甚至字典
创建:dict={'key_name':value_num……}
遍历字典:
遍历key和value(.items()):
1 menu={'fish':'40','pork':'30','potato':'20','lamb':'50'}
2 for key,value in menu.items():
3 print('\nkey:'+key)
4 print('value:'+value)
遍历key(.keys())
遍历value(.values())
后两者与前者类似,不再粘贴代码。
6.函数
(1)参数
python中函数的参数可以是给定的,即默认参数,如:
1 def plus(a,b=2):
2 c=a+b
3 return(c)
4 plus(1)
5 #输出3
python传递的参数可以是元组和字典:
*args
表示的是可变参数,*args
接收的是一个元组;**kw
表示的是关键字参数,**kw
接收的是一个字典。
(2)返回值
python中函数的返回值可以为函数
1 # 定义求和函数,返回的并不是求和结果,而是计算求和的函数
2 def lazy_plus(*args):
3 def plus():
4 s = 0
5 for n in args:
6 s = s + n
7 return s
8 return plus
9 # 调用lazy_plus()时,返回的并不是求和结果,而是求和函数
在上述例子中,我们在函数lazy_plus
中又定义了函数plus
,而且内部函数plus
是可以引用外部函数lazy_plus
的参数和局部变量的。当函数lazy_plus
返回函数plus
时,相关参数和变量也将会保存在返回的函数中,这种方式也称为“闭包”(Closure)。
7.for循环
1 for i in range(num): #num是整数,此时i是下标,从0开始
2 for i in nums: #nums是列表,此时i是nums中的每一个元素
8.迭代器(看不懂,粘贴至此)
可直接作用于for
循环的数据类型如list
、tuple
、dict
等统称为可迭代对象:Iterable
。使用isinstance()
可以判断一个对象是否是可迭代对象。例如:
1 from collections import Iterable
2 result = isinstance([],Iterable)
3 print(result)
4 result = isinstance((),Iterable)
5 print(result)
6 result = isinstance('python',Iterable)
7 print(result)
8 result = isinstance(213,Iterable)
9 print(result)
10 '''
11 结果为
12 True
13 True
14 True
15 False
16 '''
所有的Iterable
都可以通过iter()
函数转化为Iterator
。next函数用于遍历迭代器
9.常用数学库函数
abs()
:返回数值的绝对值,例如:
>>>(-4)
4
divmod()
:返回两个数值的商和余数,例如:
>>>(7,2)
(3,1)
max()
:返回元素中的最大值,例如:
>>>(2,6,1,7)
7
min()
:返回元素中的最小值,例如:
>>>(2,6,1,7)
1
sum()
:返回传入元素之和,例如:
>>>((1,2,3,4))
10
>>>([1,2,3,4])
10
>>>((1,2,3,4),-10)
0
10.序列操作
all()
:判断可迭代对象的每个元素是否都为True
值,例如:
>>>([1,2,3])# 列表中每个元素逻辑值均为True,返回True
True
>>>([0,1,2])# 列表中0的逻辑值为False,返回False
False
>>>(())# 空元组
True
any()
:判断可迭代对象的元素是否有为True
值的元素,例如:
>>>([0,1,2])# 列表元素有一个为True,则返回True
True
>>>([0,0])# 列表元素全部为False,则返回False
False
>>>([])# 空列表
False
sorted()
:对可迭代对象进行排序,返回一个新的列表。例如:
>>>=['a','b','d','c','B','A']
>>> a
['a','b','d','c','B','A']
>>>(a)# 默认按字符ascii码排序
['A','B','a','b','c','d']
11.python可像C语言一样保留小数位数
print("%.2f"%a)
12.条件运算
x if XXXX else y
如果满足条件,值为x,否则为y
13.模板引用
Python 中要用关键字import
来引入某个模块。比如要引用模块math
,就要在文件的开头用import math
来引入。在调用math
模块中的函数时,引用格式为:模块名.函数名
有些时候我们只需要用到模块中的某个函数,这时不需要导入整个模块,只需要导入该函数即可。语句格式如下:from模块名import函数名1,函数名2....引用时不需要前缀,但如果两次引用的函数名相同,后一个会覆盖前一个
如果想一次性引入模块math
中所有的函数,可以通过如下方式导入:fromimport*
14.格式化输出
print会自动换行,如不需要换行则在结尾加end=""
print("Hello",end="")
print("!")
#输出Hello!
使用 f-string 进行格式化输出
f-string
是从 Python 3.6 才开始使用的一种格式化输出的办法,相比前面两种格式化输出,使用f-string
更易读,更简洁,不易出错,而且速度更快!使用的时候通过f
关键字引出,然后要输出的变量直接在输出内容中用{}
引出。然后其他使用和前面的format
方式类似。
1 a = 5
2 dt = {'a': 123, 'b': 666}
3 print(f"{a} {dt}")
4 #以右对齐方式输出占10位空间大小的整数,并且用0补齐输出
5 print(f"{a:>010}")
6 b = 3.1416
7 #以保留3位小数的方式输出小数,注意是四舍五入的方式
8 print(f"{b:.3f}")
format(num,'.2f')也可保留小数,可用于函数返回值
至此基本结束,预祝考试顺利