欢迎访问宙启技术站
智能推送

Python中的输入验证和数据校验技术简介

发布时间:2024-01-03 14:01:24

在Python中,输入验证和数据校验是确保输入数据符合特定要求的重要技术。输入验证是指对用户输入的数据进行验证,以确保其满足预期的格式和范围。数据校验是对已经存在的数据进行验证,以确保其仍然符合特定要求。

以下是Python中常用的几种输入验证和数据校验技术的简介和使用示例:

1. 正则表达式验证:正则表达式是一种强大的模式匹配工具,可以用于验证字符串是否符合特定的模式。通过使用正则表达式模块re,可以方便地进行输入验证。

示例:验证一个字符串是否为有效的手机号码。

import re

def validate_phone_number(phone_number):
    pattern = r'^\d{11}$'
    if re.match(pattern, phone_number):
        print("Valid phone number.")
    else:
        print("Invalid phone number.")

phone_number = input("Enter a phone number: ")
validate_phone_number(phone_number)

2. 内置类型的验证:Python中的内置类型如整数、浮点数、字符串等可以通过内置的函数或方法进行验证。

示例:验证一个字符串是否为一个合法的整数。

def validate_integer(number):
    try:
        int(number)
        print("Valid integer.")
    except ValueError:
        print("Invalid integer.")

number = input("Enter an integer: ")
validate_integer(number)

3. 使用第三方库:Python中有许多第三方库可以用于输入验证和数据校验,如pydanticcerberus等。这些库提供了更高级的验证功能,可以定义复杂的数据结构和规则。

示例:使用pydantic库验证一个字典是否符合预期的结构。

from pydantic import BaseModel

class Person(BaseModel):
    name: str
    age: int

def validate_person(person_data):
    try:
        person = Person(**person_data)
        print("Valid person data.")
    except ValueError as e:
        print(f"Invalid person data: {e}.")

person_data = {
    "name": "Alice",
    "age": 25
}
validate_person(person_data)

4. 自定义验证函数:对于更复杂的验证需求,可以自定义验证函数。该函数接受输入数据并返回验证结果,可以通过抛出异常或返回布尔值来表示验证结果。

示例:自定义验证函数验证一个输入是否为一个介于10和20之间(包括10和20)的整数。

def validate_range(number):
    try:
        number = int(number)
        if number < 10 or number > 20:
            raise ValueError("Number is out of range.")
        print("Valid number.")
    except ValueError as e:
        print(f"Invalid number: {e}.")

number = input("Enter a number: ")
validate_range(number)

总结:Python提供了多种方法来进行输入验证和数据校验,包括正则表达式验证、内置类型验证、第三方库和自定义验证函数。使用这些技术可以确保输入和已有数据的合法性,增强程序的稳定性和安全性。