zoukankan      html  css  js  c++  java
  • python全栈测试题(一)

    1、执行Python脚本的两种方式

    如果想要永久保存代码,就要用文件的方式
    如果想要调试代码,就要用交互式的方式
    即终端命令下和python环境中

    2、Pyhton单行注释和多行注释分别用什么?

    python中单行注释用#
    多行注释用'''
    

    3、声明变量注意事项有那些?

    变量名只能是 字母、数字或下划线的任意组合
    变量名的第一个字符不能是数字
    关键字不能声明为变量名

    4、如何查看变量在内存中的地址?

    ip(变量名)
    

    5、写代码

    a.实现用户输入用户名和密码,当用户名为seven且密码为123时,显示登陆成功,否则登陆失败!

    while true:
    name = input("please input your name:").strip()
        password = input("please input your password:").strip()
        if name == "seven" and password == "123" :
            print("登录成功!")
        else :
            print("登录失败!")

     b.实现用户输入用户名和密码,当用户名为seven且密码为123时,显示登陆成功,否则登陆失败,失败时允许重复输入三次  

    count = 0
    while count < 3 :
        name = input("please input your name:").strip()
        password = input("please input your password:").strip()
        if name == "seven" and password == "123" :
            print("登录成功!")
        else :
            print("登录失败!")
            count +=1
    

     c.实现用户输入用户名和密码,当用户名为seven或alex且密码为123时,显示登陆成功,否则登陆失败,失败时允许重复输入三次

    count = 0
    while count < 3 :
        name = input("please input your name:").strip()
        password = input("please input your password:").strip()
        if (name == "seven" or name == "alex") and password == "123" :
            print("登录成功!")
        else :
            print("登录失败!")
            count +=1

    6、写代码

       a.使用while循环实现输出2-3+4-5+6...+100的和 

    count = 2
    sun = 0
    while count <= 100 :
        if count % 2 == 0 :
            sun += count
        else :
            sun -= count
        count += 1
    print(sun)
    

     b.使用for循环和range实现输出1-2+3-4+5-6...+99的和  

    sum = 0
    for i in range(1,100) :
        if i % 2 == 1 :
            sum += i
        else :
            sum -= i
    print(sum)
    

      c.使用while循环实现输出1,2,3,4,5,7,8,9,11,12  

    count = 1
    while count <= 12 :
        if not (count == 6 or count == 10) :
            print(count)
        count += 1
    

     d.使用while循环实现输出1-100内的所有奇数

    count = 1
    while count <= 100 :
        print(count)
        count += 2
    

     e.使用while循环实现输出1-100内的所有偶数

    count = 2
    while count <= 100 :
        print(count)
        count += 2
    

     7、分别书写数字5,10,32,7的二进制表示

    5:00000101
    10:00001010
    32:00100000
     7:00000111
    

      8、现有如下两个变量,请简述n1和n2是什么关系?

    1=123
    n2=123
    n1和n2 id相同值相同 因为它们值太小python会进行优化在内存空间中开辟一个小数值存放池
    

    9、现有如下两个变量,请简述n1和n2是什么关系?

    n1=123456
    n2=123456
    n1和n2 id不相同值相同 n1,n2指向不同的内存空间
    

    10、现有如下两个变量,请简述n1和n2是什么关系?

    n1=123456
    n2=n1
    n1和n2 id相同值相同 n1,n2指向同一个内存空间

    11、如有以下变量n1=5,请使用int的提供的方法,得到该变量少可以用多少个二进制位表示?

    n1=5
    print(n1.bit_length())

    12、布尔值分别有什么?

    True 
    Fales

    13、阅读代码,请写出执行结果

    # a="alex"
    # b=a.capitalize()
    # print(a)
    # print(b)
    # 请写出输出结果:
    alex
    Alex

    14、写代码,有如下变量,请按照要求实现每个功能

    name="aleX"
    #a.移除name变量对应的值两边的空格,并输入移除有的内容
    print(name.strip())
    #b.判断name变量对应的值是否以"al"开头,并输出结果
    print(name.startswith("al"))
    #c.判断name变量对应的值是否以"X"结尾,并输出结果
    print(name.endswith("X"))
    #d.将name变量对应的值中的“l”替换为“p”,并输出结果
    print(name.replace("l","p"))
    #e.将name变量对应的值根据“l”分割,并输出结果。
    print(name.split("l"))
    #f.请问,上一题e分割之后得到值是什么类型?
    #   列表类型
    #g.将name变量对应的值变大写,并输出结果
    print(name.upper())
    #h.将name变量对应的值变小写,并输出结果
    print(name.lower())
    #i.请输出name变量对应的值的第2个字符?
    print(name[1])
    #j.请输出name变量对应的值的前3个字符?
    print(name[0:3])
    #k.请输出name变量对应的值的后2个字符?
    print(name[-2:])
    #l.请输出name变量对应的值中“e”所在索引位置?
    print(name.find("e"))

    15、字符串是否可迭代?如可以请使用for循环每一个元素?

    #   可以
    name = "aleX"
    for i in name :
        print(i)

    16、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain']

    li = ['alex','eric','rain']
    print("_".join(li))

    17、写代码,有如下列表,按照要求实现每一个功能

    li = ['alex','eric','rain']
    #a.计算列表长度并输出
    print(len(li))
    #b.列表中追加元素“seven”,并输出添加后的列表
    li.append("seven")
    print(li)
    #c.请在列表的第1个位置插入元素“Tony”,并输出添加后的列表
    li.insert(0,"Tony")
    print(li)
    #d.请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表
    li[1] = "Kelly"
    print(li)
    #e.请删除列表中的元素“eric”,并输出修改后的列表
    li.remove("eric")
    print(li)
    #f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
    lu = li.pop(1)
    print(lu,li)
    #g.请删除列表中的第3个元素,并输出删除元素后的列表
    li.pop(2)
    print(li)
    #h.请删除列表中的第2至4个元素,并输出删除元素后的列表
    li = ['alex','eric','rain','egon','lln']
    li.pop(1)
    li.pop(1)
    li.pop(1)
    print(li)
    #i.请将列表所有的元素反转,并输出反转后的列表
    li.reverse()
    print(li)
    #j.请使用for、len、range输出列表的索引
    for i in range(len(li)) :
        print(i)
    #k.请使用enumrate输出列表元素和序号(序号从100开始)
    for index,item in enumerate(li,100):
        print(index, item)
    #l.请使用for循环输出列表的所有元素
    for i in li :
        print(i)

    18、写代码,有如下列表,请按照功能要求实现每一个功能

    li=["hello",'seven',["mon",["h","kelly"],'all'],123,446]
    #a.请输出“Kelly”
    print(li[2][1][1])
    #b.请使用索引找到'all'元素并将其修改为“ALL”
    li[2][2] = "ALL"
    print(li)

    19、写代码,有如下元组,按照要求实现每一个功能

    tu = ('alex','eric','rain')
    #a.计算元组长度并输出
    print(len(tu))
    #b.获取元组的第2个元素,并输出
    print(tu[1])
    #c.获取元组的第1-2个元素,并输出
    a,b,_ = tu
    print(a,b)
    #d.请使用for输出元组的元素
    for i in tu :
        print(i)
    #e.请使用for、len、range输出元组的索引
    for i in range(len(tu)) :
        print(i)
    #f.请使用enumrate输出元祖元素和序号(序号从10开始)
    for index,item in enumerate(tu,10) :
        print(index,item)

    20、有如下变量,请实现要求的功能

    tu=("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])
    print(tu)
    # a.讲述元祖的特性
    #存多个值,元组不可变,主要是用来读
    # b.请问tu变量中的第一个元素“alex”是否可被修改?
    #不可以
    # c.请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
    #    列表 可以
    tu[1][2]["k2"].append("Seven")
    print(tu)
    # d.请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
    #    元组 不可以

     21、字典

    dic={'k1':"v1","k2":"v2","k3":[11, 22, 33]}
    #a.请循环输出所有的key
    for key in dic :
        print(key)
    for key in dic.keys() :
        print(key)
    #b.请循环输出所有的value
    for key in dic :
        print(dic[key])
    for value in dic.values() :
        print(value)
    #c.请循环输出所有的key和value
    for key in dic :
        print(key,dic[key])
    for key,value in dic.items() :
        print(key,value)
    #d.请在字典中添加一个键值对,"k4":"v4",输出添加后的字典
    dic["k4"] = "v4"
    print(dic)
    #e.请在修改字典中“k1”对应的值为“alex”,输出修改后的字典
    dic["k1"] = "alex"
    print(dic)
    #f.请在k3对应的值中追加一个元素44,输出修改后的字典
    dic["k3"].append(44)
    print(dic)
    #g.请在k3对应的值的第1个位置插入个元素18,输出修改后的字典
    dic["k3"].insert(0,18)
    print(dic)

    22、转换

    # a.将字符串s="alex"转换成列表
    s = "alex"
    s = list(s)
    print(s,type(s))
    # b.将字符串s="alex"转换成元祖
    s = tuple(s)
    print(s,type(s))
    # c.将元祖tu=('Alex',"seven")转换成列表
    tu=('Alex',"seven")
    tu = list(tu)
    print(tu,type(tu))
    # d.将列表li=["alex","seven"]转换成字典且字典的key按照10开始向后递增
    li=["alex","seven"]
    dic = {}
    for key,value in enumerate(li,10):
        dic.setdefault(key,value)
    print(dic,type(dic))

    23、求1-100内的所有数的和

    num = 0
    for i in range(1,101) :
        num += i
    print(num)

    24、元素分类

    #有如下值集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。
    #即:{'k1':大于66的所有值,'k2':小于66的所有值}
    x = {"k1":[],"k2":[]}
    y = [11,22,33,44,55,66,77,88,99,90]
    for i in y :
        if i > 66 :
            x["k1"].append(i)
        else :
            x["k2"].append(i)
    print(x)

    25、购物车

    #    功能要求:
    #   要求用户输入总资产,例如:2000
    #    显示商品列表,让用户根据序号选择商品,加入购物车
    #    购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
    #goods = [
    #{"name":"电脑","price":1999},
    #{"name":"鼠标","price":10},
    #{"name":"游艇","price":20},
    #]
    
    goods = [
    {"name":"电脑","price":1999},
    {"name":"鼠标","price":10},
    {"name":"游艇","price":20},
    ]
    tag = True
    shop_cart = [] #购物车
    while tag :
        ppt = input("please input your property:").strip()
        if not ppt or not ppt.isdigit() :
            continue
    
        for i,value in enumerate(goods,1) :
            print(i,value["name"],value["price"])
    
        ppt_l = 0  #总消费
        while tag :
            num = input("Select item number add to shop_cart:").strip()
            if not num.isdigit() :
                continue
            elif int(num) == 1 or int(num) == 2 or int(num) == 3:
                num_l = int(num)
                n = goods[num_l-1]["name"]
                p = goods[num_l-1]["price"]
                ppt_l += p
                shop_cart.append((n,p))
            else :
                continue
            print(shop_cart)
    
            while tag :
                cmd = input("Continue to buy? y/n ").strip()
                if cmd == "n" or cmd =="N" :
                    if ppt_l > int(ppt) :
                        print("账户余额不足!")
                    else :
                        print("购买成功!")
                    tag = False
                if cmd == "y" or cmd == "Y" :
                    break

     

     

     

     

     

     

     

      

  • 相关阅读:
    sbt commands
    SBT Assembly
    There is no setter for property named 可能产生的原因!
    JSP页面分页显示数据
    CentOS7配置FTP服务器增强版~(零基础学会FTP配置)
    Windows下将程序打包为安装包(最为简易的方式)
    Linux多线程编程详细解析----条件变量 pthread_cond_t
    在Linux中使用线程
    关于verilog中语句可不可综合
    32位先行进位加法器的实现
  • 原文地址:https://www.cnblogs.com/moning/p/7224322.html
Copyright © 2011-2022 走看看