python----测试04.18
# 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的更多相关文章
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- Appium环境的安装与配置,Python测试脚本测试
Appium自动化测试系列1 - Appium环境的安装与配置 发表于4个月前(2015-01-27 14:34) 阅读(803) | 评论(0) 0人收藏此文章, 我要收藏 赞0 寻找 会’偷懒 ...
- python测试mysql写入性能完整实例
这篇文章主要介绍了python测试mysql写入性能完整实例,具有一定借鉴价值,需要的朋友可以参考下 本文主要研究的是python测试mysql写入性能,分享了一则完整代码,具体介绍如下. 测试环境: ...
- Python函数04/生成器/推导式/内置函数
Python函数04/生成器/推导式/内置函数 目录 Python函数04/生成器/推导式/内置函数 内容大纲 1.生成器 2.推导式 3.内置函数(一) 4.今日总结 5.今日练习 内容大纲 1.生 ...
- 《Python测试开发技术栈—巴哥职场进化记》—初来乍到,请多关照
上文<巴哥职场进化记-Python测试开发技术栈>开篇讲到巴哥毕业初到深圳,见到了来自五湖四海的室友.一番畅聊之后,抱着对未来职场生活的期待,大家都进入了梦乡.今天我们来看看巴哥第一天上班 ...
- 《Python 测试开发技术栈—巴哥职场进化记》—每日站会的意义
上文<Python测试开发技术栈-巴哥职场进化记>-一道作业题我们讲到华哥给巴哥出了一道作业题,让巴哥用Python实现记录日志的功能,巴哥历经"千辛万苦",终于做出了 ...
- Python测试框架pytest入门基础
Pytest简介 Pytest is a mature full-featured Python testing tool that helps you write better programs.T ...
- Protobuf for Python测试保存和读取文件
安装pip, setuptools, and wheel 如果已经从python.org,安装啦Python 2 >=2.7.9 or Python 3 >=3.4 ,那么就已经有啦pip ...
- 关于python测试webservice接口的视频分享
现在大公司非常流行用python做产品的测试框架,还有对于一些快速原型产品的开发也好,很好地支持OO编程,代码易读.Python的更新挺快的,尤其是第三方库. 对于测试人员,代码基础薄弱,用pytho ...
- 用 Python 测试框架简化测试
用 Python 测试框架简化测试 摘要:本文将向您介绍了三种流行 Python 测试框架(zope.testing,py.test,nose)的基本特性,并讨论新一代的测试风格. 最近出现了行业级的 ...
随机推荐
- Python-S9——Day82-CRM项目实战
1.权限的概念: 2.RBAC的设计: 3.注册登录用户所有权限到session中: 4.权限的校验: 5.基于中间件的权限校验: 1.权限的概念: 1.1 项目与应用: Project App 1. ...
- chrome编辑器与截图
在地址栏中输入 data:text/html,<html contenteditable>即可使用编辑功能,打开控制台,ctrl + shift + p 调用命令面板,输入 capture ...
- An Adaptive Color-Based Particle Filter--粒子滤波
粒子滤波跟踪的具体步骤如下: 1. Resampling the particles to avoid degeneracy 2. Propagate each particles accordin ...
- 隐马尔科夫模型(hidden Markov Model)
万事开头难啊,刚开头确实不知道该怎么写才能比较有水平,这篇博客可能会比较长,隐马尔科夫模型将会从以下几个方面进行叙述:1 隐马尔科夫模型的概率计算法 2 隐马尔科夫模型的学习算法 3 隐马尔科夫模型 ...
- 由一个hash字符串生成多个子hash字符串
通过存储一个head hash,然后把子hash放到网络中 当然,也可以像默克尔树那样的,生成多级的子hash ,可以通过规则配置不同的hash 生成方式.倒置的默克尔树 我有一个文件,然后我把她分隔 ...
- POJ 3525/UVA 1396 Most Distant Point from the Sea(二分+半平面交)
Description The main land of Japan called Honshu is an island surrounded by the sea. In such an isla ...
- es6从零学习(五):Module的语法
es6从零学习(五):Module的语法 ES6 模块的设计思想,是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量 一:es6模块化和 CommonJS 和 AMD 模块 (运行 ...
- Train Problem(栈的应用)
Description As the new term comes, the Ignatius Train Station is very busy nowadays. A lot of studen ...
- 软件工程课堂作业(二)续——升级完整版随机产生四则运算题目(C++)
一.设计思想: 1.根据题目新设要求,我将它们分为两类:一类是用户输入数目,根据这个数目改变一系列后续问题:另一类是用户输入0或1,分情况解决问题. 2.针对这两类要求,具体设计思路已在上篇博文中写出 ...
- Huffuman树
问题描述 Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. 给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下: 1. ...