输入任意个数字,求他们的和,自行设计简单的函数实现(具体功能不限),并完成以下实验:(1)默认参数的使用;(2)函数的返回值(包括无返回值、一个及多个返回值);(3)变量的作用域;(4)在函数内部使用全局变量;(4)在函数内部修改全局变量的值;(5)以可变数据类型(例如列表和字典)作为参数,在函数内部对其进行修改,并检验函数调用前后对应变量的值的变化情况;(6)参考“3.2 有关函数的更多信息.pdf”中的“重新赋值与修改(Reassignment vs Modifying)”部分内容,设计相关实验以检验在函数体内部修改值和重新分配变量名称之间的区别。
时间: 2023-12-27 12:05:06 浏览: 63
下面是一个实现求任意个数字和的函数的示例代码:
```python
def sum_numbers(*numbers):
'''
求任意个数字的和
:param numbers: 任意个数字
:return: 和
'''
total = 0
for num in numbers:
total += num
return total
```
1. 默认参数的使用
该函数没有默认参数,因此默认参数的使用不适用于此。
2. 函数的返回值
该函数返回一个值,即输入数字的和。可以通过以下方式调用该函数并获取返回值:
```python
result = sum_numbers(1, 2, 3)
print(result) # 输出 6
```
3. 变量的作用域
该函数中定义的变量 `total` 的作用域仅限于该函数内部,即在函数外部无法访问到该变量。
4. 在函数内部使用全局变量
在函数内部使用全局变量可以使用 `global` 关键字,如下所示:
```python
count = 0 # 全局变量
def increment():
global count
count += 1
print(count)
increment() # 输出 1
increment() # 输出 2
```
在上述代码中,使用 `global` 关键字声明了 `count` 变量是全局变量,因此在函数内部可以修改该变量的值。
5. 在函数内部修改全局变量的值
在函数内部修改全局变量的值与上一节类似,需要使用 `global` 关键字,如下所示:
```python
count = 0 # 全局变量
def increment():
global count
count += 1
print(count)
increment() # 输出 1
increment() # 输出 2
```
在上述代码中,使用 `global` 关键字声明了 `count` 变量是全局变量,因此在函数内部可以修改该变量的值。
6. 以可变数据类型作为参数,在函数内部对其进行修改,并检验函数调用前后对应变量的值的变化情况
以列表作为参数的示例代码如下:
```python
def append_number(numbers, num):
'''
在列表末尾添加一个数字
:param numbers: 数字列表
:param num: 待添加的数字
:return: 无返回值
'''
numbers.append(num)
my_numbers = [1, 2, 3]
append_number(my_numbers, 4)
print(my_numbers) # 输出 [1, 2, 3, 4]
```
在上述代码中,首先定义了一个 `append_number` 函数,该函数接受一个数字列表 `numbers` 和一个待添加的数字 `num`,然后在函数内部使用 `append` 方法将 `num` 添加到 `numbers` 列表的末尾。最后,调用该函数并传入一个列表 `my_numbers` 和数字 `4`,并在函数调用后输出 `my_numbers` 的值,可以看到 `4` 已经被添加到了列表的末尾。
7. 重新赋值与修改
重新赋值和修改的区别在于,重新赋值会创建一个新的变量,并将其引用指向新的值,而修改则是直接修改原有变量的值。示例代码如下:
```python
def modify_list(numbers):
'''
将列表中的所有元素都加 1
:param numbers: 数字列表
:return: 无返回值
'''
for i in range(len(numbers)):
numbers[i] += 1
my_numbers = [1, 2, 3]
modify_list(my_numbers)
print(my_numbers) # 输出 [2, 3, 4]
def reassign_list(numbers):
'''
将列表重新赋值为 [4, 5, 6]
:param numbers: 数字列表
:return: 无返回值
'''
numbers = [4, 5, 6]
my_numbers = [1, 2, 3]
reassign_list(my_numbers)
print(my_numbers) # 输出 [1, 2, 3]
```
在上述代码中,首先定义了一个 `modify_list` 函数和一个 `reassign_list` 函数,分别用于修改列表中的所有元素和将列表重新赋值。在 `modify_list` 函数中,使用 `for` 循环遍历列表中的所有元素,并将每个元素加 1,即实现了修改列表中的所有元素的功能。在 `reassign_list` 函数中,将列表重新赋值为 `[4, 5, 6]`,但是由于重新赋值创建了一个新的变量,因此函数调用后 `my_numbers` 的值并未发生变化。
阅读全文