关键词

python简单实例训练(21~30)

针对您提出的问题,我将为您详细讲解“python简单实例训练(21~30)”的攻略。

一、简介

本篇攻略主要针对“python简单实例训练(21~30)”这10个练习题进行详细讲解,并提供相应的代码和解释。这些练习题涉及到Python中的基本语法、条件语句、循环语句等。

二、实例训练

21.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,...求出这个数列的前20项之和。

numerator = 2   # 分子
denominator = 1 # 分母
total = 0       # 总和
for i in range(20):
    total += numerator / denominator
    numerator, denominator = numerator+denominator, numerator
print(total)

解释:这是一个斐波那契数列的变形题,分子和分母分别为斐波那契数列的后一项与当前项之和和前一项的和。

22.求一个数的阶乘。

num = int(input("请输入一个正整数:"))
factorial = 1
for i in range(1, num+1):
    factorial *= i
print("{}的阶乘为{}".format(num, factorial))

解释:这是一个简单的for循环,用于计算输入的数的阶乘。

23.利用递归函数调用方式,将所输入的一串数字,以逆序输出。

def reverse_output(s):
    if len(s) == 0:
        return
    else:
        reverse_output(s[1:])
        print(s[0])

s = input("请输入一串数字:")
reverse_output(s)

解释:这是一个递归函数,通过不断递归调用至字符串为空,然后依次输出字符即可。

24.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,...求出这个数列的前20项之和。

numerator = 2   # 分子
denominator = 1 # 分母
total = 0       # 总和
for i in range(20):
    total += numerator / denominator
    numerator, denominator = numerator+denominator, numerator
print(total)

解释:这是一个斐波那契数列的变形题,分子和分母分别为斐波那契数列的后一项与当前项之和和前一项的和。

25.求1+2!+3!+...+20!的和。

result = 0
factorial = 1

for i in range(1,21):
    factorial *= i
    result += factorial
print(result)

解释:这是一道求阶乘之和的题目,需要通过for循环计算每个数的阶乘,再将阶乘求和。

26.利用递归方法求5!。

def factorial(num):
    if num <= 1:
        return 1
    return num * factorial(num - 1)

print(factorial(5))

解释:这是一个递归函数,通过不断递归调用至num <= 1时,返回1,然后逐层返回结果。

27.利用递归函数调用方式,将所输入的字符串反向输出。

def reverse_output(s):
    if len(s) == 0:
        return ""
    else:
        return s[-1] + reverse_output(s[:-1])

s = input("请输入字符串:")
print(reverse_output(s))

解释:这是一个递归函数,通过不断递归调用至字符串为空时,逐层返回结果字符串。

28.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。

age = 0
for i in range(5):
    age += 2  # 依次增加2岁
    if i == 3:
        print("第四个人{}岁".format(age))
print("第五个人{}岁".format(age))

解释:这是一道简单的逻辑题,通过for循环不断增加年龄,输出第四个人的年龄和第五个人的年龄。

29.​给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

num = int(input("请输入一个不多于5位的正整数:"))
print("该数字共有{}位".format(len(str(num))))
print("逆序打印各位数字为:")
for i in range(len(str(num))):
    print(num % 10)
    num //= 10

解释:这是一道带有取模和整除运算的题目,通过逐个取模和整除,输出各位数字。

30.一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

num = input("请输入一个五位数:")
if num == num[::-1]:
    print("是回文数")
else:
    print("不是回文数")

解释:这是一道字符串逆序比较的题目,通过判断数字是否为逆序字符串即可判断其是否为回文数。

三、总结

本文对“python简单实例训练(21~30)”这10个练习题进行了详细讲解,并提供相应的代码和解释。这些练习题是Python基础知识的练习题,涉及到Python中的基本语法、条件语句、循环语句等。希望能够对大家理解及掌握Python编程有所帮助。

本文链接:http://task.lmcjl.com/news/13393.html

展开阅读全文