掌握Python输入限制小数点后两位的技巧

在Python中,经常需要限制用户输入的小数点后位数,例如只允许输入小数点后两位。这可以通过多种方式实现,以下是一些常见的方法:
方法一:使用字符串操作
通过将输入转换为字符串,并检查小数点后的字符数量,可以简单地限制小数点后的位数。
def get_input_with_two_decimal_places():
while True:
user_input = input(“请输入一个数字(保留两位小数): “)
if ‘.’ in user_input:
decimal_part = user_input.split(‘.’)[1]
if len(decimal_part) <= 2: return float(user_input) print("输入错误,请输入一个小数点后最多两位的数字。") # 调用函数 result = get_input_with_two_decimal_places() print("输入的数字是:", result) 方法二:使用正则表达式 正则表达式是一种强大的文本处理工具,可以用来匹配和验证字符串模式。 import re def get_input_with_two_decimal_places_regex(): pattern = re.compile(r'^\d+\.\d{1,2}$') while True: user_input = input("请输入一个数字(保留两位小数): ") if pattern.match(user_input): return float(user_input) print("输入错误,请输入一个小数点后最多两位的数字。") # 调用函数 result = get_input_with_two_decimal_places_regex() print("输入的数字是:", result) 方法三:使用异常处理 通过捕获 ValueError 异常,可以确保用户输入的数字格式正确,并限制小数位数。 def get_input_with_two_decimal_places_exception(): while True: try: user_input = input("请输入一个数字(保留两位小数): ") number = float(user_input) if '.' in user_input and len(user_input.split('.')[1]) <= 2: return number else: raise ValueError except ValueError: print("输入错误,请输入一个小数点后最多两位的数字。") # 调用函数 result = get_input_with_two_decimal_places_exception() print("输入的数字是:", result) 总结 以上三种方法都是限制Python输入小数点后两位的有效途径。选择哪种方法取决于你的具体需求和个人偏好。在处理用户输入时,始终确保代码的健壮性和用户体验。