Hướng dẫn python if return value is true - python nếu giá trị trả về là true

2

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Vì vậy, tôi có một đoạn mã đang cung cấp cho tôi một chút đau đầu.

def Handy[]:
    print "\nMöchten Sie ein neues Handy?"
    print "\n1 - Ja\n2 - Nein"

    handy = raw_input[">>> "]

    if handy == "2":
        print "\nSie möchten kein neues Handy"
    elif handy == "1":
        wunschhandy = raw_input["\nBitte geben Sie den Namen des Handys ein: "]
    else:
        Handy[]
    return handy, wunschhandy

Nếu tôi chọn Tùy chọn "1", mọi thứ đều ổn. Nhưng nếu tôi đi "2", nó sẽ cho tôi lỗi này: "UnboundLocalError: local variable 'wunschhandy' referenced before assignment"

Tôi biết tại sao nó lại xảy ra, hoặc ít nhất tôi nghĩ rằng tôi biết tại sao. Đó là bởi vì var wunschhandy chưa được từ chối, vì tôi đã sử dụng tùy chọn "2".

Vậy làm cách nào để giải quyết vấn đề này? Có cách nào để chỉ trả về một giá trị, nếu nó được chỉ định bởi quyền nếu lựa chọn?

Đã hỏi ngày 26 tháng 3 năm 2013 lúc 17:20Mar 26, 2013 at 17:20

3

Trong trường hợp của bạn, tôi sẽ đặt wunschhandy = None trước câu lệnh

if handy == "2":
    print "\nSie möchten kein neues Handy"
    return handy,
elif handy == "1":
    wunschhandy = raw_input["\nBitte geben Sie den Namen des Handys ein: "]
    return handy, wunschhandy
else:
    Handy[]
0.

Trong trường hợp này, bạn có một giá trị được xác định và người gọi có thể kiểm tra cho nó.

Một lựa chọn khác sẽ là

if handy == "2":
    print "\nSie möchten kein neues Handy"
    return handy,
elif handy == "1":
    wunschhandy = raw_input["\nBitte geben Sie den Namen des Handys ein: "]
    return handy, wunschhandy
else:
    Handy[]

trong đó trả về một tuple có độ dài 2 cho tùy chọn 1 và một tuple có độ dài 1 cho tùy chọn 2. Người gọi có thể dễ dàng kiểm tra điều đó.

Bên cạnh đó, thay vì gọi

if handy == "2":
    print "\nSie möchten kein neues Handy"
    return handy,
elif handy == "1":
    wunschhandy = raw_input["\nBitte geben Sie den Namen des Handys ein: "]
    return handy, wunschhandy
else:
    Handy[]
1 đệ quy, tôi sẽ đặt một vòng lặp bên trong nó. Nếu không, bạn có thể kết thúc trong một lỗi tràn chồng ...

Đã trả lời ngày 26 tháng 3 năm 2013 lúc 17:23Mar 26, 2013 at 17:23

GLGLGLGLGLglglgl

86.8K12 Huy hiệu vàng146 Huy hiệu bạc214 Huy hiệu đồng12 gold badges146 silver badges214 bronze badges

Nếu bạn muốn trả về wunschhandy chỉ khi người dùng chọn "1", thì hãy đặt các câu lệnh trả về trong các khối IF

def Handy[]:
    print "\nMöchten Sie ein neues Handy?"
    print "\n1 - Ja\n2 - Nein"

    handy = raw_input[">>> "]

    if handy == "2":
        print "\nSie möchten kein neues Handy"
        return handy
    elif handy == "1":
        wunschhandy = raw_input["\nBitte geben Sie den Namen des Handys ein: "]
        return handy, wunschhandy
    else:
        Handy[]
        //do you want to return Handy[]?

Đã trả lời ngày 26 tháng 3 năm 2013 lúc 17:22Mar 26, 2013 at 17:22

Jonhopkinsjonhopkinsjonhopkins

3,8063 huy hiệu vàng26 Huy hiệu bạc39 Huy hiệu đồng3 gold badges26 silver badges39 bronze badges

Chỉ dựa trên đoạn mã nhỏ mà bạn cung cấp, có vẻ như biến 'wunschhandy' chỉ được xác định nếu 'tiện dụng == "1"', nhưng biến này đang được trả về vào cuối. Tôi sẽ đặt wunschhandy bằng null trên câu lệnh IF để biến được xác định trước khi cố gắng trả về nó ở cuối.

Đã trả lời ngày 26 tháng 3 năm 2013 lúc 17:22Mar 26, 2013 at 17:22

JonhopkinsjonhopkinsSeth

3,8063 huy hiệu vàng26 Huy hiệu bạc39 Huy hiệu đồng1 gold badge8 silver badges17 bronze badges

Chỉ dựa trên đoạn mã nhỏ mà bạn cung cấp, có vẻ như biến 'wunschhandy' chỉ được xác định nếu 'tiện dụng == "1"', nhưng biến này đang được trả về vào cuối. Tôi sẽ đặt wunschhandy bằng null trên câu lệnh IF để biến được xác định trước khi cố gắng trả về nó ở cuối.

Đã trả lời ngày 26 tháng 3 năm 2013 lúc 17:22Mar 26, 2013 at 17:22

Jonhopkinsjonhopkinsaweis

3,8063 huy hiệu vàng26 Huy hiệu bạc39 Huy hiệu đồng3 gold badges29 silver badges41 bronze badges

Chỉ dựa trên đoạn mã nhỏ mà bạn cung cấp, có vẻ như biến 'wunschhandy' chỉ được xác định nếu 'tiện dụng == "1"', nhưng biến này đang được trả về vào cuối. Tôi sẽ đặt wunschhandy bằng null trên câu lệnh IF để biến được xác định trước khi cố gắng trả về nó ở cuối.

def Handy[]:
    handy = raw_input["Moechten Sie ein neues Handy?\n1 - Ja\n2 - Nein\n>>> "]

    wunschhandy =  None
    if handy is "2" :
        print "\nSie moechten kein neues Handy"
    elif handy is "1" :
        wunschhandy = raw_input["\nBitte geben sie den Namen des Handys ein: "]
    else :
        Handy[]
    return handy, wunschhandy

SethsethMar 26, 2013 at 17:26

1.3531 Huy hiệu vàng8 Huy hiệu bạc17 Huy hiệu đồngtamasgal

Đó là bởi vì biến wunschhandy được trả về trước khi được khai báo. Chỉ khi bạn nhập 1, nó được khai báo. Bạn có thể khai báo wunschhandy trước các câu lệnh IF và gán cho nó một giá trị thiếu hụt.18 gold badges93 silver badges133 bronze badges

Làm thế nào để bạn trả lại một chức năng thực sự trong Python?

Hàm python bool [] được sử dụng để trả về hoặc chuyển đổi giá trị thành giá trị boolean, tức là đúng hoặc sai, sử dụng quy trình kiểm tra sự thật tiêu chuẩn.bool[] function is used to return or convert a value to a Boolean value i.e., True or False, using the standard truth testing procedure.

Làm thế nào để bạn trả về một giá trị từ một câu lệnh IF trong Python?

Một câu lệnh trả về được sử dụng để kết thúc việc thực hiện cuộc gọi chức năng và trả về kết quả [giá trị của biểu thức theo từ khóa trả về] cho người gọi. Các tuyên bố sau các tuyên bố trả lại không được thực thi. Nếu câu lệnh trả về không có bất kỳ biểu thức nào, thì giá trị đặc biệt không được trả về.. The statements after the return statements are not executed. If the return statement is without any expression, then the special value None is returned.

Chúng ta có thể sử dụng lợi nhuận trong IF Statement Python không?

Chúng ta chỉ có thể sử dụng câu lệnh trả về bên trong một hàm.Trong Python, mọi chức năng đều trả về một cái gì đó.Nếu không có câu lệnh hoàn trả, thì nó không trả về không.Nếu câu lệnh trả về chứa một biểu thức, nó được đánh giá trước và sau đó giá trị được trả về.. In Python, every function returns something. If there are no return statements, then it returns None. If the return statement contains an expression, it's evaluated first and then the value is returned.

Có nếu không trả lại python sai?

Không có gì so với sai trong Python trong Python, không có gì không liên quan gì đến giá trị boolean sai.Không có trong Python thực sự là một đối tượng được thực hiện bởi lớp nonetype.Sai là một đối tượng Boolean được thực hiện bởi lớp Bool.None has nothing to do with the boolean value False. None in Python is actually an object implemented by NoneType class. False is a boolean object implemented by the bool class.

Bài Viết Liên Quan

Chủ Đề