wdcp 修改默认网站,中国建筑网官网首页,抖音带运营团队有用吗,跟我学做纸艺花网站Python 练习实例21 题目#xff1a;猴子吃桃问题#xff1a;猴子第一天摘下若干个桃子#xff0c;当即吃了一半#xff0c;还不瘾#xff0c;又多吃了一个第二天早上又将剩下的桃子吃掉一半#xff0c;又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天…Python 练习实例21 题目猴子吃桃问题猴子第一天摘下若干个桃子当即吃了一半还不瘾又多吃了一个第二天早上又将剩下的桃子吃掉一半又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时见只剩下一个桃子了。求第一天共摘了多少。 程序分析采取逆向思维的方法从后往前推断。 daypeach []
daypeach.append(1)
curpeaches lambda x: (x 1) * 2
for i in range(0, 9):daypeach.append(curpeaches(daypeach[i]))
print(第一天共摘了%d个 % daypeach[9])
def taozi(n):if n 1:return 1else:return (taozi(n-1)1)*2
print(taozi(10)) #递归思路Python 练习实例22 题目两个乒乓球队进行比赛各出三人。甲队为a,b,c三人乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比c说他不和x,z比请编程序找出三队赛手的名单。 for i in range(ord(x), ord(z) 1):for j in range(ord(x), ord(z) 1):if i ! j:for k in range(ord(x), ord(z) 1):if (i ! k) and (j ! k):if (i ! ord(x)) and (k ! ord(x)) and (k ! ord(z)):print(order is a -- %s\t b -- %s\tc--%s % (chr(i), chr(j), chr(k)))
for a in [x, y, z]:for b in [x, y, z]:for c in [x, y, z]:if(a ! b) and (b ! c) and (c ! a) and (a ! x) and (c ! x) and (c ! z):print(a和%s比赛b和%s比赛c和%s比赛 % (a, b, c))
Python 练习实例23 题目打印出如下图案菱形: 程序分析先把图形分成两部分来看待前四行一个规律后三行一个规律利用双重for循环第一层控制行第二层控制列。 for i in range(4):for j in range(2 - i 1):stdout.write( )for k in range(2 * i 1):stdout.write(*)print()for i in range(3):for j in range(i 1):stdout.write( )for k in range(4 - 2 * i 1):stdout.write(*)print()
for i in range(1, 5):print( * (4 - i), end)for j in range(1, 2 * i):print(*, end)print()
for i in range(3, 0, -1):print( * (4 - i), end)for j in range(1, 2 * i):print(*, end)print()
Python 练习实例24 题目有一分数序列2/13/25/38/513/821/13...求出这个数列的前20项之和。 程序分析请抓住分子与分母的变化规律。 a 2.0
b 1.0
s 0
for n in range(1,21):s a / bt aa a bb t
print (s)
from functools import reducea 2.0
b 1.0
l []
l.append(a / b)
for n in range(1, 20):b, a a, a bl.append(a / b)
print(reduce(lambda x, y: x y, l)) Python 练习实例25 题目求12!3!...20!的和。 程序分析此程序只是把累加变成了累乘。 n 0
s 0
t 1
for n in range(1, 21):t * ns t
print(1! 2! 3! ... 20! %d % s)
n int(input(Enter a number:))
s 0def cal(n):pro 1for i in range(1, n1):pro pro*ireturn profor i in range(1, n1):if i ! n:print(%d! % i, end)else:print(%d! % i, end)s s cal(i)
print(s)Python 练习实例26 题目利用递归方法求5!。 程序分析递归公式fnfn_1*4! def Factorial(n):if n 1:fn 1else:fn n * Factorial(n - 1)return fn
def fact(j):sum 0if j 0:sum 1else:sum j * fact(j - 1)return sumprint(fact(5))
Python 练习实例27 题目利用递归函数调用方式将所输入的5个字符以相反顺序打印出来。 def output(s, l):if l 0:returnprint(s[l - 1])output(s, l - 1)s input(Input a string:)
l len(s)
output(s, l)
def desc_output(s):if len(s) 0:print(s[-1]) # python 负数下标desc_output(s[0:-1])s input(Input a string:)
desc_output(s)
Python 练习实例28 题目有5个人坐在一起问第五个人多少岁他说比第4个人大2岁。问第4个人岁数他说比第3个人大2岁。问第三个人又说比第2人大两岁。问第2个人说比第一个人大两岁。最后问第一个人他说是10岁。请问第五个人多大 程序分析利用递归的方法递归分为回推和递推两个阶段。要想知道第五个人岁数需知道第四人的岁数依次类推推到第一人10岁再往回推。 def age(n):if n 1: c 10else: c age(n - 1) 2return c
print (age(5))
def age(n):if n 1:return 10if n 1:return (n - 1) * 2 10print(age(5))Python 练习实例29 题目给一个不多于5位的正整数要求一、求它是几位数二、逆序打印出各位数字。 程序分析学会分解出每一位数。 x int(input(请输入一个数:\n))
a x // 10000
b x % 10000 // 1000
c x % 1000 // 100
d x % 100 // 10
e x % 10if a ! 0:print(5 位数, e, d, c, b, a)
elif b ! 0:print(4 位数, e, d, c, b)
elif c ! 0:print(3 位数, e, d, c)
elif d ! 0:print(2 位数, e, d)
else:print(1 位数, e)
Python 练习实例30 题目一个5位数判断它是不是回文数。即12321是回文数个位与万位相同十位与千位相同。 a int(input(请输入一个数字:\n))
x str(a)
flag Truefor i in range(len(x) // 2):if x[i] ! x[-i - 1]:flag Falsebreak
if flag:print(%d 是一个回文数! % a)
else:print(%d 不是一个回文数! % a)
Python 练习实例31 题目请输入星期几的第一个字母来判断一下是星期几如果第一个字母一样则继续判断第二个字母。 程序分析用情况语句比较好如果第一个字母一样则判断用情况语句或if语句判断第二个字母。。 letter input(please input:)
# while letter ! Y:
if letter S:print(please input second letter:)letter input(please input:)if letter a:print(Saturday)elif letter u:print(Sunday)else:print(data error)elif letter F:print(Friday)elif letter M:print(Monday)elif letter T:print(please input second letter)letter input(please input:)if letter u:print(Tuesday)elif letter h:print(Thursday)else:print(data error)elif letter W:print(Wednesday)
else:print(data error)
Python 练习实例32 题目按相反的顺序输出列表的值。 a [one, two, three]
for i in a[::-1]:print(i)Python 练习实例33 题目按逗号分隔列表。 L [1, 2, 3, 4, 5]
s1 ,.join(str(n) for n in L)
print(s1)Python 练习实例34 题目练习函数调用。 程序分析使用函数输出三次 RUNOOB 字符串。 def hello_runoob():print(RUNOOB)def hello_runoobs():for i in range(3):hello_runoob()if __name__ __main__:hello_runoobs()
Python 练习实例35 题目文本颜色设置。 class bcolors:HEADER \033[95mOKBLUE \033[94mOKGREEN \033[92mWARNING \033[93mFAIL \033[91mENDC \033[0mBOLD \033[1mUNDERLINE \033[4mprint(bcolors.WARNING 警告的颜色字体? bcolors.ENDC)# 警告的颜色字体? # 浅黄色
Python 练习实例36 题目求100之内的素数。 # 输出指定范围内的素数# 用户输入数据
lower int(input(输入区间最小值: ))
upper int(input(输入区间最大值: ))for num in range(lower, upper 1):# 素数大于 1if num 1:for i in range(2, num):if (num % i) 0:breakelse:print(num)
import numpy as npnum np.arange(101)
for i in num[1:101]:c 0mod1 [np.mod(i, num[1:101])]c np.count_nonzero(mod1)if np.size(mod1) - c 2:print(i)Python 练习实例37 题目对10个数进行排序。 程序分析可以利用选择法即从后9个比较过程中选择一个最小的与第一个元素交换下次类推即用第二个元素与后8个进行比较并进行交换。 if __name__ __main__:N 10# input dataprint(请输入10个数字:\n)l []for i in range(N):l.append(int(input(输入一个数字:\n)))printfor i in range(N):print(l[i])print# 排列10个数字for i in range(N - 1):min ifor j in range(i 1, N):if l[min] l[j]:min jl[i], l[min] l[min], l[i]print(排列之后)for i in range(N):print(l[i])
n 0
S []
T []
for num in range(1, 11):a int(input(输入: ))S.append(a)
for n in range(1, 11):b min(S)T.append(b)S.remove(b)
print(T)
Python 练习实例38 题目求一个3*3矩阵主对角线元素之和。 程序分析利用双重for循环控制输入二维数组再将a[i][i]累加后输出。 if __name__ __main__:a []sum 0.0for i in range(3):a.append([])for j in range(3):a[i].append(float(input(input num:\n)))for i in range(3):sum a[i][i]print(sum)
A {}
for i in range(3):for j in range(3):A[i, j] int(input(Enter a number:))
diag []
for m in A.keys():if m[0] m[1]:diag.append(A[m])
print(sum(diag))Python 练习实例39 题目有一个已经排好序的数组。现输入一个数要求按原来的规律将它插入数组中。 程序分析首先判断此数是否大于最后一个数然后再考虑插入中间的数的情况插入后此元素之后的数依次后移一个位置。 a [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]
b int(input(输入数字))
# 对半查找,提高效率
f0, f1 0, len(a) - 1
while f1 - f0 1:mid f0 int((f1 - f0) / 2)if a[mid] b:f1 midelse:f0 mid
a.insert(f0 1, b)
print(a)Python 练习实例40 题目将一个数组逆序输出。 程序分析用第一个与最后一个交换。 if __name__ __main__:a [9, 6, 5, 4, 1]N len(a)print(a)for i in range(len(a) // 2):a[i], a[N - i - 1] a[N - i - 1], a[i]print(a)
b [15, 55, 668, 88, 99]
print(b[::-1])