如何从Inquirer获取布尔值(True/False)并排除该问题参与后续计算?
使用Inquirer获取布尔值并排除结果参与后续计算
当然可以,你只需要对Inquirer返回的结果做简单转换,同时避免后续代码引用该结果即可。
实现方式
方法一:手动转换List类型结果
针对你当前的List类型提问,只需将用户选择的字符串转为布尔值,后续不引用该值就不会参与计算:import inquirer breakfast = [ inquirer.List('breakfast', message="Do you take breakfast?", choices=['Yes', 'No'], ), ] answers = inquirer.prompt(breakfast) # 转换为布尔值 has_breakfast = answers['breakfast'] == 'Yes' # 仅在需要的地方使用,后续代码不引用has_breakfast即可 if has_breakfast: print("你吃了早餐") else: print("你没吃早餐")方法二:使用Confirm类型(更简洁)
Inquirer自带Confirm类型,会直接返回布尔值,无需手动转换:import inquirer answer = inquirer.prompt([ inquirer.Confirm('breakfast', message="Do you take breakfast?") ]) has_breakfast = answer['breakfast'] # 后续代码不引用该变量,就不会参与计算逻辑
排除结果参与后续计算的关键
只要后续代码中不再使用转换后的布尔值变量,或者直接在条件判断中使用转换结果而不存储到变量中,就能避免该结果进入后续计算:
import inquirer answers = inquirer.prompt([ inquirer.List('breakfast', message="Do you take breakfast?", choices=['Yes', 'No']) ]) # 直接用在条件判断里,不保存变量,后续自然不会用到 if answers['breakfast'] == 'Yes': print("早餐时间到!")
内容的提问来源于stack exchange,提问作者fiel
相关产品推荐
相关产品推荐

