Python如何从给定备选答案中随机打印输出结果
错误写法原因解析
你用到的or是逻辑运算符、|是按位运算符,二者都没有「随机二选一」的作用,四种写法的问题分别如下:
- 写法1:
print(" You Pressed b " or " B is pressed")
Python中逻辑或or会返回第一个布尔值为真的结果,非空字符串的布尔值恒为真,因此这里永远会返回第一个字符串,输出固定。 - 写法2:
print(" You Pressed b ") or print(" B is pressed")print()函数的返回值为None,布尔值为假,因此执行完第一个print后,会继续触发or后面的第二个print,最终两个内容都会输出,无法实现二选一。 - 写法3:
print(" You Pressed b " | " B is pressed")|是按位或运算符,仅支持数字、集合等类型运算,字符串之间不支持按位或操作,运行会直接抛出TypeError错误。 - 写法4:
print(" You Pressed b ") | print(" B is pressed")print()返回的None类型之间不支持按位或运算,运行同样会抛出TypeError错误。
正确实现方案
要实现每次运行随机输出不同内容,需要使用Python内置的random模块的choice方法,从备选列表中随机抽取一个元素输出,示例代码如下:
import random if given_input == 'b': # 从两个备选输出中随机选择一个 print(random.choice([" You Pressed b ", " B is pressed"]))
默认情况下random模块会根据系统时间生成随机种子,每次运行的随机结果几乎都不相同,符合需求。
内容的提问来源于stack exchange,提问作者PythonLearner
相关产品推荐
相关产品推荐

