import csv def read_portfolio(filename): portfolio=[] with open(filename,'rt') as f: rows=csv.reader(f) headers=next(rows) for row in rows: holding=(row[0], int(row[1]), float(row[2])) portfolio.append(holding) return portfolio #以交互方式试验该函数: portfolio = read_portfolio('D:\data\portfolio.csv')自行设计简单的函数实现(具体功能不限),并完成以下实验:(1)默认参数的使用;(2)函数的返回值(包括无返回值、一个及多个返回值);(3)变量的作用域;(4)在函数内部使用全局变量;(4)在函数内部修改全局变量的值;(5)以可变数据类型(例如列表和字典)作为参数,在函数内部对其进行修改,并检验函数调用前后对应变量的值的变化情况;(6)参考“3.2 有关函数的更多信息.pdf”中的“重新赋值与修改(Reassignment vs Modifying)”部分内容,设计相关实验以检验在函数体内部修改值和重新分配变量名称之间的区别。
时间: 2024-02-04 20:02:02 浏览: 132
ramzallan.github.io:我的个人网站-ramzallan.me
1. 默认参数的使用:
```python
def greet(name, greeting='Hello'):
print(f'{greeting}, {name}!')
# 调用函数
greet('Alice') # 输出:Hello, Alice!
greet('Bob', 'Hi') # 输出:Hi, Bob!
```
2. 函数的返回值:
```python
def add(a, b):
return a + b
result = add(2, 3)
print(result) # 输出:5
```
3. 变量的作用域:
```python
def calculate():
x = 10
y = 20
result = x + y
print(f'Result inside function: {result}')
x = 5
y = 15
result = x + y
calculate()
print(f'Result outside function: {result}')
```
输出:
```
Result inside function: 30
Result outside function: 20
```
4. 在函数内部使用全局变量:
```python
x = 10
def print_x():
print(x)
print_x() # 输出:10
```
5. 在函数内部修改全局变量的值:
```python
x = 10
def modify_x():
global x
x = 20
print(x) # 输出:10
modify_x()
print(x) # 输出:20
```
6. 以可变数据类型作为参数,在函数内部对其进行修改:
```python
def modify_list(lst):
lst.append(4)
lst[1] = 3
my_list = [1, 2]
modify_list(my_list)
print(my_list) # 输出:[1, 3, 4]
```
7. 重新赋值与修改:
```python
# 重新赋值
a = 1
a = a + 1
print(a) # 输出:2
# 修改
lst = [1, 2]
lst[0] = 3
print(lst) # 输出:[3, 2]
```
阅读全文