# py4测试题

# 1、8 << 2
# 等于?
8转化成二进制:1000
向左移动2位: 0010 0000
转化成十进制:32
# 2、通过内置函数计算5除以2的余数
print(divmod(5,2)) #divmod是取余和商
余为1
# 3、s = [1, "h", 2, "e", [1, 2, 3], "l", (4, 5), "l", {1: "111"}, "o"], 将s中的5个字符提取出来并拼接成字符串。
s = [1, "h", 2, "e", [1, 2, 3], "l", (4, 5), "l", {1: ""}, "o"]
a=""
for i in s:
if type(i) is str:
a +=i
print(a,type(a)) # 4、判断
# "yuan"
# 是否在[123, (1, "yuan"), {"yuan": "handsome"}, "yuanhao"], 如何判断以及对应结果?
f=[123, (1, "yuan"), {"yuan": "handsome"}, "yuanhao"]
if "yuan" in f:
print("find it")
else:
print("not find") #另一种实现方法(递归)
l=[123, (1, "yuan"), {"yuan": "handsome"}, "yuanhao"]
def func(l):
if "yuan" in l:
print(l)
for i in l:
if type(i)== tuple or type(i) ==list:
func(i)
if type(i) == dict
func(i.keys())
func(i.values())
func(l) # 5、
# l = [1, 2, 3]
# l2 = l.insert(3, "hello")
# print(l2)
# 执行结果并解释为什么?
结果是none。因为l.insert 是给l插入值,没有返回值。 # 6、a = [1, 2, [3, "hello"], {"egon": "aigan"}]
# b = a[:]
# a[0] = 5
# a[2][0] = 666
# print(a)
# print(b)
# # # 计算结果以及为什么?
计算结果:
a:[5,2,[666,"hello"],{"egon":"aigan"}]
b:[1,2,[666,"hello"],{"egon":"aigan"}]
原因:这种拷贝方法。不可变类型的,原对象更改不会影响到拷贝对象,而可变类型的,原对象更改会影响到拷贝对象,
拿列表来说,实际存储的是指向列表的内存地址。而列表里的元素只和列表有关系。
# 7、使用文件读取,找出文件中最长的行的长度(用一行代码解决)?
with open("a") as f:
print(max((len(i.strip()) for i 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))
解答:
base=(add(i,n) for i in generator()) #n=1 #n=11
g1=generator() #0 1 2 3
g2=(add(i,11) for i in g1)
base=(add(i,11) for i in g2)
next(base) 22
next(base) 23
next(base) 24
next(base) 25 #
# hello.py(gbk方式保存):
# #coding:GBK
# print(“老男孩”)
# 如果用py2,py3下在cmd下运行会报错吗?为什么并提出解决方案? (编码)
不会出错。
# 10、通过函数化编程实现5的阶乘
def age(n):
if n == 1:
return 1
else:
return age(n-1)*n
print(age(5))
# 11、打印如下图案:
# *
# ***
# *****
# *******
# *****
# ***
# *
# 方法一:
print('\n'.join([('*'*([i,abs(i-6)][i>3]*2+1)).center(7, ' ') for i in range(7)]))
print('\n') #方法二:
def draw(n):
def paint(i,n):
s,l = divmod(i,2)
print(('%s%s%s'%('*' * s,'*' * l,'*' * s)).center(n))
for i in range(1,n,2):
paint(i,n)
for i in range(n,0,-2):
paint(i,n)
draw(7)
#
# def outer():
# count = 10
# def inner():
# count = 20
# print(count)
# inner()
# print(count)
# outer()
# (1)分析运行结果?
运行结果如下:
20
10
(2)如何让两个打印都是20
解答:在inner()下加入nonlocal count,最后结果都是20了。
def inner():
nonlocal count
count = 20
print(count) #
# 输入一个年份,判断是否是闰年?
#方法一:
num = int(input('请输入年份:').strip())
if num%4 == 0:
print('是闰年')
else:
print('不是闰年') #方法二:
judge = lambda year: True if (year%4 == 0 and year%100!=0) or (year%400 == 0) else False
print(judge(2004))
#拆解上面的lamdba表达式
def judge(year):
if (year%4 ==0 and year%100!=0) or (year%400==0):
return True
else:
return False
#
# 任意输入三个数,判断大小?
def my_max(a,b,c):
if a >= b:
if a>=c:
print(a)
else:
print(b)
else:
if b>=c:
print(b)
else:
print(c)
#
# 求s = a + aa + aaa + aaaa + aa...a的值,其中a是一个数字。例如2 + 22 + 222 + 2222 + 22222
# ,几个数相加以及a的值由键盘控制。
num = 0
while 1:
choice_value = input('选择a的值: ')
choice_num = input('选择几个数相加: ')
for i in range(1,int(choice_num)+1):
num += int(choice_value*i)
print(num)
num = 0 #
# f = open("a")
# while 1:
# choice = input("是否显示:[Y/N]:")
# if choice.upper() == "Y":
# for i in f:
# print(i)
# else:
# break
# 请问程序有无bug,怎么解决?
有bug
1、如果输入Y。输出文件内容。但每行都多一个换行符。再次输入Y则不会显示。
2、输入的不是Y也不是N,程序都会终止。
如果想要循环输出,则:
f = open("a") while 1:
choice = input("是否显示:[Y/N]:")
if choice.upper() == "Y":
for i in f:
print(i.strip())
f.seek(0)
elif choice.upper()=="N":
break
else:
print("请输入正确的命令!") #
# def foo():
# print('hello foo')
# return ()
# def bar():
# print('hello bar')
# (1)为这些基础函数加一个装饰器,执行对应函数内容后,将当前时间写入一个文件做一个日志记录。
# (2)改成参数装饰器,即可以根据调用时传的参数决定是否记录时间,比如 @ logger(True)
1、
import datetime
def logger(fun):
def wor():
with open("%s"%fun.__doc__,"a") as f:
fun()
a=str(datetime.datetime.now())
f.write(a+"\n")
return wor
@logger
def foo():
"foo"
print('hello foo')
return ()
@logger
def bar():
"bar"
print('hello bar') foo() #生成foo文件,记录时间
bar() #生成bar文件,记录时间 2、
import datetime
def logger(bool):
def logger1(fun):
def wor():
if bool:
with open("%s"%fun.__doc__,"a") as f:
fun()
a=str(datetime.datetime.now())
f.write(a+"\n")
return wor
return logger1
@logger(True)
def foo():
"foo"
print('hello foo')
return ()
@logger(False)
def bar():
"bar"
print('hello bar') foo() #生成foo文件,记录时间
bar() #不会生成bar文件 #
# 三次登陆锁定:要求一个用户名密码输入密码错误次数超过三次锁定?
coding:utf-8
count = 0 #用于计数
username = "wys666" #用户名和密码
password = "" f = open('black_user','r') #读取黑名单内容
lock_file = f.read()
f.close()
username = input("请输入用户名:") for i in range(1): #判断输入的用户名是否在黑名单内,如果在则不允许继续输入密码
if lock_file == username:
print("对不起,您的用户名已被锁定,暂时不允许使用!")
exit()
else:
continue for i in range(3): #尝试输入密码,并将输入次数进行计数
password =input("请输入密码:")
if password == password:
print("登录成功")
break
else:
print("登录失败...")
count += 1 if count == 3: #如果错误密码输入了三次,则提示用户名锁定,并将用户名放入黑名单中
print("对不起,您输入的密码错误次数已达3次,将锁定您的账户!")
f = open('black_user','w')
f.write('%s'%username)
f.close() 方法二:
while flag:
print(error)
for i in error:
if error[i] == 3:
print("The name is disabled!")
with open("black", "a") as f:
f.write(i + "\n")
flag = False
flag1= False
break
if flag1:
name = input("Please input your name : ")
passwd = input("Please input your password : ")
with open("black") as f:
for i in f.readlines():
if name in i.strip():
print("The name is disabled!")
flag1=False
break
if flag1:
if name in used:
if passwd == used[name]:
print("Welcome %s !" % name)
break
else:
print("Please input again !")
error[name]+=1
else:
print("Please input agin !")
flag1=True

python----测试04.18的更多相关文章

  1. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  2. Appium环境的安装与配置,Python测试脚本测试

    Appium自动化测试系列1 - Appium环境的安装与配置 发表于4个月前(2015-01-27 14:34)   阅读(803) | 评论(0) 0人收藏此文章, 我要收藏 赞0 寻找 会’偷懒 ...

  3. python测试mysql写入性能完整实例

    这篇文章主要介绍了python测试mysql写入性能完整实例,具有一定借鉴价值,需要的朋友可以参考下 本文主要研究的是python测试mysql写入性能,分享了一则完整代码,具体介绍如下. 测试环境: ...

  4. Python函数04/生成器/推导式/内置函数

    Python函数04/生成器/推导式/内置函数 目录 Python函数04/生成器/推导式/内置函数 内容大纲 1.生成器 2.推导式 3.内置函数(一) 4.今日总结 5.今日练习 内容大纲 1.生 ...

  5. 《Python测试开发技术栈—巴哥职场进化记》—初来乍到,请多关照

    上文<巴哥职场进化记-Python测试开发技术栈>开篇讲到巴哥毕业初到深圳,见到了来自五湖四海的室友.一番畅聊之后,抱着对未来职场生活的期待,大家都进入了梦乡.今天我们来看看巴哥第一天上班 ...

  6. 《Python 测试开发技术栈—巴哥职场进化记》—每日站会的意义

    上文<Python测试开发技术栈-巴哥职场进化记>-一道作业题我们讲到华哥给巴哥出了一道作业题,让巴哥用Python实现记录日志的功能,巴哥历经"千辛万苦",终于做出了 ...

  7. Python测试框架pytest入门基础

    Pytest简介 Pytest is a mature full-featured Python testing tool that helps you write better programs.T ...

  8. Protobuf for Python测试保存和读取文件

    安装pip, setuptools, and wheel 如果已经从python.org,安装啦Python 2 >=2.7.9 or Python 3 >=3.4 ,那么就已经有啦pip ...

  9. 关于python测试webservice接口的视频分享

    现在大公司非常流行用python做产品的测试框架,还有对于一些快速原型产品的开发也好,很好地支持OO编程,代码易读.Python的更新挺快的,尤其是第三方库. 对于测试人员,代码基础薄弱,用pytho ...

  10. 用 Python 测试框架简化测试

    用 Python 测试框架简化测试 摘要:本文将向您介绍了三种流行 Python 测试框架(zope.testing,py.test,nose)的基本特性,并讨论新一代的测试风格. 最近出现了行业级的 ...

随机推荐

  1. Selenium(Python)PageObject页面对象

    使用PageObject页面对象的好处是, 当页面元素的位置发生改变时, 只需要去修改Xpath或者ID, 而不用去修改测试用例本身: 本次的思路是: 1.常用方法类 2.页面对象类 3.测试用例类 ...

  2. VMware实现控制台功能(VMware Remote Console)

    说明: 刚开始一脸懵逼,google了一些资料,发现基本没有能快速落地的,自己做完后梳理了一下发上来供大家参考. 如果帮到你了,请点赞评论关注,以资鼓励,多谢~ 实现VMware控制台功能主要有两种方 ...

  3. beego 笔记

    1.开发文档 https://beego.me/docs/intro/ 2.bee run projectname demo controller package autoscaler import ...

  4. HDU 3268/POJ 3835 Columbus’s bargain(最短路径+暴力枚举)(2009 Asia Ningbo Regional)

    Description On the evening of 3 August 1492, Christopher Columbus departed from Palos de la Frontera ...

  5. windows远程连接失败问题排查思路

    一般情况下,对WIN7的远程连接只需要5步即可完成远程连接的设置: 1).用户是否设置了密码 2).计算机属性-允许远程登录 3).设置计算机永不睡眠 4).关闭防火墙或者设置入站规则 5).排查Re ...

  6. LintCode-69.二叉树的层次遍历

    二叉树的层次遍历 给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问) 样例 给一棵二叉树 {3,9,20,#,#,15,7} : 返回他的分层遍历结果: [     [3],     [9,2 ...

  7. web前端之路 - 开篇

    一 web发展历程 了解事物的历史有助于我们渐进式的从发展的思路清楚了解事物的来龙去脉. 这里有一篇网文写得比较清晰和完整:https://www.tianmaying.com/tutorial/we ...

  8. Python实现FTP服务功能

    本文从以下三个方面, 阐述Python如何搭建FTP服务器 一. Python搭建FTP服务器 二. FTP函数释义 三. 查看目录结构 四. 上传下载程序 一. Python搭建FTP服务器 1. ...

  9. MySQL中使用trim()删除两侧字符

    在某些情况下由于程序没处理好,导致数据表中有些字段的值会有空白字符出现,如 这样如果在严格比对name时会匹配不到.trim()函数可以解决这样的问题 作为trim()函数的子集,ltrim()函数是 ...

  10. poj 1719 Shooting Contest (二分匹配)

    Shooting Contest Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3812   Accepted: 1389 ...