zoukankan      html  css  js  c++  java
  • 关于面试总结4-python笔试题

    前言

    现在面试测试岗位,一般会要求熟悉一门语言(python/java),为了考验求职者的基本功,一般会出2个笔试题,这些题目一般不难,主要考察基本功。
    要是给你一台电脑,在编辑器里面边写边调试,没多大难度。主要是给你一张纸和笔,让你现场写出来,那就没那么容易了。
    (本篇代码都是基于python3.6)

    1.统计

    统计在一个队列中的数字,有多少个正数,多少个负数,如[1, 3, 5, 7, 0, -1, -9, -4, -5, 8]

    方法一

    # coding:utf-8
    a = [1, 3, 5, 7, 0, -1, -9, -4, -5, 8]
    
    # 用列表生成式,生成新的列表
    b = [i for i in a if i > 0]
    print("大于0的个数:%s" % len(b))
    
    c = [i for i in a if i < 0]
    print("小于0的个数:%s" % len(c))
    

    方法二

    # coding:utf-8
    a = [1, 3, 5, 7, 0, -1, -9, -4, -5, 8]
    
    # 用传统的判断思维,累加
    m = 0
    n = 0
    for i in a:
        if i > 0:
            m += 1
        elif i < 0:
            n += 1
        else:
            pass
    print("大于0的个数:%s" % m)
    print("小于0的个数:%s" % n)
    

    2.字符串切片

    字符串 "axbyczdj",如果得到结果“abcd”

    方法一

    # 字符串切片
    a = "axbyczdj"
    print(a[::2])
    

    方法二

    # 传统思维
    a = "axbyczdj"
    
    c = []
    for i in range(len(a)):
        if i % 2 == 0:
            c.append(a[i])
    print("".join(c))
    

    3.字符串切割

    已知一个字符串为“hello_world_yoyo”, 如何得到一个队列 ["hello","world","yoyo"]

    a = "hello_world_yoyo"
    b = a.split("_")
    print(b)
    
    

    4.格式化输出

    已知一个数字为1,如何输出“0001”

    a = 1
    
    print("%04d" % a)
    

    5.队列

    已知一个队列,如: [1, 3, 5, 7], 如何把第一个数字,放到第三个位置,得到:[3, 5, 1, 7]

    a = [1, 3, 5, 7]
    
    # insert插入数据
    a.insert(3, a[0])
    print(a[1:])
    

    6.交换

    已知 a = 9, b = 8,如何交换a和b的值,得到a的值为8,b的值为9

    方法1

    a = 8
    b = 9
    
    a, b = b, a
    print(a)
    print(b)
    

    方法2

    a = 8
    b = 9
    
    # 用中间变量c
    c = a
    a = b
    b = c
    print(a)
    print(b)
    

    7.水仙花

    打印出100-999所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

    sxh = []
    for i in range(100, 1000):
        s = 0
        m = list(str(i))
        for j in m:
            s += int(j)**len(m)
        if i == s:
            print(i)
            sxh.append(i)
    
    print("100-999的水仙花数:%s" % sxh)
    

    8.完全数

    如果一个数恰好等于它的因子之和,则称该数为“完全数”,又称完美数或完备数。 例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,
    1+2+3=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
    那么问题来了,求1000以内的完全数有哪些?

    a = []
    
    for i in range(1, 1000):
        s = 0
        for j in range(1, i):
            if i % j == 0 and j < i:
                s += j
        if s == i:
            print(i)
            a.append(i)
    print("1000以内完全数:%s" % a)
    

    9.排序

    用python写个冒泡排序

    a = [1, 3, 10, 9, 21, 35, 4, 6]
    
    s = range(1, len(a))[::-1]
    print(list(s))  # 交换次数
    
    for i in s:
        for j in range(i):
            if a[j] > a[j + 1]:
                a[j], a[j + 1] = a[j + 1], a[j]
        print("第 %s 轮交换后数据:%s" % (len(s)-i+1, a))
    print(a)
    

    10.sort排序

    已知一个队列[1, 3, 6, 9, 7, 3, 4, 6]

    • 按从小到大排序
    • 按从大大小排序
    • 去除重复数字
    a = [1, 3, 6, 9, 7, 3, 4, 6]
    
    # 1.sort排序,正序
    a.sort()
    print(a)
    
    # 2.sort倒叙
    a.sort(reverse=True)
    print(a)
    
    # 3.去重
    b = list(set(a))
    print(b)
    

    交流QQ群:779429633

  • 相关阅读:
    SDUT 2143 图结构练习——最短路径 SPFA模板,方便以后用。。 Anti
    SDUT ACM 1002 Biorhythms 中国剩余定理 Anti
    nyist OJ 119 士兵杀敌(三) RMQ问题 Anti
    SDUT ACM 2157 Greatest Number Anti
    SDUT ACM 2622 最短路径 二维SPFA启蒙题。。 Anti
    二叉索引树 区间信息的维护与查询 Anti
    SDUT ACM 2600 子节点计数 Anti
    UVA 1428 Ping pong 二叉索引树标准用法 Anti
    2010圣诞Google首页效果
    Object
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/10082644.html
Copyright © 2011-2022 走看看