zoukankan      html  css  js  c++  java
  • 08: python基础练习题

      1、while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100 的和

    # 使用while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100 的和
    s = 0
    i = 2
    while i <= 100:
        if i % 2 == 0:
            s += i
        else:
            s -= i
        i += 1
    print(s,i)     # 运行结果:51  101
    while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100 的和

      2、for循环实现9乘9乘法表

    for i in range(1,10,1):
        for j in range(1,i+1,1):
            # 	 代表的是制表符 end="" 表示打印对象以什么结尾 ,默认是 
     也就是换行
            print('%dx%d=%d'%(i,j,i*j),end='	')
        print("
    ")
    
    # 运行结果:
    # 1x1=1
    # 2x1=2    2x2=4
    # 3x1=3    3x2=6    3x3=9
    # 4x1=4    4x2=8    4x3=12    4x4=16
    # 5x1=5    5x2=10    5x3=15    5x4=20    5x5=25
    # 6x1=6    6x2=12    6x3=18    6x4=24    6x5=30    6x6=36
    # 7x1=7    7x2=14    7x3=21    7x4=28    7x5=35    7x6=42    7x7=49
    # 8x1=8    8x2=16    8x3=24    8x4=32    8x5=40    8x6=48    8x7=56    8x8=64
    # 9x1=9    9x2=18    9x3=27    9x4=36    9x5=45    9x6=54    9x7=63    9x8=72    9x9=81
    for循环实现9乘9乘法表

      3、台阶问题/斐波纳挈

        问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法

    fib = lambda n: n if n <= 2 else fib(n - 1) + fib(n - 2)
    print(fib(4))         # 5
    台阶问题/斐波纳挈
    #! /usr/bin/env python
    # -*- coding: utf-8 -*-
    import sys
    sys.setrecursionlimit(1000000000)             #设置系统最大递归深度
    
    def fib(n):
        if n <= 2:
            return n
        else:
            return fib(n-1) + fib(n-2)
    print(fib(4))         # 5
    二级台阶(函数递归)

      4、变态台阶问题

        问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法

    fib = lambda n: n if n < 2 else 2 * fib(n - 1)
    print(fib(4))   # 8
    变态台阶问题

      5、List = [-2, 1, 3, -6],如何实现以绝对值大小从小到大将 List 中内容排序 

    l = [-2, 1, 3, -6]
    print(sorted(l,key=abs))          # [1, -2, 3, -6]
    答案

      6、列表的sort方法和 sorted的区别是什么?

        1) sort 是list的方法,改变list对象的顺序,返回值为None
        2) sorted是Python的内置方法,适用iterable对象,返回值是新列表,不影响原来的iterable的顺序

      7、请写出一段Python代码实现删除一个list里面的重复元素

    #1、set去重
    a=[1,2,3,4,1,2,3,4]
    print( list(set(a)) )    # [1, 2, 3, 4]
    
    #2、使用字典去重
    b = {}
    b=b.fromkeys(a)
    c=list(b.keys())
    print(b)                # {1: None, 2: None, 3: None, 4: None}
    print(c)                #  [1, 2, 3, 4]
    列表去重

      8、求 A^n 不要使用现有模块

    #! /usr/bin/env python
    # -*- coding: utf-8 -*-
    class Solution(object):
        def __init__(self, A):
            self.A = A
    
        def run(self, n):
            if n == 0:
                Y = 1
            elif n > 0:
                Y = self.positive(n)
            else:
                ret = self.positive(-n)
                Y = float(1)  / float( ret )
            return Y
    
        def positive(self, n):
            ret = 1
            for i in range(n):
                ret = self.A * ret
            return ret
    
    
    s = Solution(2)
    print s.run(10)  # 1024
    print s.run(-3)  # 0.125
    print s.run(0)   # 1
    求A^n

    作者:学无止境
    出处:https://www.cnblogs.com/xiaonq
    生活不只是眼前的苟且,还有诗和远方。

  • 相关阅读:
    HTML5 CANVAS制图 基础总结
    CSS3(transform/transition/animation) 基础 总结
    创建一个js日历(原生JS实现日历)
    别光知道用console.log调试了,快来试试这些高效的调试方法!
    file_get_contents无法获取到https链接内容问题
    element-ui 的 table 组件 row-style不生效 无法设置行高的问题
    Element-ui 解决table设置fixed属性后 el-image组件放大图片样式被覆盖问题
    js实现简单sku变体组合算法
    关于cnpm命令没有反应(并不报错)的处理办法
    2019-8-14
  • 原文地址:https://www.cnblogs.com/xiaonq/p/7898880.html
Copyright © 2011-2022 走看看