python基础小白题3

题目021:猴子吃桃问题

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,见只剩下一个桃子了。

求第一天共摘了多少。

'''

def tm021():

    '''

第十天num=1个,第九天必然是4个:4/2-1=1,也就是(num+1)*2=4。

    做这种题,先用算数式列出来,然后用代码描述就行了。

    '''

    num = 1

    for i in range(10-1):

        num = (num+1)*2

    print(num)

 

 

'''

题目022:两个乒乓球队进行比赛,各出三人。

甲队为a,b,c三人,乙队为x,y,z三人。

已抽签决定比赛名单。有人向队员打听比赛的名单。

a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

'''

 

def tm022():

    '''

    【个人备注】:关键是将抽象化,将问题抽象成代码方式。

    我的解题思路,是用排列组合函数,列出方案,然后排除。

    而官方解答里面有一个纯粹的for循环加if的求解方式,

    更抽象一些,用了一个很常用固定范式,直接拿来解题了。

    稍微对其抽象的方法注释了一下。

    '''

    import itertools

    jia = ['a','b','c']

    yi = ['x','y','z']

    arr = list(itertools.permutations(yi,3)) # 面对甲队a,b,c时,乙队所有排列 [('x', 'y', 'z'), ('x', 'z', 'y'), ('y', 'x', 'z'), ('y', 'z', 'x'), ('z', 'x', 'y'), ('z', 'y', 'x')]

    arr = [[jia[i]+a[i] for i in range(3)] for a in arr] #将a,b,c写上,得到所有对阵组合 [['ax', 'by', 'cz'], ['ax', 'bz', 'cy'], ['ay', 'bx', 'cz'], ['ay', 'bz', 'cx'], ['az', 'bx', 'cy'], ['az', 'by', 'cx']]

    for i in arr:

        if 'ax' in i:

            pass

        elif 'cx' in i or 'cz' in i:

            pass

        else:

            print(i) # 得到 ['az', 'bx', 'cy']

 

 

def tm022_1():

    for a in ['x','y','z']:                             # a在x,y,z中挑一个打

        for b in ['x', 'y', 'z']:                       # b在x,y,z中挑一个打

            for c in ['x', 'y', 'z']:                   # c在x,y,z中挑一个打 三层总计27种打法

                if a!=b and b!=c and c!=a:              # a,b,c不能挑同一个人 缩减到6种打法

                    if a!='x' and c!='x' and c!='z':    # 依据题意不能ax,cx,cz 缩减到1种打法

                        print('a'+a,'b'+b,'c'+c)

 

 

'''

题目023:

打印出如下图案(菱形):

   *

  ***

 *****

*******

 *****

  ***

   *

'''

def tm023():

    '''

    【个人备注】:想到了绝对值,

    然后将[0,1,2,3,4,5,6]变成了[3,2,1,0,1,2,3],也就是每行左边空格数。

    '''

    num = 7

    for i in range(num):

        blank = abs(num//2-i)

        print(' '*blank+'*'*(num-2*blank)+' '*blank)

 

 

'''

题目024:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

'''

def tm024():

    # 没啥好说的

    a,b,num = 2,1,0

    for i in range(20):

        num+=a/b

        a=a+b

        b=a-b

    print(num)

 

 

'''

题目025:求1+2!+3!+...+20!的和。

'''

def tm025():

    '''

    【个人备注】:实现起来很简单。

    下面官方的代码,比我写的更简洁。

    '''

    s,t=0,1

    for n in range(1,21):

        t*=n

        s+=t

    print(s)

 

 

'''

题目026:利用递归方法求5!。

'''

def fac(x):

    if x>1:

        return x*fac(x-1)

    else:

        return x

 

def tm026():

    '''

    【个人备注】:按题目要求,公式f(n)=n*f(n-1),递归调用求解。

    '''

    print(fac(5))

 

 

'''

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

'''

def output(s,l):

    if l==0:

       return

    print (s[l-1])

    output(s,l-1)

 

def tm027():

    '''

    【个人备注】:直接从官网复制,不喜欢递归。

    '''

    s = input('Input a string:')

    l = len(s)

    output(s,l)

 

 

'''

题目028:有5个人坐在一起,

问第五个人多少岁?他说比第4个人大两岁。

问第4个人,他说比第3个人大两岁。

问第3个人,又说比第2个人大两岁。

问第2个人,说比第1个人大两岁。

最后问第一个人,他说是10岁。

请问第五个人多大?

'''

def age(x):

    if x>1:

        return 2+age(x-1)

    else:

        return 10

 

def tm028():

    '''

    【个人备注】:官网给的还是递归方法,因为不用递归的话就是个口算题。

    '''

    print(age(5))

 

 

'''

题目029:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

'''

def tm029():

    '''

    【个人备注】:用Python,So Easy~

    list倒序可以用list.reverse();

    字符串就只能用步长=-1的方式来倒序了。

    '''

    num = 12345

    s = str(num)

    print(len(s))

    print(s[::-1])

 

 

 

'''

题目030:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

'''

def tm030():

    '''

    【个人备注】:没啥可说的。

    '''

    num = 12321

    s = str(num)

    for i in range(len(s)//2):

        if s[i]!=s[-i-1]:

            print(False)

            break

    else:

        print(True)

兔兔RabbitMQ!!! CSDN认证博客专家 Go/GoLang Redis MySQL
全站最硬核博主(之一)。在腾讯总部工作,bat/tmd有五家发过offer。acm/leetcode刷题狂,c /Java/python/go/php各种后端语言都喜欢,安卓/node/叶子/jsp等前端也能写,最喜欢鼓捣各种组件,请多指教。
已标记关键词 清除标记
相关推荐
<p> <span style="color:#797979;font-family:微软雅黑, 黑体, &#39;Microsoft YaHei&#39;, 宋体, sans-serif;font-size:13px;background-color:#ffffff;"> </span> </p> <p class="MsoNormal"> <span style="color:#337FE5;font-size:16px;"><strong><b><a target="_blank" href="https://edu.csdn.net/bundled/detail/308"></a><a target="_blank" href="https://edu.csdn.net/bundled/detail/308"><span> </span></a></b></strong></span> </p> <p class="ql-long-39788408" style="font-size:11pt;color:#494949;"> <strong><b><a class="ql-link ql-size-12 ql-author-39788408" href="https://edu.csdn.net/bundled/detail/298" target="_blank"><strong>[本课程属于AI完整学习路线套餐,该套餐已“硬核”上线,点击立即学习!]</strong></a> </b></strong> </p> <p> <br /> </p> <p class="MsoNormal"> <span style="color:#337FE5;font-size:16px;"><strong><img src="https://img-bss.csdnimg.cn/202011090217226256.png" alt="" /><br /> </strong></span> </p> <p class="MsoNormal"> <span style="color:#337FE5;font-size:16px;"><strong><br /> </strong></span> </p> <p class="MsoNormal"> <span style="color:#337FE5;font-size:16px;"><strong>[<span style="font-family:微软雅黑, 黑体, "font-size:13px;background-color:#FFFFFF;">Python</span><span style="font-family:微软雅黑, 黑体, "font-size:13px;background-color:#FFFFFF;">是目前最火的编程语言</span>]</strong></span>  </p> <p class="MsoNormal"> <span style="color:#000000;font-size:16px;">Python</span><span style="color:#000000;font-size:16px;">是目前最火的编程语言(没有之一),特别是在人工智能和深度学习领域,有关</span><span style="color:#000000;font-size:16px;">Python</span><span style="color:#000000;font-size:16px;">的课程也和雨后春笋一般大量涌现,但是这些课程大多目的性不强,</span><span style="color:#000000;font-size:16px;">过多抠语法,大而全,但是实用性不强,一段时间不用很容易就忘记了。因此本课程专为想学习</span><span style="color:#000000;font-size:16px;">/从事人工智能领域的同学设计,重点介绍人工智能中最常用的Python</span><span style="color:#000000;font-size:16px;">知识,重点讲解</span><span style="color:#000000;font-size:16px;">numpy</span><span style="color:#000000;font-size:16px;">等实用模块,同时大量结合习和实战,帮助大家快速上手</span><span style="color:#000000;font-size:16px;">Python。</span> </p> <p class="MsoNormal"> <br /> </p> <p class="MsoNormal"> <span style="color:#337FE5;font-size:16px;"><strong>【课程涵盖技术点】</strong></span> </p> <p class="MsoNormal">   </p> <p class="MsoNormal" style="text-indent:0px;"> <span style="color:#000000;font-size:16px;">1、Python开发环境的准备(Anaconda, Jupyter Notebook, Spyder)</span> </p> <p class="MsoNormal" style="text-indent:0px;"> <span style="color:#000000;font-size:16px;">2、Python基础知识(变量类型,基础数学运算,基础语法,常用数据结构,比较和逻辑运算,循环语句,Python函数,文件IO,时间模块与OS模块,异常处理)</span> </p> <p class="MsoNormal" style="text-indent:0px;"> <span style="color:#000000;font-size:16px;">3、Numpy的使用(ndarray,向量与矩阵的形变和运算,向量和矩阵的生成、运算、拼接、和索引,常用numpy科学计算方法)</span> </p> <p class="MsoNormal" style="text-indent:0px;"> <span style="color:#000000;font-size:16px;">4、Pandas 和 Matplotlib</span> </p> <p class="MsoNormal" style="text-indent:0px;"> <span style="color:#000000;font-size:16px;">5、爬虫实战(</span><span style="color:#000000;font-size:16px;">Request,BeautifulSoup)</span> </p> <p class="MsoNormal" style="text-indent:0px;"> <span style="color:#000000;font-size:16px;"><br /> </span> </p> <p class="MsoNormal" style="text-indent:0px;"> <span style="color:#337FE5;font-size:16px;"><strong>【3天</strong></span><span style="font-weight:bold;color:#337FE5;font-size:16px;">时间学习最实用知识,</span><span style="font-weight:bold;color:#337FE5;font-size:16px;">快速上手实战案<span style="color:#337FE5;">例</span></span><strong><span style="color:#337FE5;">】</span></strong> </p> <p class="MsoNormal" style="text-indent:0px;">   </p> <p class="MsoNormal" style="text-indent:0px;"> <img alt="" src="https://img-bss.csdnimg.cn/202009100354198952.png" /><img alt="" src="https://img-bss.csdnimg.cn/202009100354253635.png" />  </p> <p class="MsoNormal" style="text-indent:0px;"> <br /> </p> <p class="MsoNormal" style="text-indent:0px;"> <br /> </p> <p class="MsoNormal" style="text-indent:0px;"> <strong><span style="color:#337FE5;"></span></strong> </p>
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页