用python完成 问题描述:编写函数,求出1^2-2^2+3^2-4^2+⋯+97^2-98^2+99^2-100^2。 函数以n为参数; 请分别用老师上课讲的4种方法实现,并完成封装。 n由用户从键盘输入:100。 验证结果:-5050。
时间: 2024-05-01 14:21:10 浏览: 49
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
以下是四种方法的实现,以及封装成函数的例子:
方法一:使用循环和条件语句
```python
def sum_of_squares_1(n):
result = 0
for i in range(1, n+1):
if i % 2 == 0:
result -= i**2
else:
result += i**2
return result
n = int(input("请输入n:"))
print(sum_of_squares_1(n))
```
方法二:使用循环和三目运算符
```python
def sum_of_squares_2(n):
result = 0
for i in range(1, n+1):
result += i**2 if i % 2 != 0 else -i**2
return result
n = int(input("请输入n:"))
print(sum_of_squares_2(n))
```
方法三:使用列表推导式和sum函数
```python
def sum_of_squares_3(n):
return sum([i**2 if i % 2 != 0 else -i**2 for i in range(1, n+1)])
n = int(input("请输入n:"))
print(sum_of_squares_3(n))
```
方法四:使用生成器表达式和sum函数
```python
def sum_of_squares_4(n):
return sum((i**2 if i % 2 != 0 else -i**2 for i in range(1, n+1)))
n = int(input("请输入n:"))
print(sum_of_squares_4(n))
```
这些函数的输出结果都是-5050,符合预期。封装成函数的例子:
```python
def sum_of_squares(n):
result = 0
for i in range(1, n+1):
result += i**2 if i % 2 != 0 else -i**2
return result
n = int(input("请输入n:"))
print(sum_of_squares(n))
```
阅读全文