Trừ khi bạn xác thực hoàn toàn địa chỉ bằng cách sử dụng cơ sở dữ liệu gồm các địa chỉ hợp lệ [từ dịch vụ bưu chính của quốc gia được đề cập], bạn không thể chắc chắn rằng một số ký tự sẽ không bao giờ xuất hiện trong một địa chỉ
Nhưng nếu bạn cần kiểm tra thứ gì đó có định dạng cụ thể hơn nhiều [ví dụ: mã ZIP của Hoa Kỳ, chỉ bao gồm các chữ số và có thể có dấu gạch ngang], bạn có thể tạo một tập hợp từ một chuỗi và xem liệu tập hợp đó có phải là tập hợp con của một số . Đó là cách dễ nhất để kiểm tra bảng chữ cái của một chuỗi. Tuy nhiên, điều đó không giống với việc kiểm tra định dạng của nó [ví dụ: “90-12-345” không phải là mã ZIP hợp lệ của Hoa Kỳ], vì vậy, trước tiên, bạn phải quyết định loại xác thực mà bạn thực sự đang thực hiện
Tôi mới bắt đầu học ngôn ngữ lập trình thực sự đầu tiên của mình, Python. Tôi muốn biết cách hạn chế đầu vào của người dùng trong một raw_input
đối với một số ký tự nhất định và ở một độ dài nhất định. Ví dụ: tôi muốn hiển thị thông báo lỗi nếu người dùng nhập một chuỗi chứa bất kỳ thứ gì ngoại trừ các chữ cái a-z
và tôi muốn hiển thị một trong những đầu vào của người dùng hơn 15 ký tự
Cái đầu tiên có vẻ giống như thứ tôi có thể làm với các biểu thức chính quy, cái mà tôi biết một chút vì tôi đã sử dụng chúng trong Javascript, nhưng tôi không chắc cách sử dụng chúng trong Python. Cái thứ hai, tôi không chắc làm thế nào để tiếp cận nó. Có ai giúp được không?
Giải pháp tốt nhất
Câu hỏi 1. Hạn chế ở một số ký tự nhất định
Bạn nói đúng, điều này rất dễ giải quyết bằng các biểu thức chính quy
import re
input_str = raw_input["Please provide some info: "]
if not re.match["^[a-z]*$", input_str]:
print "Error! Only letters a-z allowed!"
sys.exit[]
Câu hỏi 2. Giới hạn độ dài nhất định
Như Tim đã đề cập chính xác, bạn có thể thực hiện việc này bằng cách điều chỉnh biểu thức chính quy trong ví dụ đầu tiên để chỉ cho phép một số ký tự nhất định. Bạn cũng có thể tự kiểm tra độ dài như thế này
input_str = raw_input["Please provide some info: "]
if len[input_str] > 15:
print "Error! Only 15 characters allowed!"
sys.exit[]
Hoặc cả hai trong một
import re
input_str = raw_input["Please provide some info: "]
if not re.match["^[a-z]*$", input_str]:
print "Error! Only letters a-z allowed!"
sys.exit[]
elif len[input_str] > 15:
print "Error! Only 15 characters allowed!"
sys.exit[]
print "Your input was:", input_str
Giải pháp liên quan
Tôi có thể đặt bao nhiêu tệp trong một thư mục
FAT32
- Số lượng tệp tối đa. 268.173.300
- Số lượng tệp tối đa trên mỗi thư mục. 216 - 1 [65,535]
- Kích thước tệp tối đa. 2 GiB - 1 không có LFS, 4 GiB - 1 có
- Số lượng tệp tối đa. 232 - 1 [4.294.967.295]
- Kích thước tệp tối đa
- Thực hiện. 244 - 26 byte [16 TiB - 64 KiB]
- lý thuyết. 264 - 26 byte [16 EiB - 64 KiB]
- Kích thước âm lượng tối đa
- Thực hiện. 232 - 1 cụm [256 TiB - 64 KiB]
- lý thuyết. 264 - 1 cụm [1 YiB - 64 KiB]
- Số lượng tệp tối đa. 1018
- Số lượng tệp tối đa trên mỗi thư mục. ~1. 3 × 1020 [vấn đề về hiệu suất trong quá khứ 10.000]
- Kích thước tệp tối đa
- 16 GiB [kích thước khối 1 KiB]
- 256 GiB [kích thước khối 2 KiB]
- 2 TiB [kích thước khối 4 KiB]
- 2 TiB [kích thước khối 8 KiB]
- Kích thước âm lượng tối đa
- 4 TiB [kích thước khối 1 KiB]
- 8 TiB [kích thước khối 2 KiB]
- 16 TiB [kích thước khối 4 KiB]
- 32 TiB [kích thước khối 8 KiB]
- Số lượng tệp tối đa. tối thiểu[volumeSize / 213, numberOfBlocks]
- Kích thước tệp tối đa. giống như ext2
- Kích thước âm lượng tối đa. giống như ext2
- Số lượng tệp tối đa. 232 - 1 [4.294.967.295]
- Số lượng tệp tối đa trên mỗi thư mục. vô hạn
- Kích thước tệp tối đa. 244 - 1 byte [16 TiB - 1]
- Kích thước âm lượng tối đa. 248 - 1 byte [256 TiB - 1]
Python – __init__ và self làm gì trong Python
Trong mã này
class A[object]:
def __init__[self]:
self.x = 'Hello'
def method_a[self, foo]:
print self.x + ' ' + foo
biến self
đại diện cho thể hiện của chính đối tượng. Hầu hết các ngôn ngữ hướng đối tượng chuyển tham số này dưới dạng tham số ẩn cho các phương thức được xác định trên một đối tượng; . Bạn phải khai báo rõ ràng. Khi bạn tạo một thể hiện của lớp
input_str = raw_input["Please provide some info: "]
if len[input_str] > 15:
print "Error! Only 15 characters allowed!"
sys.exit[]
0 và gọi các phương thức của nó, nó sẽ tự động được truyền vào, như tronga = A[] # We do not pass any argument to the __init__ method
a.method_a['Sailor!'] # We only pass a single argument
Phương thức
input_str = raw_input["Please provide some info: "]
if len[input_str] > 15:
print "Error! Only 15 characters allowed!"
sys.exit[]
1 đại khái là đại diện cho một hàm tạo trong Python. Khi bạn gọi input_str = raw_input["Please provide some info: "]
if len[input_str] > 15:
print "Error! Only 15 characters allowed!"
sys.exit[]
0, Python sẽ tạo một đối tượng cho bạn và chuyển nó làm tham số đầu tiên cho phương thức input_str = raw_input["Please provide some info: "]
if len[input_str] > 15:
print "Error! Only 15 characters allowed!"
sys.exit[]
1. Bất kỳ tham số bổ sung nào [e. g. , input_str = raw_input["Please provide some info: "]
if len[input_str] > 15:
print "Error! Only 15 characters allowed!"
sys.exit[]
2] cũng sẽ được chuyển thành đối số--trong trường hợp này gây ra ngoại lệ, vì hàm tạo không mong đợi chúng