自用刷题笔记(一)

文章讲述了Python中的函数调用规则,重点讲解了bool数据类型的转换逻辑,以及一个涉及随机数生成和计算的函数在大数输入下的行为。讨论了类的继承与slots的作用以及计算结果的趋近值。
摘要由CSDN通过智能技术生成

函数调用

  1. 一个段代码定义如下,下列调用结果正确的是?
def bar(multiple):
	def foo(n):
		return multiple**n
	return foo
	

A. bar(2)(3)==8
B. bar(2)(3)==6
C. bar(3)(2)==8
D. bar(3)(2)==6
答案:A
解析: 一般而言,调用一个函数是加一个括号。如果看见括号后还有一个括号,说明第一个bar函数返回了一个函数,如果后面还有括号,说明前面那个也返回了一个函数。以此类推。
第一步:执行bar函数
bar(2) 返回内层函数foo 传入私有变量 multiple=2
第二步:执行foo函数
bar(2)(3) -> foo(3) -> 2 * *3 -> 8

  1. 根据以下程序,下列选项中,说法正确的是()
class Vector:
	_slots_='x','y'
	def_init_(self):
		pass
class Vector3d(Vector):
	_slots_='x','z'
	def_init_(self):
		pass
vector=Vector()
vector3d=Vector3d()

A. 若子类没有定义_slots_属性,则子类可以继承父类的_slots_属性
B. Vector类的实力对象Vector会自动获得实例属性x和y
C. Vector3d类的实例对象vector3d最多只能允许属性x和z
D. Vector3d类的实例对象vector3d最多只能允许属性x、y和z
答案:D
解析:
A. python中凡是 “__” 开头的变量,都是私有变量,私有变量继承需要定义同名变量,因此A错误

B. slots__是python类中的特殊变量,用于限制实例对象的属性,如__slots=‘x’,‘y’,那么实例对象的属性就只能从这些里面找,因此它起的是限制效果而非自动获得,因此B错误。

C. 如果子类没有定义__slots__属性,则不会继承父类的__slots__属性,如果子类定义了__slots__属性,则子类对象允许的实例属性包括子类的__slots__加上父类的__slots_。因此C错

D. 选D

数据类型

bool

当使用 bool() 函数来转换一个值时,Python会按照以下规则来确定布尔值:
数字类型(整数和浮点数):非零值转换为 True,0(零)转换为 False。
字符串类型:非空字符串转换为 True,空字符串 ‘’ 转换为 False。
列表、元组、字典等容器类型:非空容器转换为 True,空容器(如 [], {})转换为 False。
None 是Python中的一个特殊类型,表示空值或没有值。当你尝试将 None 转换为布尔值时,它会被视为一个“假值”(falsy value),类似于 0、0.0、空字符串 ‘’、空列表 []、空字典 {}、以及空元组 () 等。

bool(‘0’)True
bool(0)False
bool(None)False

计算

  1. 对于下面的python3函数,如果输入的参数n非常大,函数的返回值会趋近于以下哪一个值(选项中的值用Python表达式来表示)
import random
def foo(n):
    random.seed()
    c1=0
    c2=0
    for i in range(n):
        x=random.random()
        y=random.random()
        r1=x*x+y*y
        r2=(1-x)*(1-x)+(1-y)*(1-y)
        if r1<=1 and r2<=1:
            c1+=1
        else:
            c2+=1
        return c1/c2		

A. 4/3
B. (math.pi-2)/(4-math.pi)
C. math.e**(6/21)
D. math.tan(53/180math.pi)
答案:B
解析:random.random()返回一个0和1之间的随机浮点数
在这里插入图片描述
c2=2
(11-1/4pi1^2)=(4-pi)/2
c1=1
1-c2=(pi-2)/2
c1/c2=(pi-2)/(4-pi)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值