Python基本练习三(字符统计与列表解析训练)

这篇博客提供了Python的基础练习,包括猴子吃桃问题、杨辉三角的计算,以及统计重复数字的多种方法。此外,还探讨了如何使用列表解析来打印九九乘法表和生成特定格式的ID。同时,介绍了矩阵翻转的函数训练,涵盖了常规和不规则矩阵的翻转技巧。
摘要由CSDN通过智能技术生成

Python基本练习三

猴子吃桃问题。

猴子第一天摘下若干个套装,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天找事都吃了前一天剩下的一半零一个。到第10天找事想吃时,只剩下一个桃子了,求第一天共摘多少个桃子

num = 1 #第10天剩下1个桃子
for i in range(9,0,-1):
    num = (num+1)*2
    print("第{}天有{}个".format(i,num))
print(num) 

在这里插入图片描述

杨辉三角

#求杨辉三角第m行的第k个元素,
#1.第m行有m项,m是正整数,因此k一定不会大于m
#2.第n行的m个元素可表示为C(n-1,m-1),即为从n-1个不通元素中取m-1个元素的组合数

n = int(input("请输入要打印的行数:"))
arr = [1]*(n+1)
nn = n//2 if n&1 else n//2 +1
for i in range(1,nn+1):
    num1 = 1
    num2 = 1
    for k in range(1,i+1):
        num1 *=(n-k+1)
        num2 *= k
    num3 = int(num1/num2)
    arr[i]= num3
    arr[-i-1]= num3
print(arr);

在这里插入图片描述

统计重复数字

#随机产生10个数,每个数字取值范围是[1,20],统计重复的数字有几个?分别是什么?不重复的数字有几个?分别是什么

  • 第一种解法
import random
str1 = []
str2 = []
for i in range(10):
    num = random.randint(1,20) 
    if num in str2:
        continue
    if num in str1:
        str2.append(str1.pop(str1.index(num)))
    else:
        str1.append(num)
print("有{}个数重复,分别是:{}".format(len(str2),str2))
print("有{}个数没有重复过,分别是:{}".format(len(str1),str1))

在这里插入图片描述

  • 第二种解法
#第二种解法
n = 20
num = [ random.randint(1,20) for _ in range(n)]
numindex = 
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值