Python列表题怎么做?

(1)用一个列表x存放1~100的数据。要求:1修改该列表,给每个元素增加10,输出修改后的列表x。②输出x的均值。
(2)输出斐波那契数列第10项。假设斐波那契数列前两项分别是0和1,第三项开始每一项都是前两项的和。
(3)用一个列表x存放100个自然数:1~100。程序运行时输入一个整数,用二分法查找该数。找到了,输出其索引;没找到,输出“无此数”。
(4)一个数如果恰好等于它的真因子之和,这个数就称为完数。例如,6的真因子
为1、2、3,而6=1+2+3,因此6就是完数。编程找出1000以内的所有完数,按格式输出,以6为例,输出格式为6:[1,2,3]。

以下是针对给定问题的Python解决方案:
(1) 处理列表x,增加10并计算均值:
x = list(range(1, 101))
# 修改列表,给每个元素增加10
x = [num + 10 for num in x]
print("修改后的列表x:", x)
# 计算x的均值
mean_x = sum(x) / len(x)
print("x的均值:", mean_x)
(2) 输出斐波那契数列第10项:
def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacci(n - 1) + fibonacci(n - 2)
print("斐波那契数列第10项:", fibonacci(9))
(3) 二分查找:
def binary_search(arr, target):
low, high = 0, len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
x = list(range(1, 101))
num = int(input("请输入一个整数:"))
index = binary_search(x, num)
if index != -1:
print("索引:", index)
else:
print("无此数")
(4) 找出1000以内的所有完数:
def get_factors(n):
factors = []
for i in range(1, n // 2 + 1):
if n % i == 0:
factors.append(i)
return factors
perfect_numbers = []
for i in range(2, 1001):
factors = get_factors(i)
if sum(factors) == i:
perfect_numbers.append((i, factors))
for num, factors in perfect_numbers:
print(f"{num}: {factors}")
温馨提示:答案为网友推荐,仅供参考
相似回答