2011-08-21 37 views
56

Làm thế nào bạn sẽ viết, trong python:Python đơn giản nếu hoặc logic tuyên bố

if key < 1 or key > 34: 

Tôi đã thử mọi cách mà tôi có thể nghĩ đến, và đang tìm kiếm nó rất bực bội.

+7

Có vấn đề gì với điều đó? –

+4

Bạn có vấn đề gì? Bạn nhận được lỗi nào? Ví dụ của bạn là mã python hợp lệ theo ý kiến ​​của tôi !? – Achim

+0

Bạn đang tìm kiếm một cú pháp cụ thể? Câu lệnh bạn đã viết về _is_ cách bạn sẽ viết nó bằng Python. – Yony

Trả lời

118

Nếu key không phải là một int hay float nhưng một str ing, bạn cần phải chuyển nó sang một int đầu tiên bằng cách làm

key = int(key) 

hoặc một float bằng cách làm

key = float(key) 

Nếu không , những gì bạn có trong câu hỏi của mình sẽ hoạt động, nhưng

if (key < 1) or (key > 34): 

hoặc

if not (1 <= key <= 34): 

sẽ là một chút rõ ràng hơn.

+1

cảm ơn bạn, tôi quên rằng mặc dù một số, khóa thực sự là một chuỗi. xin lỗi cho một câu hỏi đăng bài ngu ngốc đầu tiên trên trang web. bệnh cố gắng và làm việc chăm chỉ hơn để giải quyết vấn đề của tôi trước khi đăng. – Zak

+0

@agf, đây là một chút meta: làm cách nào bạn nhận được * 15 phút *? –

+0

Bạn không thể chấp nhận câu trả lời trong vòng 15 phút sau khi đặt câu hỏi. – agf

7

Dưới đây là một điều boolean:

if (not suffix == "flac") or (not suffix == "cue"): # WRONG! FAILS 
    print filename + ' is not a flac or cue file' 

nhưng

if not (suffix == "flac" or suffix == "cue"):  # CORRECT! 
     print filename + ' is not a flac or cue file' 

(not a) or (not b) == not (a and b), vì vậy cả hai phải là sai lầm để đánh đồng là true

not (a or b) là đúng chỉ khi a và được đều sai.

Các vấn đề liên quan