函数的定义和创建
-
函数的定义
- 函数指将一组语句的集合通过一个变量名封装起来,调用这个函数变量名,就可以执行函数
-
函数的特性
- 减少重复逻辑代码的编写
- 将程序中的逻辑可以进行扩展
- 维护项目程序的代码更简单
-
函数的创建
# 函数 def say_hello(): print("Hello World") say_hello()Hello World
函数的参数
-
参数
-
形参 # 形参 def sum1(a, b): return a + b
-
实参 # 实参 print(sum1(5, 6))
11 -
默认参数
-
默认参数需要放在参数的最后位置 # 默认参数 def oblong_area(a, b=3): return a * b
print(oblong_area(2))6
-
-
关键参数
-
一般函数传参要按照顺序,但是可以通过关键参数(指定参数名字)可以不按照顺序
-
关键参数必须放在位置参数后面 # 关键参数 def oblong_volume(x, y, z): return x * y * z
print(oblong_volume(2, z=4, y=3))24
-
-
非固定参数 # 非固定参数 def get_info(name, age, *args): print(name, age, args)
get_info("Steven Wong", 29, "男")def get_info(name, age, **kwargs): print(name, age, kwargs) get_info("Steven Wong", 29, sex="男")Steven Wong 29 ('男',) Steven Wong 29 {'sex': '男'}
-
全局变量和局部变量
-
全局变量
-
全局变量是在函数外部定义的变量,它们在程序的整个生命周期内都是可用的 # 全局变量 global_var = "全局变量"
def print_global_var(): print(global_var) print_global_var()全局变量
-
-
局部变量
-
局部变量是在函数内部定义的变量,它们只在函数被调用时存在,并在函数执行完毕后被销毁
-
局部变量只在它们被定义的作用域内有效,即只能在函数内部访问和修改 # 局部变量 def print_local_var(): local_var = "局部变量" print(local_var)
print_local_var()局部变量
-
-
注意
-
在函数内部修改或者使用全局变量时应该声明 # 修改全局变量 def change_global_var(): global global_var global_var = "修改全局变量" print(global_var)
change_global_var() print(global_var)修改全局变量 修改全局变量
-
内置函数
-
内置函数
-
abs()
返回数字的绝对值
-
all()
如果可迭代对象中的所有元素都为True(或可迭代对象为空),则返回True
-
any()
如果可迭代对象中的任何元素为True,则返回True
-
chr()
返回整数对应的ASCII字符(全称为美国信息交换标准代码,128个字符,在处理文件I/O或网络通信时需要使用,实际上更通用的Unicode字符集)
-
dict()
创建一个字典
-
dir()
返回对象的属性列表。如果未指定对象,则返回当前范围内的变量、方法和定义的类型列表。
-
help()
提供有关模块、关键字、属性等的帮助信息。
-
id()
返回对象的“身份”(一个整数,通常是其在内存中的地址)。
-
input()
从用户获取输入。
-
int()
将数字或字符串转换为整数。
-
len()
返回对象(如字符串、列表、元组等)的长度或项目数。
-
list()
将可迭代对象转换为列表。
-
locals()
返回当前局部符号表的字典。如果在一个函数内部调用它,返回的字典将包括函数的局部变量名及其值。
-
map()
将一个函数应用于一个或多个可迭代对象的项,并返回一个新的迭代器,其中包含函数的结果。
-
max()
返回给定参数中的最大值。如果有多个参数,则返回最大的那个;如果只有一个可迭代对象,则返回该对象中的最大值。
-
min()
与max()相反,返回给定参数中的最小值。
-
open()
用于打开一个文件,返回一个文件对象(通常是一个
_io.TextIOWrapper实例),该对象可以用于读取或写入文件。 -
ord()
返回单个字符(Unicode码点)的整数值。
-
print()
将指定对象打印到标准输出(通常是屏幕)。
-
range()
返回一个不可变的序列类型,通常用于在循环中生成一个数字序列。
-
round()
将浮点数四舍五入到指定的小数位数。
-
str()
将对象转换为字符串形式。
-
sum()
返回可迭代对象(如列表、元组或集合)中所有项的总和。
-
type()
返回对象的类型。
-
zip()
将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。
-
enumerate()
将可迭代的对象(列表、元组、集合)组合为一个缩影序列,同时可以输出数据和下标,for循环
# 内置函数
a = -1
arr = [1, 2, 3]
print("hello world") # 将指定对象打印到标准输出(通常是屏幕)
print(abs(a)) # 返回数字的绝对值
print(all(arr)) # 如果可迭代对象中的所有元素都为True(或可迭代对象为空),则返回True
print(any(arr)) # 如果可迭代对象中的任何元素为True,则返回True
print(max(arr)) # 返回给定参数中的最大值
print(min(arr)) # 返回给定参数中的最小值
print(chr(65)) # 返回整数对应的ASCII字符
print(ord('a')) # 返回单个字符(Unicode码点)的整数值
print(dict(a=1, b=2, c=3)) # 创建一个字典
print(dict([('a', 1), ('b', 2), ('c', 3)]))
print(dir()) # 返回对象的属性列表。如果未指定对象,则返回当前范围内的变量、方法和定义的类型列表
print(dir(str))
help(print) # 提供有关模块、关键字、属性等的帮助信息
print(id(a)) # 返回对象的“身份”(一个整数,通常是其在内存中的地址)
print(str(123)) # 将对象转换为字符串形式
print(int("123")) # 将数字或字符串转换为整数
print(len("123")) # 返回对象(如字符串、列表、元组等)的长度或项目数
print(list((1, 2, 3))) # 将可迭代对象转换为列表
print(locals()) # 返回当前局部符号表的字典。如果在一个函数内部调用它,返回的字典将包括函数的局部变量名及其值
print(list(map(lambda x: x ** 2, arr))) # 将一个函数应用于一个或多个可迭代对象的项,并返回一个新的迭代器,其中包含函数的结果
print(list(range(5))) # 返回一个不可变的序列类型,通常用于在循环中生成一个数字序列
print(round(3.1415926, 2)) # 将浮点数四舍五入到指定的小数位数
print(sum([1, 2, 3, 4, 5])) # 返回可迭代对象(如列表、元组或集合)中所有项的总和
print(type(1)) # 返回对象的类型
print(list(zip(["a", "b", "c"], [1, 2, 3]))) # 将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象
# 将可迭代的对象(列表、元组、集合)组合为一个缩影序列,同时可以输出数据和下标,for循环
for index, item in enumerate(["a", "b", "c"]):
print(index, item)
# 用于打开一个文件,返回一个文件对象(通常是一个_io.TextIOWrapper实例),该对象可以用于读取或写入文件
with open('test.txt', 'w') as f:
f.write("hello world")
# 从用户获取输入
user_input = input("请输入:")
print(user_input)
hello world
1
True
True
3
1
A
97
{'a': 1, 'b': 2, 'c': 3}
{'a': 1, 'b': 2, 'c': 3}
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'arr', 'change_global_var', 'get_info', 'global_var', 'oblong_area', 'oblong_volume', 'print_global_var', 'print_local_var', 'say_hello', 'sum1']
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
Help on built-in function print in module builtins:
print(*args, sep=' ', end='\n', file=None, flush=False)
Prints the values to a stream, or to sys.stdout by default.
sep
string inserted between values, default a space.
end
string appended after the last value, default a newline.
file
a file-like object (stream); defaults to the current sys.stdout.
flush
whether to forcibly flush the stream.
140710075548728
123
123
3
[1, 2, 3]
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x00000220496B8D70>, '__spec__': None, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:\\Projects\\pyCharm\\demo1\\test4.py', '__cached__': None, 'say_hello': <function say_hello at 0x00000220498BB5E0>, 'sum1': <function sum1 at 0x0000022049C66090>, 'oblong_area': <function oblong_area at 0x000002206ACBE090>, 'oblong_volume': <function oblong_volume at 0x000002206ACBD170>, 'get_info': <function get_info at 0x000002206AE28250>, 'global_var': '修改全局变量', 'print_global_var': <function print_global_var at 0x000002206AD53AB0>, 'print_local_var': <function print_local_var at 0x000002206AE28300>, 'change_global_var': <function change_global_var at 0x000002206AE283B0>, 'a': -1, 'arr': [1, 2, 3]}
[1, 4, 9]
[0, 1, 2, 3, 4]
3.14
15
<class 'int'>
[('a', 1), ('b', 2), ('c', 3)]
0 a
1 b
2 c
请输入: