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 False
? ? for i in range(2, int(n**0.5) + 1):
? ?? ???if n % i == 0:
? ?? ?? ?? ?return False
? ? return True
def twin_primes():
? ? twins = []
? ? for num in range(100, 301):
? ?? ???if prime(num) and prime(num + 2):
? ?? ?? ?? ?twins.append((num, num + 2))
? ? return twins
twins = 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 + sum2
result = 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 n
? ? return 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) + 1
? ? sorted_fruits = sorted(fruit_count.items(), key=lambda x: x[1], reverse=True)
? ? return sorted_fruits
s = "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 1
? ? return 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 False
? ? for i in range(2, int(n**0.5) + 1):
? ?? ???if n % i == 0:
? ?? ?? ?? ?return False
? ? return True
def 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))
? ?? ?? ?? ?? ? break
? ? return results
decompositions = 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 == n
armstrong_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) * 100
? ? return accuracy
input_string = "Hello World"
target_string = "Hello World!"
accuracy = calculate_accuracy(input_string, target_string)
print(f"Accuracy: {accuracy}%")