1、找出100~300中所有的挛生素数。挛生素数是指相差2的素数对,如了和5、5和7、11和13等。函数prime的功能是判断n是否力素数,用True表示是素数,用False表示非素数。
2、求(1+2+3+.+9+10) + (61+62+.
+69+70)的和(用自定义函数实现)。
3、用递归函数fibo求斐波拉且数列的第n项。程定中输出斐波拉且数列的前20项,要求每行输出5个数据,每个数据输出宽度为8并在宽度内右对齐。
输出结果如下:
1 1 2 3 5
8 13 21 34 35
89 144 233 377 610
987 1597 2584 4181 6765
4、已知宇符串s中保存了一组以空格分隔的水果名,凋用函数fruitsort返回按数量降序排列的水果名及水果数量。函数中先将水果名称从字符串s中拆分出来存入列表fruits,然后統汁各类水果的数量存入字典d,并按数量降序排列后返回。
5、用递归法求阶乘,程序要求输出0~9十个数的阶
乘,按一行两个结果的形式输出,效果如下所示。
0!=1 1!=1
2!=2 3!=6
4!=24 5!=120
6!=720 7!=5040
81=40320 9!=362880
6、把4到20中所有的偶数分解成两个素数的和。例
如:6-3+3,20-3+17,20=13+7等。
7、按升序輸出100~999的水仙花数。
8、小明做打字测试,请编写程序计算小明输入字符串的准确率。
1、找出100~300中所有的挛生素数。挛生素数是指相差2的素数对,如了和5、5和7、11和13等。函数prime的功能是判断n是否力素数,用True表示是素数,用False表示非素数。
def prime(n):if n < 2:return Falsefor i in range(2, int(n**0.5) + 1):if n % i == 0:return Falsereturn Truedef twin_primes():twins = []for num in range(100, 301):if prime(num) and prime(num + 2):twins.append((num, num + 2))return twinstwins = twin_primes()
for twin in twins:print(twin)
运行结果如下:
2、求(1+2+3+.+9+10) + (61+62+.
+69+70)的和(用自定义函数实现)。
def calculate_sum():sum1 = sum(range(1, 11))sum2 = sum(range(61, 71))return sum1 + sum2result = calculate_sum()
print(result)
3、用递归函数fibo求斐波拉且数列的第n项。程定中输出斐波拉且数列的前20项,要求每行输出5个数据,每个数据输出宽度为8并在宽度内右对齐。
输出结果如下:
1 1 2 3 5
8 13 21 34 35
89 144 233 377 610
987 1597 2584 4181 6765
def fibo(n):if n <= 1:return nreturn fibo(n - 1) + fibo(n - 2)for i in range(20):if i % 5 == 0 and i != 0:print()print(f"{fibo(i):>8}", end=" ")
4、已知宇符串s中保存了一组以空格分隔的水果名,凋用函数fruitsort返回按数量降序排列的水果名及水果数量。函数中先将水果名称从字符串s中拆分出来存入列表fruits,然后統汁各类水果的数量存入字典d,并按数量降序排列后返回。
def fruitsort(s):fruits = s.split()fruit_count = {}for fruit in fruits:fruit_count[fruit] = fruit_count.get(fruit, 0) + 1sorted_fruits = sorted(fruit_count.items(), key=lambda x: x[1], reverse=True)return sorted_fruitss = "apple orange banana apple orange apple"
result = fruitsort(s)
for fruit, count in result:print(f"{fruit}: {count}")
5、用递归法求阶乘,程序要求输出0~9十个数的阶
乘,按一行两个结果的形式输出,效果如下所示。
0!=1 1!=1
2!=2 3!=6
4!=24 5!=120
6!=720 7!=5040
81=40320 9!=362880
def factorial(n):if n == 0:return 1return n * factorial(n - 1)for i in range(10):if i % 2 == 0 and i != 0:print()print(f"{i}! = {factorial(i)}", end=" ")
6、把4到20中所有的偶数分解成两个素数的和。例
如:6-3+3,20-3+17,20=13+7等。
def is_prime(n):if n < 2:return Falsefor i in range(2, int(n**0.5) + 1):if n % i == 0:return Falsereturn Truedef decompose_even():results = []for num in range(4, 21, 2):for i in range(2, num // 2 + 1):if is_prime(i) and is_prime(num - i):results.append((num, i, num - i))breakreturn resultsdecompositions = decompose_even()
for decomposition in decompositions:print(f"{decomposition[0]} = {decomposition[1]} + {decomposition[2]}")
7、按升序輸出100~999的水仙花数。
def is_armstrong(n):digits = [int(digit) for digit in str(n)]num_digits = len(digits)armstrong_sum = sum([digit**num_digits for digit in digits])return armstrong_sum == narmstrong_numbers = []
for num in range(100, 1000):if is_armstrong(num):armstrong_numbers.append(num)armstrong_numbers.sort()
for num in armstrong_numbers:print(num)
8、小明做打字测试,请编写程序计算小明输入字符串的准确率。
def calculate_accuracy(input_string, target_string):correct_count = sum([1 for c1, c2 in zip(input_string, target_string) if c1 == c2])accuracy = correct_count / len(target_string) * 100return accuracyinput_string = "Hello World"
target_string = "Hello World!"
accuracy = calculate_accuracy(input_string, target_string)
print(f"Accuracy: {accuracy}%")