PYTHON 120道题目详解(103-105)

103.Python中的random模块可以生成哪些类型的随机数?

Python的random模块提供了多种生成随机数的方法,包括:

  1. 基本随机数

    • random():返回一个[0.0, 1.0)之间的随机浮点数。
  2. 整数随机数

    • randint(a, b):返回两个整数a和b之间的随机整数,包括a和b。
    • randrange(start, stop[, step]):返回指定范围内的随机整数,范围从start到stop-1,步长为step。
  3. 从序列中随机选择

    • choice(seq):从非空序列seq中随机选择并返回一个元素。
    • shuffle(x[, random]):就地打乱序列x的元素。
  4. 随机浮点数

    • uniform(a, b):返回一个随机浮点数N,使得a <= N <= b,对于所有a < b。
  5. 随机比特

    • getrandbits(k):返回一个带有k个随机比特的整数。
  6. 高斯分布(正态分布)

    • gauss(mu, sigma):也称为正态分布,mu是平均值,sigma是标准差。
  7. 指数分布

    • expovariate(lambd):返回一个指数分布的随机浮点数,lambd是分布的参数(1.0除以分布的平均值)。
  8. 对数正态分布

    • lognormvariate(mu, sigma):返回一个具有给定平均数和标准差的对数正态分布的随机浮点数。
  9. 冯·米塞斯分布

    • vonmisesvariate(mu, kappa):返回一个具有给定mu和kappa参数的冯·米塞斯分布的随机浮点数。
  10. 伽玛分布

    • gammavariate(alpha, beta):返回一个具有给定alpha和beta参数的伽玛分布的随机浮点数。
  11. 三角分布

    • triangular(low, high, mode):返回一个具有给定下限、上限和众数的三角分布的随机浮点数。
  12. 贝塔分布

    • betavariate(alpha, beta):返回一个具有给定alpha和beta参数的贝塔分布的随机浮点数。
  13. 帕累托分布

    • paretovariate(alpha):返回一个具有给定alpha参数的帕累托分布的随机浮点数。
  14. 威布尔分布

    • weibullvariate(alpha, beta):返回一个具有给定alpha和beta参数的威布尔分布的随机浮点数。

请注意,random模块生成的随机数实际上是伪随机数,它们是由一个确定的算法生成的,并且给定相同的种子,每次都会生成相同的序列。如果你需要真正的随机数(例如,用于密码学),你应该使用secrets模块。

104.Python中的decimal模块与float类型相比有什么优势?

Python中的decimal模块与内置的float类型相比,具有以下几个主要优势:

  1. 更高的精度float类型是基于IEEE 754双精度浮点数标准实现的,这意味着它有一定的精度限制。在处理需要高精度计算的场景,如财务计算或科学计算时,float的精度可能无法满足需求。而decimal模块则提供了任意精度的十进制浮点数运算,可以精确地表示和计算十进制数。
  2. 更好的舍入控制decimal模块提供了丰富的舍入模式,如ROUND_HALF_UP(四舍五入)、ROUND_DOWN(向下取整)、ROUND_UP(向上取整)等。这使得在需要精确控制舍入行为的场景中,decimalfloat更灵活、更可靠。
  3. 避免浮点数运算的误差:由于float类型是基于二进制表示的,它在某些十进制数的表示和运算上可能会产生误差。而decimal模块则使用十进制表示,避免了这类误差。
  4. 更好的可读性decimal类型以字符串形式表示,可以直观地看到数值的每一位,这在调试和记录数据时非常有用。而float类型的表示则可能不够直观,尤其是当数值很大或很小时。

需要注意的是,虽然decimal模块具有上述优势,但它通常比float类型慢一些,并且会占用更多的内存。因此,在不需要高精度计算或特殊舍入控制的场景中,使用float类型可能更为合适。

105.Python中如何使用字符串的format方法格式化输出?

在Python中,format() 方法是一种非常强大且灵活的方式来格式化字符串。你可以使用它来插入和格式化变量,控制字符串的对齐,设置填充字符,以及设置精度等。

以下是一些基本的例子:

1. 插入变量

name = "Alice"
age = 30
print("My name is {} and I am {} years old.".format(name, age))

在这个例子中,{} 是占位符,format() 方法中的参数会按顺序替换这些占位符。

2. 指定占位符的位置

如果你想要更明确地指定哪个占位符应该被哪个参数替换,你可以给占位符一个索引:

name = "Alice"
age = 30
print("My name is {1} and I am {0} years old.".format(age, name))

在这个例子中,{1} 会被 name 替换,{0} 会被 age 替换。

3. 使用关键字参数

你还可以使用关键字参数来指定占位符的位置:

name = "Alice"
age = 30
print("My name is {name} and I am {age} years old.".format(name=name, age=age))

在这个例子中,{name} 会被 name 变量的值替换,{age} 会被 age 变量的值替换。

4. 格式化数字

format() 方法还可以用来格式化数字。例如,你可以设置精度,指定宽度,或者设置填充字符:

pi = 3.141592653589793
print("The value of pi is approximately {:.2f}.".format(pi)) # 设置精度
print("The value of pi, padded to 10 characters is {:10.2f}.".format(pi)) # 设置宽度和精度
print("The value of pi, left justified and padded to 10 characters is {:<10.2f}.".format(pi)) # 左对齐,设置宽度和精度

在这个例子中,{:.2f} 表示保留两位小数,{:10.2f} 表示总宽度为10个字符(包括小数点和小数部分),{:<10.2f} 表示左对齐,总宽度为10个字符。

这只是 format() 方法功能的一小部分,它还有许多其他的功能等待你去探索。如果你想了解更多关于 format() 方法的信息,我建议查阅Python的官方文档。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值