测试python第二周_2020-02-21 第二周 Python面面观单元测试及思路

1.定义以下函数,其中f为所需要传入的函数。

def test(f, a, b):

print(f(a, b))

则执行语句 test((lambda x,y: x ** 3 + y), 2, 3)的输出结果是哪个选项?

f(a, b) = lambda x,y: x ** 3 + y 参数a,b = x, y =2,3

所以2**3+3=11

2.若k为整型,下述while循环执行的次数为多少次?

k = 50

while k > 1:

print(k)

k = k // 2

print(k)执行几次,while循环几次。

k = 50, while k > 1: print(k) 执行一次,k = k // 2取整, k=25

k = 25, while k > 1: print(k) 执行一次,k = k // 2取整, k=12

k = 12, while k > 1: print(k) 执行一次,k = k // 2取整, k=6

k = 6, while k > 1: print(k) 执行一次,k = k // 2取整, k=3

k = 3, while k > 1: print(k) 执行一次,k = k // 2取整,k=1

k = 1, while k > 1: False,结束

3.定义函数如下:

def my_power(x, n = 2):

s = 1

while n > 0:

n -= 1

s = s * x

return s

分别对该函数传递参数,调用my_power(-3)和my_power(3, 3)后运行结果分别是什么?

my_power(-3)时,x=-3,n=2

while 2 > 0: n = 2-1=1, s = 1(-3)

while 1 > 0: n = 1-1=0, s = (-3)(-3)=9

while 0 > 0: False

my_power(3, 3)时,x=3,n=3

while 3 > 0: n = 3-1=2, s = 13

while 2 > 0: n = 2-1=1, s = 33=9

while 1 > 0: n = 1-1=0, s = 333=27

while 0 > 0: False

4.执行以下代码会产生哪一种异常?

>>> a = 3

>>> print(a ** b)

NameError: name 'b' is not defined

typeerror:函数或方法接受了不适当的【类型】的参数,

sum('nick')

TypeError: unsupported operand type(s) for +: 'int' and 'str'

valueerror:函数或方法虽然接受了正确的【类型】的参数,但是该参数的【值】不适当

int('nick')

ValueError: invalid literal for int() with base 10: 'nick'

a = list(range(1,11))

print(a)

print(a[15])

IndexError: list index out of range

5.已知有如下代码:

>>> import random

>>> random.______()

执行后产生的随机数始终在[0, 1.0)之间,请问它可能是random库中的哪一个函数?

Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。

random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0

random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。

random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b

random.shuffle的函数原型为:random.shuffle(x[, random]),用于将一个列表中的元素打乱。

其他详情见https://www.cnblogs.com/twilight77/p/7675512.html>

is作为比较运算符,x is y其含义是比较x是否是y的子类。 ——错误!

Python中的对象包含三要素:id、type、value。其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值。is判断的是a对象是否就是b对象,是通过id来判断的。

(obj1 is obj2) 等价于 (id(obj1) == id(obj2))>

对于不兼容类型的比较,例如对一个整型值和一个字符串比较大小,因为这种比较从数学含义上看一般是没有意义的,所以在Python 3中已经不支持不兼容类型对象的比较。

对于不兼容类型的比较,例如对一个整型值和一个字符串比较大小,因为这种比较从数学含义上看一般是没有意义的,所以在Python 3中已经不支持不兼容类型对象的比较。 ——正确!

标准的布尔值为0(表示假)和1(表示真),实际上语句True==1的结果就是True。 ——正确!

None,0, [],{} 这些值在作为布尔表达式的时候,都会被解释器看作假(False)。——正确!

8.请写出如下程序的执行结果。

s = 0

for i in range(1, 11):

if i % 2 == 0:

continue

if i % 10 == 5:

break

s = s + i

print(s)

当i = 1时,1%2 = 1,1%10 = 1, s = 0+1=1

当i= 2时,2%2 = 0,continue至i = 3

当i =3时,3%2 = 1,3%10 = 3,s = 1+3=4

当i =4时,4%2 =0,continue至i = 5

当i =5时,5%2 =1,5%10 = 5,break,循环结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值