首页 > 代码库 > python考试二

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次密码()

 

python考试二