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
21-30题
实例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
上一篇: binder 进程间的通信机制
下一篇: 去泰国旅游几月份最好 泰国旅游最佳时间