Python奇偶判断程序为何输出None?三种实现方法问题排查
奇偶性判断程序输出None的问题修复
问题根源
前两种方法出现None输出的核心原因是在三元表达式中直接调用了print()函数:
print()函数执行时会输出内容,但它本身的返回值是None- 当三元表达式走else分支时,变量会被赋值为
None(或外层print()会接收这个None作为输出内容),最终导致额外的None被打印
修正后的代码实现
# 方法一:修正三元表达式逻辑,避免直接在分支里调用print user_number = int(input("Please enter the number you want to check\n")) message_to_print = "Your number is even" if user_number % 2 == 0 else "Your number is odd" print(message_to_print) # 方法二:同样修正三元表达式,将字符串作为分支结果而非调用print user_number_check = (user_number / 2).is_integer() print("Your number is even" if user_number_check else "Your number is odd") # 方法三:原逻辑正常,无需修改 if user_number_check: print("Your number is even ") elif not user_number_check: print("Your number is odd ")
额外优化建议
- 方法一中可以直接用三元表达式作为
print()的参数,简化代码:print("Your number is even" if user_number % 2 == 0 else "Your number is odd") - 方法二中判断奇偶性更高效的方式是用取模运算
user_number % 2 == 0,比除法后判断是否为整数的性能更好
内容的提问来源于stack exchange,提问作者Rami DJEFFAL
相关产品推荐
相关产品推荐

