博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python考试
阅读量:6704 次
发布时间:2019-06-25

本文共 3320 字,大约阅读时间需要 11 分钟。

py4测试题

1、8<<2等于?

32
2、通过内置函数计算5除以2的余数
divmod(5,2)
3、s=[1,"h",2,"e",[1,2,3],"l",(4,5),"l",{1:"111"},"o"],将s中的5个字符提取出来并拼接成字符串。
s[1]+s[3]+s[5]+s[7]+s[9]
4、判断"yuan"是否在[123,(1,"yuan"),{"yuan":"handsome"},"yuanhao"],如何判断以及对应结果?
答 m=[123,(1,"yuan"),{"yuan":"handsome"},"yuanhao"]
n="yuan"
for i in m:
if i == n:
print(i)
输出结果为: 空值
5、l=[1,2,3]
l2=l.insert(3,"hello")
print(l2)
执行结果并解释为什么?
答: 执行结果报错,因为列表下标是从0开始的,l列表的元素下标有0,1,2,没有下边为3的元素
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,[3,"hello"],{"egon":"aigan"}]
7 使用文件读取,找出文件中最长的行的长度(用一行代码解决)?
print(max(len(line.strip())for line in f))
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不会报错,因为Windows中cmd默认字符编码就是gbk
py3中不会报错,因为Windows中cmd默认字符编码是gbk
10 通过函数化编程实现5的阶乘
from functools import reduce
print(reduce(lambda x,y:x*y,[1,2,3,4,5]))
11 打印如下图案:
***
*****
*******
*****
***
*

12

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

(1)分析运行结果?

20,10,这是一个嵌套函数,名称空间查找的顺序是:局部名称空间->全局名称空间->内置名称空间
(2)如何让两个打印都是20
把count的行去掉,然后把count = 20这一行放在def outer(): 这一行的上一行。理由是count的值都可以从全局找。
13 输入一个年份,判断是否是闰年?
year=int(input("请输入年份:"))
if year % 4 == 0 and year % 400 == 0 and year % 100 != 0:
print("输入的年份是闰年")
else:
print("输入的年份不是闰年")
14 任意输入三个数,判断大小?
a=1
i=[]
while a<=3:
j = int(input("请输入数字:"))
i.append(j)
a += 1
print(i)
print(max(i))
15 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222
,几个数相加以及a的值由键盘控制。
a=int(input("请输入一个数字:"))
def f(n):
if n==1:
return a
elif n==2:
return 10*a+a
else:
return f(n-1)+10**(n-1)
if __name__ == "__main__":
f=f(10)
print(f)
16 f=open("a")

while 1:

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

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

答:有bug,f=open("a")改成如下代码
with open("a","r") as f:
f.read()
下面的代码不变
17

def foo():

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

(1)为这些基础函数加一个装饰器,执行对应函数内容后,将当前时间写入一个文件做一个日志记录。
import time
def timmer(func):
def wrapper():
start_time=time.time()
func()
stop_time=time.time()
m=print("The run time is %s",stop_time-start_time)
with open("n.log", "a+") as f:
f.write("The run time is %s" %(stop_time-start_time))
return wrapper

@timmer

def foo():
print('hello foo')
time.sleep(3)
return()
@timmer
def bar():
print('hello bar')
time.sleep(3)
(2)改成参数装饰器,即可以根据调用时传的参数决定是否记录时间,比如@logger(True)
import time
def timmer(func):
def wrapper(*args,**kwargs):
start_time=time.time()
func(*args,**kwargs)
stop_time=time.time()
m=print("The run time is %s",stop_time-start_time)
with open("n.log", "a+") as f:
f.write("The run time is %s" %(stop_time-start_time))
return wrapper

@timmer

def foo():
print('hello foo')
time.sleep(3)
return()
@timmer
def bar():
print('hello bar')
time.sleep(3)
18 三次登陆锁定:要求一个用户名密码输入密码错误次数超过三次锁定?
i=0
while i<3:
name=input("请输入你的名字: ")
password=input("请输入你的密码: ")
if name=='bing'and password=='12345':
print("bing login success,welcome bing")
break
else:
print("用户名或密码错误!")
i+=1
while i>=3:
print("已经被锁定")
with open('./jilu.txt','w+') as f:
f.write("name:"+name+'\n password:'+password)

转载于:https://www.cnblogs.com/bingabcd/p/6728981.html

你可能感兴趣的文章
关于行框盒子与vertical-align(一)
查看>>
修复苹果iOS 原生键盘遮挡input框
查看>>
学习编程,只跟对的人
查看>>
AQS源码详解
查看>>
AndroidSerialPort:安卓串口通信库
查看>>
咦,Oreo怎么收不到广播了?
查看>>
spring-控制反转IoC
查看>>
spring cloud微服务分布式云架构(三)-服务消费者(Feign)
查看>>
区块链软件公司:区块链的金融化体系
查看>>
常用的几个设计心理学
查看>>
Target runtime Apache Tomcat v6.0 is not defined.错误解决方法
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
SQL Server --堆表和索引表的区别
查看>>
程序相关规范_已整理
查看>>
我对创业和管理的一些看法
查看>>
linux chattr -- 修改linux文件属性
查看>>
我的友情链接
查看>>
Edit Control 上行号
查看>>
20110717 搞不懂的思科物流
查看>>