How do you do a if statement with two variables?


    import os
    import sys, getopt
    import signal
    import time
    from edge_impulse_linux.audio import AudioImpulseRunner
    DEFAULT_THRESHOLD = 0.60
    my_threshold = DEFAULT_THRESHOLD
    Noi = ('x')
    x = 0

    runner = None

    def signal_handler(sig, frame):
    print('Interrupted')
    if (runner):
        runner.stop()
    sys.exit(0)

    signal.signal(signal.SIGINT, signal_handler)

    def help():
    print('python classify.py <path_to_model.eim> <audio_device_ID, optional>' )

    def my_function(label, score):
    print('' )

    def main(argv):

    

    try:
        opts, args = getopt.getopt(argv, "h", ["--help"])
    except getopt.GetoptError:
        help()
        sys.exit(2)

    for opt, arg in opts:
        if opt in ('-h', '--help'):
            help()
            sys.exit()

    if len(args) == 0:
        help()
        sys.exit(2)

    model = args[0]

    dir_path = os.path.dirname(os.path.realpath(__file__))
    modelfile = os.path.join(dir_path, model)

    with AudioImpulseRunner(modelfile) as runner:
        try:
            model_info = runner.init()
            labels = model_info['model_parameters']['labels']
            print('Loaded runner for "' + model_info['project']['owner'] + ' / ' + 
    model_info['project']['name'] + '"')

            #Let the library choose an audio interface suitable for this model, or pass device ID parameter to manually select a specific audio interface
            selected_device_id = None
            if len(args) >= 2:
                selected_device_id=int(args[1])
                print("Device ID "+ str(selected_device_id) + " has been provided as an argument.")

            for res, audio in runner.classifier(device_id=selected_device_id):
                print('Result (%d ms.) ' % (res['timing']['dsp'] + res['timing'] 
    ['classification']), end='')
                for label in labels:
                    score = res['result']['classification'][label]
                    print('%s: %.2f\t' % (label, score), end='')
                    if(label == "Yes" and score > my_threshold) and (label == "Unknown" and score < my_threshold):
                        print("Yes", flush=True)
                        
                        
                        my_function(label,score)
                    if label == ("Noise") and (score > my_threshold):
                        print("Noise", flush=True)

                       

                        
                        
                     
                    if label == ("Unknown") and (score > my_threshold):
                        print("Unknown", flush=True)
                        
                        
                        my_function(label,score)

                        
                print('', flush=True)

                
                
                print('', flush=True)
                if score > my_threshold:
                    my_function(label,score)


                    print('', flush=True)
                if label == "Hey Bmo":
                    my_function(label,score)

             

        finally:
            if (runner):
                runner.stop()

    if __name__ == '__main__':
    main(sys.argv[1:])

    main(sys.argv[1:])

With my code


    if(label == "Yes" and score > my_threshold) and (label == "Unknown" and score < my_threshold):
                        print("Yes", flush=True)

Why doesn’t it do a double % check to see if Yes is above the threshold but Unknown is below its own threshold before sending the print command?

Disclaimer: first time touching Python edited part of code is probably ruff.

how would both score > my_threshold and score < my_threshold be True.
it is not possible.
maybe we need to use an or instead of an and in the middle

label = "Unknown"
score = 30
my_threshold = 40
if((label == "Yes" and score > my_threshold) or (label == "Unknown" and score < my_threshold)):
  print("yes", flush=True)