欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python经典入门100题 (21-30题)

程序员文章站 2022-04-21 11:53:37
Python入门练手,有这100题就够了!...

题目地址: https://blog.csdn.net/weixin_41084236/article/details/81564963
转载请标注: https://blog.csdn.net/qq_43582207
代码编写过程中是自己发挥的,只代表其中一种方法,仅供学习参考
运行版本:Python3.7
作者:My apologize

实例021:猴子偷桃

# 实例021:猴子偷桃
# 题目 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,
# 又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
# 第i天剩余桃子数:ni,如题满足:ni-1 = 2*(ni + 1)
#n10 == 1,求n1
n = 1
for _ in range(9):
    n = 2*(n+1)
print(n)

实例022:比赛对手

# 实例022:比赛对手
# 题目 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
la = ['y', 'z']# 能和a比赛的乙队人
lb = ['x', 'y', 'z']# 能和b比赛的乙队人
lc = ['y']# 能和c比赛的乙队人
a = list(set(la) - set(lc))
b = list(set(lb) - set(la))
c = list(set(lb) - set(a) - set(b))
print('a:{}, b:{}, c:{}'.format(a[0], b[0], c[0]))

实例023:画菱形

# 实例023:画菱形
# 题目 打印出如下图案(菱形):
max = 5# 最大宽度
# 法一:
for i in range(1,max+1,2):
    print(' '*((max-i)//2),end='')
    print('*'*i)
for j in range(1,max):
    print(' '*j,end='')
    print('*'*(max-2*j))
    if max-2*j == 1:
        break
# 法二:用字符串方法.center()
for i in range(1, max+1, 2):
    s = '*'*i
    print(s.center(max))
i = max-2
while i >= 1:
    s = '*'*i
    print(s.center(max))
    i -= 2

实例024:斐波那契数列II

# 实例024:斐波那契数列II
# 题目 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
a = 2.0
b = 1.0
sum = 0
for i in range(20):
    sum += a/b
    a, b = a+b, a
print(sum)

实例025: 阶乘求和

# 实例025: 阶乘求和
# 题目 求1+2!+3!+…+20!的和。
def jiechen(n):# 计算n!的函数
    s = 1
    for i in range(1, n+1):
        s *= i
    return s

sum = 0
for i in range(1, 21):
    sum += jiechen(i)
print(sum)

实例026:递归求阶乘

# 实例026:递归求阶乘
# 题目 利用递归方法求5!。

def factorial(n):
    return n*factorial(n-1) if n>1 else 1# n= 1 返回1
print(factorial(5))

实例027:递归输出

# 实例027:递归输出
# 题目 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

def factorial(s):
    if len(s) != 1:
        factorial(s[1:])
    print(s[0], end=' ')
factorial(input())
import selenium

实例028:递归求等差数列

# 实例028:递归求等差数列
# 题目 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,
# 又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

def func(n):
    if n == 1:
        return 10
    return func(n-1) + 2
print(func(5))

实例029:反向输出

# 实例029:反向输出
# 题目 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
x = input()
print('x是{}位数'.format(len(x)))
for i in range(len(x)):
    print(x[len(x)-1-i], end='')

实例030:回文数

# 实例030:回文数
# 题目 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
n = input()
if n[0] == n[-1] and n[1] == n[-2]:
    print('{}是回文数'.format(n))
else:
    print('{}不是回文数'.format(n))

本文地址:https://blog.csdn.net/qq_43582207/article/details/107509222