1. Python中的关键字
在Python中,有37个关键字,这些关键字是Python语言保留的,不能够赋值给变量或作为函数名、类名等标识符使用。
1.1 查看关键字
Python中可以使用关键字模块查询所有关键字:
import keyword
print(keyword.kwlist)
执行以上代码会输出Python中的所有关键字:
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
1.2 关键字的使用
关键字除了不能当做标识符使用外,其余使用方法和普通变量名、函数名等没有区别。例如:
# 可以使用True和False作为条件判断
flag = True
if flag:
print('flag is True')
else:
print('flag is False')
以上代码中使用了True和False作为条件判断。
2. lambda函数
lambda函数也称为匿名函数,其本质是一种函数定义,但是没有函数名。lambda函数主要用于需要一个函数,但是这个函数非常简单,只使用一次,定义一个函数的过程过于繁琐,因此直接使用lambda函数来简化代码。
2.1 lambda函数定义
lambda函数的定义格式如下:
lambda arguments: expression
其中arguments是函数的参数列表,expression是函数的返回值表达式。
2.2 lambda函数的使用
lambda函数可以直接赋值给一个变量或作为参数传入其他函数中使用。例如:
# lambda函数赋值给变量
f = lambda x: x**2
print(f(3))
# lambda函数作为参数传入其他函数
l = [1, 2, 3, 4, 5]
result = list(map(lambda x: x**2, l))
print(result)
以上代码中,第一个例子定义了一个lambda函数并将其赋值给变量f,第二个例子将lambda函数作为参数传入map函数中使用。
3. Python指定参数
Python中函数定义中可以包含参数列表,调用函数时需要传入这些参数,但是有时候希望用关键字的方式来指定参数,在调用函数时指定某些参数的值,这种方式称为指定参数。
3.1 指定参数的语法
指定参数的语法为:
def function_name(fixed_arg, *args, **kwargs):
pass
其中,fixed_arg是必须的参数,*args表示可变数量的无名参数,**kwargs表示可变数量的关键字参数。
3.2 指定参数的使用
使用指定参数时,可以在调用函数时直接指定某个参数的值,例如:
def func(a, b, c):
print(a, b, c)
# 使用指定参数指定c的值
func(1, 2, c=3)
以上代码中,调用func函数时通过c=3指定了参数c的值。
4. Python中的装饰器
装饰器是Python中一种常用的语法,其本质是对函数进行包装,用于增加函数的功能,例如日志记录、性能统计、事务处理等。
4.1 装饰器的语法
以函数装饰器为例,其语法格式如下:
def decorator_func(original_func):
def wrapper_func(*args, **kwargs):
# 在这里添加装饰器的功能代码
return original_func(*args, **kwargs)
return wrapper_func
@decorator_func
def original_func():
# 原始函数代码
pass
其中,decorator_func是装饰器函数,original_func是需要包装的函数,@decorator_func表示将original_func传入decorator_func中装饰。
4.2 装饰器的使用
装饰器函数可以用于增加函数的功能,例如增加函数运行时间的装饰器:
import time
def runtime_decorator(original_func):
def wrapper_func(*args, **kwargs):
start_time = time.time()
result = original_func(*args, **kwargs)
end_time = time.time()
print(f'Function {original_func.__name__} run time is {end_time - start_time}')
return result
return wrapper_func
@runtime_decorator
def test_func(seconds):
time.sleep(seconds)
test_func(1)
test_func(2)
以上代码中,增加了一个计算运行时间的装饰器函数runtime_decorator,调用test_func时将其传入装饰器中。
5. Python中的字符串格式化
在Python中,字符串可以使用format方法进行格式化,用花括号{}表示替换的部分,花括号内部可以是一个数字、一个变量等。
5.1 字符串格式化的语法
字符串格式化语法为:
"{} {}".format(arg1, arg2)
其中arg1、arg2是要格式化的部分,可以是数字、变量、字符串等。
5.2 字符串格式化的使用
字符串格式化可以用于打印日志、字符串拼接等场景,例如:
# 使用多个参数传入参数
print("My name is {} and age is {}".format('Tom', 18))
# 使用指定名称的参数传入参数
print("{name} is a {job}".format(name='Tom', job='teacher'))
# 使用对象属性传入参数
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person('Tom', 18)
print("My name is {0.name} and age is {0.age}".format(person))
以上代码中,分别演示了使用多个参数、指定名称、对象属性等方式进行字符串格式化。