首页 > 代码库 > 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考试二