• python考试二


    1、8<<2等于?
    32

    2、通过内置函数计算5除以2的余数
     1 print(divmod(5,2))#打印结果:(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"]
    2 s1 = s[1::2]
    3 s2 ="".join(s1)
    4 print(s2)

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

    1 print('yuan' in j) #'yuan 在 j 里面吗?
    2 
    3 #回答:False #那就是不在

    5、l=[1,2,3]
    l2=l.insert(3,"hello")
    print(l2)
    执行结果并解释为什么?
    答:执行结果是None,因为l.insert(3,"hello")是没有执行结果的,所以l2是None

    6、 a=[1,2,[3,"hello"],{"egon":"aigan"}]
    b=a[:]

    a[0]=5
    a[2][0]=666

    print(a)
    print(b)
    #计算结果以及为什么?
    [5, 2, [666, 'hello'], {'egon': 'aigan'}]
    [1, 2, [666, 'hello'], {'egon': 'aigan'}]


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

    1 print (max(len(line.strip()) for line in open ('haproxy.conf', 'r')))

    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)

    9
    hello.py (gbk方式保存):
    #coding:GBK
    print(“老男孩”)

    如果用py2,py3下在cmd下运行回报错吗?为什么并提出解决方案? (编码)

    答:在py2下运行正常,在py下回报错,py3默认的是utf8,所以需要先转换成unicode,然后再转换成utf8就可以正常打开了

    10 通过函数化编程实现5的阶乘

    1 def 阶乘(n):
    2     '''计算阶乘'''
    3     if n ==1:
    4         return 1
    5     else :
    6         return 阶乘(n-1)*n
    7 print(阶乘(5))


    11 打印如下图案:

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

    1 for i in range(1,5):
    2    print (' '*(4-i) +'*'*(2*i-1))
    3 for j in range(1,4):
    4     print(' '*j +'*'*(7-2*j))

    12
    def outer():
    count = 10
    def inner():
    count = 20
    print(count)
    inner()
    print(count)
    outer()

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

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

     1 年份 = int(input("输入一个年份: "))
     2 if (年份 % 4) == 0:
     3    if (年份 % 100) == 0:
     4        if (年份 % 400) == 0:
     5            print("{0} 是闰年".format(年份))   # 整百年能被400整除的是闰年
     6        else:
     7            print("{0} 不是闰年".format(年份))
     8    else:
     9        print("{0} 是闰年".format(年份))       # 非整百年能被4整除的为闰年
    10 else:
    11    print("{0} 不是闰年".format(年份))

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

     1 def 判断大小(x,y,z):
     2     t = 0
     3     if y > x:
     4         t=x
     5         x=y
     6         y=t
     7     if z>x:
     8         t=x
     9         x=z
    10         z=t
    11     if z>y:
    12         t=y
    13         y=z
    14         z=t
    15     return (x,y,z)
    16 x = input('请输入 x:')
    17 y = input('请输入 y:')
    18 z = input('请输入 z:')
    19 a = 判断大小(x,y,z)
    20 print(max(a),min(a))#打印最大值与打印最小值

    15 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222
    ,几个数相加以及a的值由键盘控制。

     1 数值 = int(input('请输入数字数值:'))
     2 次数 = int(input('请输入几个数相加的次数:'))
     3 
     4 总数值 = 0  #初始化最终求解
     5 for i in range(1, 次数+1): #循环次数与输入的值一样,但从1开始循环
     6     t = 0  #临时用的变量
     7     for j in range(i):
     8         t = t + 10**j  #先计算 10**0 + 10**1 + ... + 10**j
     9     总数值 = 总数值 + (数值*t)  #再计算 数值 * t
    10 print(总数值)

    16 f=open("a")

    while 1:
    choice=input("是否显示:[Y/N]:")
    if choice.upper()=="Y":
    for i in f:
    print(i)
    else:
    break

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

    答:有。补点代码就行了


    17

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


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

    1 import time
    2 def foo():
    3     启动时间=time.time()
    4     print('hello foo')
    5     time.sleep(3)
    6     结束时间=time.time()
    7     print('花费时间为: %s'%(结束时间-启动时间))
    8 
    9 foo()


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

    18 三次登陆锁定:要求一个用户名密码输入密码错误次数超过三次锁定?

     1 真实用户名 = ("李晓明")
     2 真实密码 = ("123")
     3 f = open('黑名单表','r',encoding="utf8") #读取黑名单的内容
     4 锁定用户 = f.read()
     5 f.close()
     6 用户名 = input("请输入用户名:")
     7 def 判断用户黑名单(允许用户输入3次密码):
     8     def _判断用户黑名单():
     9         for i in range(1):
    10             if 锁定用户 == 用户名:
    11                 print("对不起,您的用户名已锁定,暂时不允许使用!")
    12                 exit()
    13             else:
    14                 允许用户输入3次密码()
    15     return _判断用户黑名单
    16 @判断用户黑名单
    17 def 允许用户输入3次密码():
    18     for i in range(3):
    19         密码 = input("请输入密码:")
    20         if 用户名 == 真实用户名 and 密码 == 真实密码:
    21             print ("登录成功!")
    22             break
    23         else:
    24             print("密码错误请重新输入")
    25         i +=1
    26     if i == 3:
    27         print("对不起,您输入的密码错误次数已达3次,将锁定您的账户!")
    28         f = open('黑名单表','w')
    29         f.write('%s'%用户名)
    30         f.close()
    31 允许用户输入3次密码()
  • 相关阅读:
    Redis开发与运维:SDS
    Redis开发与运维:数据迁移
    我的2019上半年
    C# 并发编程
    经典排序算法 — C# 版(上)
    图解 -- 树的汇总
    图解--队列、并发队列
    栈到CLR
    我们的数组
    算法复杂度
  • 原文地址:https://www.cnblogs.com/lixiaomingpython/p/6729177.html
Copyright © 2020-2023  润新知