zoukankan      html  css  js  c++  java
  • 一次小的上机试题

    1、8<<2等于 #32 

    2、通过内置函数计算5除以2的余数  
      print(divmod(5,2)[1]) #(2, 1)
    
    3、s=[1,"h",2,"e",[1,2,3],"l",(4,5),"l",{1:"111"},"o"],将s中的5个字符提取出来并拼接成字符串。
      
    #1.观察法
    s=[1,"h",2,"e",[1,2,3],"l",(4,5),"l",{1:"111"},"o"]
    print("".join(s[1::2]))#hello
    
    #.法二
    tlist = []
    for i in s:
        # if type(i) == str:
        if isinstance(i,str):
            tlist.append(i)
    s1 = ''.join(tlist)
    print(s1)
    

     4、判断"yuan"是否在[123,(1,"yuan"),{"yuan":"handsome"},"yuanhao"],如何判断以及对应结果?

      

    #法一.
    lst1 = [123,(1,"yuan"),{"yuan":"handsome"},"yuanhao"]
    for i in range(len(lst1)):
        if lst1[i] == 'yuan':
            print(lst1[i])
        elif isinstance(lst1[i],tuple ):
            print(lst1[i])
        elif isinstance(lst1[i], str):
            print(lst1[i])
        elif isinstance(lst1[i], dict):
            print(lst1[i])
    #法二
    lst1 = [123,(1,"yuan"),{"yuan":"handsome"},"yuanhao"]
    for i in  range(len(lst1)):
        if str(lst1[i]).find('yuan') != -1:
            print(lst1[i]) # (1, 'yuan') {'yuan': 'handsome'} yuanhao
    

     5、l=[1,2,3]

    l2=l.insert(3,"hello")

    print(l2)

    执行结果并解释为什么?

    l=[1,2,3]
    l2 = l.insert(3,"hello")
    print(l2)  #None  因为insert这个函数没有返回值,所以输出是None
    
    # 6、
    a = [1, 2, [3, "hello"], {"egon": "aigan"}]
    b = a[:]
    a[0] = 5
    a[2][0] = 666
    print(a) #[5, 2, [666, 'hello'], {'egon': 'aigan'}],
    # 首先b= a[:]  创建一个新的列表,
    # 修改a[0]=5,因为5是一个不可变数据类型,会重新创建一个新内存地址,并把值引用赋给a[0],所以a[0]=5 由原来1变成5.
    # print(b) #[1, 2, [666, 'hello'], {'egon': 'aigan'}]
    #首先b= a[:]  创建一个新的列表, 但是,元素如果嵌套有超过一层,那么它复制只是复制引用地址,里面值它不管的,也就是说
    # 新列表的b里的b[2][0], 跟a[2][0] 是共享一个内存地址,,而a[2][0] = 666变了,那么b[2][0] =666.
    # 计算结果以及为什么?
    

    7 使用文件读取,找出文件中最长的行的长度(用一行代码解决)?

    with open('a.txt','r') as f:print(len(max(f.__iter__())))
    

     8,

    
    def add(s, x):
        return s + x
    def generator():
        for i in range(4):
            yield i
    base = generator()
    for n in [1, 11]:
        base = (add(i, n) for i in base)
    print(list(base))  #[22, 23, 24, 25]

    9
    hello.py(gbk方式保存):
    #coding:GBK
     print(“老男孩”)
     如果用py2,py3下在cmd下运行回报错吗?为什么并提出解决方案? (编码)

    #coding:GBK
     print("老男孩")
    # 都不报错,cmd 默认就是Gbk编码,此文件开头已经声明gbk编码方式unicode,编码也是gbk编码方式与cmd一样
    

    10 # 通过函数化编程实现5的阶乘 # n!=n*(n-1)! 阶乘的计算方法 阶乘指从1乘以2乘以3乘以4 24

    def gat(n):
        ps = n
        for i in range(1,n):
            ps *= i
        print(ps)
    gat(5)
    

    11 # 打印如下图案:

           *
              ***
             *****
            *******
             *****
              ***
                *

    str1 = " "
    str2 = "*"
    for i in range(1,8,2):
        s = (7-i)//2
        print(str1*s,i*str2,s*str1)
    for i in reversed(range(1,6,2)):
        s = (7 - i) // 2
        print(str1 * s,i * str2, s * str1 )
    

    12. 

    def outer():
        count = 10
        def inner():
            count = 20
            print(count)
        inner()
        print(count)
    outer()
    # 20
    # 10
    # 当调用 outer(),先是程序执行outer 定义的函数体,里面嵌套有一个inner方法
    # 当count=20,outer函数里调用一个的inner(),inner被 调用 时,内部有一个变量count=20,,
    # 当inner 内的print count,优先找到它自己内字义的count=20,所以第一闪打印20,内部的inner被执行完
    # 接着跑outer函数定义体的print(count),此时作用就优先找 它自己定义 的count=10.所以结果 为10

    (1)分析运行结果?
    (2)如何让两个打印都是20

    def outer(count = 20):
        count = 10
        def inner():
            count = 20
            print(count)
        inner()
        return inner()
    outer()
    #20
    #20
    

    13 # 输入一个年份,判断是否是闰年? 

    p = int(input('inpu year'))
    if p % 4 == 0 and (p % 100 != 0 ):
        print('%s 年是闰年'%p)
    elif  (p % 400 == 0):
        print('%s 年是闰年'%p)
    else:
        print('%s 年不是闰年'%p)
    

    14.任意输入三个数,判断大小?

    def max_d(x,y,z):
        def wapper():
            p = max(x,y)
            p = max(p,z)
            return p
        return wapper()
    print(max_d(23,32,9))
    print(max_d(923,332,9)
    

    15 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

    例如2+22+222+2222+22222 # ,几个数相加以及a的值由键盘控制。

    while 1:
        p = int(input('input num'))
        p_count = int(input('input count'))
        def func_re():
            res = p
            for i in range(1,p_count):
                res += int((i+1)*str(p))
            print(res)
        func_re()
    

    16# 请问程序有无bug,怎么解决?

    f=open("a.txt")
    while 1:
        choice=input("是否显示:[Y/N]:")
        if choice.upper()=="Y":
            for i in f:
                print(i)
        else:
            break
    # 有bug #添加 f.seek(0)

     修改后如下

    f = open("a.txt")
    while 1:
        choice = input("是否显示:[Y/N]:")
        if choice.upper() == "Y":
            for i in f:
                print(i)
            f.seek(0)  #每次读取好,游标记它到开始处
        else:
            break
    

    # 17

    
    def foo():
        print('hello foo')
        return()
    def bar():
        print('hello bar')
    

    (1) 为这些基础函数加一个装饰器,执行对应函数内容后,将当前时间写入一个文件做一个日志记录。

    import  time
    def timer(func):
        def wapper(*args,**kwargs):
            f = open('a.log','a+')
            res = func(*args,**kwargs)
            f.write(str(time.time())+"
    ")
            return  res
        return wapper
    @timer
    def foo():
        print('hello foo')
        return()
    @timer
    def bar():
        print('hello bar')
    foo()
    bar()
    

    (2) 改成参数装饰器,即可以根据调用时传的参数决定是否记录时间,比如@logger(True)

    #有参数
    import  time
    def loger(l_type):
        def timer(func):
            def wapper(*args,**kwargs):
                f = open('a.log','a+')
                res = func(*args,**kwargs)
                if l_type == True:
                    f.write(str(time.time())+"
    ")
                    return  res
                else:
                    pass
            return wapper
        return timer
    @loger(True)
    def foo():
        print('hello foo')
        return()
    @loger(True)
    def bar():
        print('hello bar')
    foo()
    bar()
    


    
    
    
     
  • 相关阅读:
    对于在git上面拉代码报"error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054"解决方法
    在vue项目中如何添加eslint
    vscode编辑如何保存时自动校准eslint规范
    css3动画
    JS中的深拷贝与浅拷贝
    JS中的防抖与节流
    金三银四求职季,前端面试题小梳理(HTML、CSS、JS)
    正则表达式元字符大整理
    常规正则表达式练习,一起来开心的掉发吧
    关于子元素的margin-top对父级容器无效
  • 原文地址:https://www.cnblogs.com/hongyongshang/p/6731388.html
Copyright © 2011-2022 走看看