Hướng dẫn is empty string same as none in python? - chuỗi rỗng có giống với chuỗi không trong python không?

Tôi thấy mã hóa cứng [sic] "" Mỗi lần kiểm tra một chuỗi trống không tốt.

Phương pháp tiếp cận mã sạch

Làm điều này: foo == "" là thực hành rất tệ. "" là một giá trị kỳ diệu. Bạn không bao giờ nên kiểm tra chống lại các giá trị ma thuật [thường được gọi là số ma thuật]

Những gì bạn nên làm là so sánh với một tên biến mô tả.

Tên biến mô tả

Người ta có thể nghĩ rằng "trống_string" là một tên biến mô tả. Nó không phải là.It isn't.

Trước khi bạn đi và làm empty_string = "" và nghĩ rằng bạn có một tên biến tuyệt vời để so sánh với. Đây không phải là những gì "Tên biến mô tả" có nghĩa là.

Một tên biến mô tả tốt dựa trên bối cảnh của nó. Bạn phải suy nghĩ về chuỗi trống là gì.is.

  • Nó đến từ đâu.
  • Tại sao nó ở đó.
  • Tại sao bạn cần kiểm tra nó.

Ví dụ trường mẫu đơn giản

Bạn đang xây dựng một biểu mẫu nơi người dùng có thể nhập các giá trị. Bạn muốn kiểm tra xem người dùng có viết gì đó hay không.

Một tên biến tốt có thể là

if csvfield == CSV_NONE:
    csvfield = None
0

Điều này làm cho mã rất dễ đọc

if formfields.name == not_filled_in:
    raise ValueError["We need your name"]

Ví dụ phân tích cú pháp CSV kỹ lưỡng

Bạn đang phân tích các tệp CSV và muốn chuỗi trống được phân tích cú pháp là

if csvfield == CSV_NONE:
    csvfield = None
1

[Vì CSV hoàn toàn dựa trên văn bản, nên nó không thể biểu thị

if csvfield == CSV_NONE:
    csvfield = None
1 mà không sử dụng từ khóa được xác định trước]

Một tên biến tốt có thể là

if csvfield == CSV_NONE:
    csvfield = None
3

Điều này làm cho mã dễ dàng thay đổi và điều chỉnh nếu bạn có tệp CSV mới đại diện cho

if csvfield == CSV_NONE:
    csvfield = None
1 với một chuỗi khác so với ""

if csvfield == CSV_NONE:
    csvfield = None

Không có câu hỏi về việc nếu đoạn mã này là chính xác. Rõ ràng là nó làm những gì nó nên làm.

So sánh điều này với

if csvfield == EMPTY_STRING:
    csvfield = None

Câu hỏi đầu tiên ở đây là, tại sao chuỗi trống xứng đáng được đối xử đặc biệt?

Điều này sẽ nói với các lập trình viên tương lai rằng một chuỗi trống phải luôn luôn được coi là

if csvfield == CSV_NONE:
    csvfield = None
1.

Điều này là do nó kết hợp logic kinh doanh [giá trị CSV nên là

if csvfield == CSV_NONE:
    csvfield = None
1] với việc triển khai mã [chúng ta thực sự so sánh với điều gì]

Cần phải có một sự tách biệt của mối quan tâm giữa hai người.

Chuyển đổi không thành một chuỗi trống trong python #

Sử dụng boolean hoặc toán tử để chuyển đổi không có chuỗi trống trong Python, ví dụ:

if csvfield == CSV_NONE:
    csvfield = None
8. Boolean hoặc toán tử trả về giá trị bên trái nếu đó là sự thật, nếu không giá trị bên phải được trả về. Vì
if csvfield == CSV_NONE:
    csvfield = None
1 là một giá trị giả, hoạt động sẽ trả về "".

Copied!

name = None result = name or "" print[result] # 👉️ ""

Chúng tôi đã sử dụng boolean hoặc toán tử để trả về một chuỗi trống nếu giá trị bên trái là giả.

Tất cả các giá trị không phải là sự thật được coi là giả mạo. Các giá trị giả trong Python là:

  • Các hằng số được xác định là giả mạo:
    if csvfield == CSV_NONE:
        csvfield = None
    
    1 và
    if csvfield == EMPTY_STRING:
        csvfield = None
    
    2.
  • if csvfield == EMPTY_STRING:
        csvfield = None
    
    3 [không] thuộc bất kỳ loại số nào
  • Trình tự trống và bộ sưu tập: "" [Chuỗi trống],
    if csvfield == EMPTY_STRING:
        csvfield = None
    
    5 [Tuple trống],
    if csvfield == EMPTY_STRING:
        csvfield = None
    
    6 [danh sách trống],
    if csvfield == EMPTY_STRING:
        csvfield = None
    
    7 [Từ điển trống],
    if csvfield == EMPTY_STRING:
        csvfield = None
    
    8 [bộ trống],
    if csvfield == EMPTY_STRING:
        csvfield = None
    
    9 [phạm vi trống].

Biểu thức

Copied!

name = None result = name or "" print[result] # 👉️ ""
0 trả về giá trị bên trái nếu đó là sự thật, nếu không giá trị bên phải được trả về.

if csvfield == CSV_NONE:
    csvfield = None
1 là một giá trị giả, nên biểu thức

Copied!

name = None result = name or "" print[result] # 👉️ ""
2 sẽ luôn trả về

Copied!

name = None result = name or "" print[result] # 👉️ ""
3.

Lưu ý rằng biểu thức

Copied!

name = None result = name or "" print[result] # 👉️ ""
0 cũng sẽ trả về

Copied!

name = None result = name or "" print[result] # 👉️ ""
3 nếu

Copied!

name = None result = name or "" print[result] # 👉️ ""
6 là bất kỳ giá trị giả nào khác, ví dụ:
if csvfield == EMPTY_STRING:
    csvfield = None
3,
if csvfield == EMPTY_STRING:
    csvfield = None
2 hoặc một danh sách trống, dict hoặc tuple.

Ngoài ra, bạn có thể sử dụng câu lệnh

Copied!

name = None result = name or "" print[result] # 👉️ ""
9 để kiểm tra xem biến có lưu trữ
if csvfield == CSV_NONE:
    csvfield = None
1 hay không và chỉ định lại nó thành một chuỗi trống.

Copied!

name = None if name is None: name = "" print[name] # 👉️ ""

Kiểm tra

if csvfield == CSV_NONE:
    csvfield = None
1 rõ ràng hơn nhiều và khối

Copied!

name = None result = name or "" print[result] # 👉️ ""
9 sẽ chỉ chạy nếu biến lưu trữ giá trị
if csvfield == CSV_NONE:
    csvfield = None
1.

Điều kiện sẽ không được thỏa mãn nếu biến lưu trữ bất kỳ giá trị giả nào khác.

Bạn cũng có thể sử dụng câu lệnh

Copied!

name = None if name is None: name = "" print[name] # 👉️ ""
4 một lớp.

Copied!

name = None name = "" if name is None else name print[name] # 👉️ ""

Nếu biến lưu trữ

if csvfield == CSV_NONE:
    csvfield = None
1, nó sẽ được đặt thành một chuỗi trống, nếu không nó sẽ được đặt thành giá trị hiện tại của nó.

Copied!

name = 'hello' name = "" if name is None else name print[name] # 👉️ "hello"

Chuỗi trống có bằng không không?

Một chuỗi trống là một thể hiện chuỗi có độ dài bằng không, trong khi một chuỗi null không có giá trị nào cả.Một chuỗi trống được biểu diễn là "".Đó là một chuỗi ký tự của các ký tự bằng không.Một chuỗi null được biểu diễn bởi null., whereas a null string has no value at all. An empty string is represented as "" . It is a character sequence of zero characters. A null string is represented by null .

Một chuỗi trống trong Python có nghĩa là gì?

Nó có giá trị khi có một chuỗi các ký tự bằng không, được viết giống như '', được gọi là "chuỗi trống".Độ dài của chuỗi trống là 0. hàm Len [] trong Python có mặt ở khắp nơi - nó được sử dụng để truy xuất độ dài của mọi loại dữ liệu, chỉ với chuỗi chỉ là một ví dụ đầu tiên.a string of zero characters, written just as '' , called the "empty string". The length of the empty string is 0. The len[] function in Python is omnipresent - it's used to retrieve the length of every data type, with string just a first example.

Chuỗi trống có đúng trong Python không?

Khoa học dữ liệu thực tế bằng cách sử dụng các chuỗi trống Python là "giả", điều đó có nghĩa là chúng được coi là sai trong bối cảnh boolean, vì vậy bạn chỉ có thể sử dụng không chuỗi.Empty strings are "falsy" which means they are considered false in a Boolean context, so you can just use not string.

Chuỗi có trống bằng không?

Chuỗi trống rỗng của người Viking trong Java là gì?Một chuỗi trống trong Java có nghĩa là một chuỗi có độ dài bằng 0.Nếu một chuỗi trống có nghĩa là biến tham chiếu sẽ đề cập đến một vị trí bộ nhớ giữ một chuỗi có độ dài bằng 0.a String with length equal to zero.” If a String is empty that means the reference variable is referring to a memory location holding a String of length equal to zero.

Bài Viết Liên Quan

Chủ Đề