基础训练 day9"/>
python基础训练 day9
python基础训练 day9
小白打卡第九天,
题目来源
这里,目录
- python基础训练 day9
- 第一题(猴子摘桃)
- 第二题(排座位)
- 第三题(打印菱形)
第一题(猴子摘桃)
# 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
还是数列问题,给定最后一项,求首项。已知最后一项是a10 = 1,前一项是后一项的2(1+n)。
a10 = 1
a = a10
for i in range(9):a = 2*(a+1)
print(a)
一天摘了1500多个peach也算是个猴材。
# 运行结果
1534
第二题(排座位)
两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
这是一个排座位的问题,相当于现在有x,y,z三个位置,然后我们把a,b,c三个人安排上去。
# a 不坐x b 无要求 c 不坐x,z
for i in range(ord('a'),ord('c')+1):for k in range(ord('a'),ord('c')+1):for j in range(ord('a'),ord('c')+1):if i != j and i != k and j != k:if i != ord('a') and i != ord('c') and j != ord('c'):print(f'x——{chr(i)},y——{chr(k)},z——{chr(j)}')
循环遍历找出所有可能被安排的情况,然后找出a 不坐x ,b 无要求 ,c 不坐x,z的情况,然后输出。
x——b,y——c,z——a
第三题(打印菱形)
打印出如下图案(菱形):*********
****************
就是循环输出多行数据,每一行的数据实际上符合一个数列。
def fun(r=7, get_str='*'): # 直接定义一个函数if r % 2 == 0:raise Exception('行数应为奇数')r_up = (r+1)/2for i in range(1, int(r_up)+1):r_str = get_str*(2*i-1)print(r_str.center(r))for j in range(int(r_up)-1, 0, -1):r_str = get_str * (2 * j - 1)print(r_str.center(r))
fun()
输出结果如下:
* *** *****
************ *** *
甚至还可以变换行,和打印输出的符号
fun(9,'@')
运行结果:
@ @@@ @@@@@ @@@@@@@
@@@@@@@@@@@@@@@@ @@@@@ @@@ @
小白打卡第九天,顺利结束!
骐骥一跃,不能十步;驽马十驾,功在不舍
更多推荐
python基础训练 day9
发布评论