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 = 3
3=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,循环结束。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 4,132评论 0 2
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 3,276评论 0 9
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,187评论 0 2
  • 8月22日-----字符串相关 2-3 个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消...
    future_d180阅读 1,049评论 0 1
  • Python 是一种相当高级的语言,通过 Python 解释器把符合语法的程序代码转换成 CPU 能够执行的机器码...
    Python程序媛阅读 2,060评论 0 3

友情链接更多精彩内容