Python 常见笔试程序题——不定期更新

1.冒泡排序

#sort.py
def Sort(list):
    for j in range(len(list) - 1):
        count = 0
        for i in range(0,len(list) - 1 - j):
            if list[i] > list[i + 1]:
                list[i],list[i + 1] = list[i + 1],list[i]
                count += 1
        if 0 == count:
            break
if __name__ ==  '__main__':
    #list = [12,454,13134,545413,1354546,354346,435421]
    number = input('请输入一串数字:')
    list = list(map(int, list(number)))
    print(list)
    Sort(list)
    print("排列后的数据:",end="")
    print(list)

运行结果:

2.二分法查找

def BinarySearchRe(alist,item):
    n = len(alist)
    start,end = 0,n-1
    while start <= end:
        mid = ( end + start ) // 2
        if alist[mid] == item:
            for j in range(mid):
                if alist[j] != alist[mid]:
                    mid = j + 1
                    break
                else:
                    mid = j
                    continue
            return mid
        elif item <alist[mid]:
                end = mid - 1
        else:
            start = mid + 1
    return False
if __name__ == '__main__':
    alist = [12,12,12,24,32,39,43,67,90]
    print( "结果为:" , BinarySearchRe( alist , 12 ) )
    print( "结果为:" , BinarySearchRe( alist , 67 ) )

运行结果:

3.水仙花数问题:

def Narcissistic(min,max):
    list = []
    count = 0
    for num in range(min,max):
        g = int(num % 10)
        s = int(num / 10 % 10)
        b = int(num / 100)
        mid = g**3 + s**3 + b**3
        if num == mid:
            list.append(num)
            count = count + 1
    return list,count
if __name__ == "__main__":
    min = 100
    max = 999
    list,count = Narcissistic(min,max)
    print("有",count,"個水仙花數:",list)

运行结果:

4.斐波那契数列(新生兔子问题)

#Fibonacci.py
#传统方法
def fun1(n):
    f1 , f2 = 1 , 1
    for i in range(3,n+1):
        f = f2
        f2 = f1 + f2
        f1 = f
    return f2
#递归方法
def fun2(n):
    if n == 1 or n == 2 :
        return 1
    else:
        return fun2( n - 1 ) + fun2( n - 2 )
if __name__ == '__main__':
    print("第24个月一共有",fun1(24),"只兔子")
    print("第24个月一共有",fun2(24),"只兔子")

运行结果:

5.打印乘法口诀(正常打印和一句代码打印)

def fun1():
    print('\n'.join([' '.join(['%s*%s=%-2s' % (y, x, x * y) for y in range(1, x + 1)]) for x in range(1, 10)]))
def fun2():
    list = []
    for x in range(1, 10):
        list2 = []
        for y in range(1, x + 1):
            list2.append('%s*%s=%-2s' % (y, x, x * y))
        list.append(' '.join(list2))
    print('\n'.join(list))
if __name__ == '__main__':
    print("一行代码打印三角形:")
    fun1()
    print("正常代码打印三角形:")
    fun2()

打印结果:

 

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值