求获取用户输入浮点数并判断整数部分奇偶的Python替代代码
替代实现方案
下面是几种简洁直观的实现方式,适合Python新手理解:
方法1:用math.floor()直接获取整数部分
math.floor()会返回小于等于输入数的最大整数,完美对应浮点数的整数部分(正负场景都适用),逻辑清晰易懂:
import math num = float(input("Enter a floating point number: ")) integer_part = math.floor(num) print("Even" if integer_part % 2 == 0 else "Odd")
示例:math.floor(3.9)返回3,math.floor(-2.3)返回-3,拿到整数部分后直接判断奇偶即可。
方法2:正数场景下用int()转换
如果确定输入的是正数,直接转成int()就能截断小数部分得到整数,代码最简洁:
num = float(input("Enter a floating point number: ")) integer_part = int(num) # 正数时int(3.9)=3,int(5.1)=5 print("Even" if integer_part % 2 == 0 else "Odd")
注意:这个方法只适用于正数,int(-2.3)会返回-2,而非正确的整数部分-3,负数场景别用。
方法3:用math.trunc()配合判断处理正负
math.trunc()会直接截断小数部分,正数和int()效果一致,但负数需要额外调整才能得到正确的整数部分:
import math num = float(input("Enter a floating point number: ")) if num >= 0: integer_part = math.trunc(num) else: integer_part = math.trunc(num) - 1 # 负数截断后减1,比如-2.3截断为-2,减1得到-3 print("Even" if integer_part % 2 == 0 else "Odd")
方法4:用字符串分割提取整数部分
把输入转成字符串后按小数点分割,取前半部分转成整数,适合新手理解字符串操作逻辑:
num_str = input("Enter a floating point number: ") if "." in num_str: integer_part_str = num_str.split(".")[0] else: integer_part_str = num_str integer_part = int(integer_part_str) # 负数比如-2.3分割后是"-2",转int后能正确识别负号 print("Even" if integer_part % 2 == 0 else "Odd")
这个方法能兼容用户输入整数的情况,比如输入5也能正常处理。
内容的提问来源于stack exchange,提问作者User
相关产品推荐
相关产品推荐

